ReplaceExtName supported find splite_char from left.

This commit is contained in:
hyzboy 2025-03-03 22:58:44 +08:00
parent b5ef4424d4
commit 3f5baa99d0

View File

@ -341,13 +341,26 @@ namespace hgl
return(true); return(true);
} }
/**
*
* @param old_name
* @param new_extname
* @param split_char (.)
* @param from_right (true)
* @return
*/
template<typename T> template<typename T>
inline String<T> ReplaceExtName(const String<T> &old_name,const String<T> &new_extname,const T split_char='.') inline String<T> ReplaceExtName(const String<T> &old_name,const String<T> &new_extname,const T split_char='.',const bool from_right=true)
{ {
if(old_name.Length()<=1) if(old_name.Length()<=1)
return(String<T>::charOf(split_char)+new_extname); return(String<T>::charOf(split_char)+new_extname);
const int pos=old_name.FindRightChar(split_char); int pos;
if(from_right)
pos=old_name.FindRightChar(split_char);
else
pos=old_name.FindChar(split_char);
if(pos!=-1) if(pos!=-1)
return old_name.SubString(0,pos+1)+new_extname; return old_name.SubString(0,pos+1)+new_extname;