From 37e6af638560d40328ea0032b6ef9f5e0aff3a15 Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Fri, 5 Aug 2022 12:21:25 +0800 Subject: [PATCH] recreate SplitString calsses,and split LoadString/LoadStringList/SaveStringList/MergeString/SplitString...... --- inc/hgl/type/LoadString.h | 14 ++ inc/hgl/type/LoadStringList.h | 78 ++++++ inc/hgl/type/MergeString.h | 12 +- inc/hgl/type/SaveStringList.h | 73 ++++++ inc/hgl/type/SplitString.h | 262 ++++++++++---------- inc/hgl/type/StrChar.h | 3 +- inc/hgl/type/StringList.h | 141 ----------- src/CMakeLists.txt | 6 +- src/Text/{StringList.cpp => LoadString.cpp} | 56 +---- src/Text/LoadStringList.cpp | 61 +++++ 10 files changed, 373 insertions(+), 333 deletions(-) create mode 100644 inc/hgl/type/LoadString.h create mode 100644 inc/hgl/type/LoadStringList.h create mode 100644 inc/hgl/type/SaveStringList.h rename src/Text/{StringList.cpp => LoadString.cpp} (80%) create mode 100644 src/Text/LoadStringList.cpp diff --git a/inc/hgl/type/LoadString.h b/inc/hgl/type/LoadString.h new file mode 100644 index 0000000..1197155 --- /dev/null +++ b/inc/hgl/type/LoadString.h @@ -0,0 +1,14 @@ +#ifndef HGL_LOAD_STRING_INCLUDE +#define HGL_LOAD_STRING_INCLUDE + +#include +#include + +namespace hgl +{ + int LoadStringFromText(UTF8String &full_text,const void *source_data,const int size,const CharSet &cs); ///<加载一个原始文本块到UTF8String + int LoadStringFromText(UTF16String &full_text,const void *source_data,const int size,const CharSet &cs); ///<加载一个原始文本块到UTF16String + int LoadStringFromTextFile(UTF8String &str,const OSString &filename,const CharSet &cs); ///<加载一个原始文本文件到UTF8String + int LoadStringFromTextFile(UTF16String &str,const OSString &filename,const CharSet &cs); ///<加载一个原始文本文件到UTF16String +}//namespace hgl +#endif//HGL_LOAD_STRING_INCLUDE diff --git a/inc/hgl/type/LoadStringList.h b/inc/hgl/type/LoadStringList.h new file mode 100644 index 0000000..37a8499 --- /dev/null +++ b/inc/hgl/type/LoadStringList.h @@ -0,0 +1,78 @@ +#ifndef HGL_LOAD_STRING_LIST_INCLUDE +#define HGL_LOAD_STRING_LIST_INCLUDE + +#include + +namespace hgl +{ + template struct ReadStringFromDIS + { + bool ReadString(io::DataInputStream *dis,T &str); + }; + + template struct ReadStringFromDIS + { + bool ReadString(io::DataInputStream *dis,T &str) + { + return dis->ReadUTF8String(str); + } + }; + + template struct ReadStringFromDIS + { + bool ReadString(io::DataInputStream *dis,T &str) + { + return dis->ReadUTF16LEString(str); + } + }; + + template struct ReadStringFromDIS + { + bool ReadString(io::DataInputStream *dis,T &str) + { + return dis->ReadUTF16BEString(str); + } + }; + + /** + * 从DataInputStream流中读取一个字符串列表 + * @param sl 字符串列表处理类 + * @param dis 数据输入流 + * @return 字符串行数 + */ + template int LoadStringList(StringList &sl,io::DataInputStream *dis) + { + if(!dis)return(-1); + + int count; + int result=0; + + if(!dis->ReadInt32(count)) + return(-2); + + ReadStringFromDIS,bom> rsfd; + + String str; + + for(int i=0;i(sl,dis);} + inline int LoadUTF16LEStringList (UTF16StringList & sl,io::DataInputStream *dis){return LoadStringList(sl,dis);} + inline int LoadUTF16BEStringList (UTF16StringList & sl,io::DataInputStream *dis){return LoadStringList(sl,dis);} + + int LoadStringListFromText(UTF8StringList &sl,const void *data,const int size,const CharSet &cs); ///<加载一个原始文本块到UTF8StringList + int LoadStringListFromText(UTF16StringList &sl,const void *data,const int size,const CharSet &cs); ///<加载一个原始文本块到UTF16StringList + int LoadStringListFromTextFile(UTF8StringList &sl,const OSString &filename,const CharSet &cs); ///<加载一个原始文本文件到UTF8StringList + int LoadStringListFromTextFile(UTF16StringList &sl,const OSString &filename,const CharSet &cs); ///<加载一个原始文本文件到UTF16StringList +}//namespace hgl +#endif//HGL_LOAD_STRING_LIST_INCLUDE \ No newline at end of file diff --git a/inc/hgl/type/MergeString.h b/inc/hgl/type/MergeString.h index 78e55b8..07678fd 100644 --- a/inc/hgl/type/MergeString.h +++ b/inc/hgl/type/MergeString.h @@ -1,14 +1,14 @@ -#ifndef HGL_MERGE_STRING_INCLUDE +#ifndef HGL_MERGE_STRING_INCLUDE #define HGL_MERGE_STRING_INCLUDE #include namespace hgl { /** - * һַбϳһַ - * @param sl Ҫϵַб - * @param end_line з - * @return ַ + * 将一个字符串列表整合成一个字符串 + * @param sl 要整合的字符串列表 + * @param end_line 换行符 + * @return 字符串 */ template String MergeString(const StringList &sl,const String &end_line) { @@ -44,4 +44,4 @@ namespace hgl return String::newOf(str,total_chars); } }//namespace hgl -#endif//HGL_MERGE_STRING_INCLUDE \ No newline at end of file +#endif//HGL_MERGE_STRING_INCLUDE diff --git a/inc/hgl/type/SaveStringList.h b/inc/hgl/type/SaveStringList.h new file mode 100644 index 0000000..8c82141 --- /dev/null +++ b/inc/hgl/type/SaveStringList.h @@ -0,0 +1,73 @@ +#ifndef HGL_SAVE_STRING_LIST_INCLUDE +#define HGL_SAVE_STRING_LIST_INCLUDE + +#include + +namespace hgl +{ + template struct WriteStringToDOS + { + bool WriteString(io::DataOutputStream *dos,const T &str); + }; + + template struct WriteStringToDOS + { + bool WriteString(io::DataOutputStream *dos,const T &str) + { + return dos->WriteUTF8String(str); + } + }; + + template struct WriteStringToDOS + { + bool WriteString(io::DataOutputStream *dos,const T &str) + { + return dos->WriteUTF16LEString(str); + } + }; + + template struct WriteStringToDOS + { + bool WriteString(io::DataOutputStream *dos,const T &str) + { + return dos->WriteUTF16BEString(str); + } + }; + + template int WriteStringList(io::DataOutputStream *dos,const StringList &sl) + { + WriteStringToDOS wtd; + + const int32 count=sl.GetCount(); + int result=0; + + if(!dos->WriteInt32(count)) + return(-2); + + for(int32 i=0;i int SaveUTF8StringList(io::DataOutputStream *dos,const StringList &sl) + { + return WriteStringList(dos,sl); + } + + template int SaveUTF16LEStringList(io::DataOutputStream *dos,const StringList &sl) + { + return WriteStringList(dos,sl); + } + + template int SaveUTF16BEStringList(io::DataOutputStream *dos,const StringList &sl) + { + return WriteStringList(dos,sl); + } +}//namespace hgl +#endif//HGL_SAVE_STRING_LIST_INCLUDE \ No newline at end of file diff --git a/inc/hgl/type/SplitString.h b/inc/hgl/type/SplitString.h index 15b5e13..261483d 100644 --- a/inc/hgl/type/SplitString.h +++ b/inc/hgl/type/SplitString.h @@ -1,11 +1,11 @@ -#ifndef HGL_SPLIT_STRING_INCLUDE +#ifndef HGL_SPLIT_STRING_INCLUDE #define HGL_SPLIT_STRING_INCLUDE #include namespace hgl { /** - * ַģ + * 拆分字符串模板类 */ template class SplitString { @@ -13,9 +13,9 @@ namespace hgl virtual ~SplitString()=default; - virtual void OnNewString(const T *,const int)=0; ///<һµַ + virtual void OnNewString(const T *,const int)=0; ///<发现一个新的字符串 - virtual bool isSeparatorChar(const T &)=0; ///<ǷǷָ + virtual bool isSeparatorChar(const T &)=0; ///<是否是分隔符 virtual uint isSeparator(const T *str) { uint size=0; @@ -64,10 +64,10 @@ namespace hgl ++count; } - p+=sc; ///<ָ + p+=sc; ///<跳过分割符 size-=sc; - sp=p; + sp=p; } else { @@ -92,7 +92,7 @@ namespace hgl };//template class SplitString /** - * ַַбģ + * 拆分字符串到字符串列表模板类 */ template class SplitStringToStringList:public SplitString { @@ -132,7 +132,7 @@ namespace hgl };//template class SplitStringToStringList:public SplitString /** - * ںַַָбģ + * 基于函数和指定条件拆分字符串到字符串列表模板类 */ template class SplitStringToStringListByCondition:public SplitStringToStringList { @@ -141,7 +141,7 @@ namespace hgl public: - SplitStringToStringListByCondition(StringList *sl,const C (*func)(const T &),const C is_con):SplitStringToStringList(sl) + SplitStringToStringListByCondition(StringList *sl,const C (*func)(const T &),const C is_con):SplitStringToStringList(sl) { isFunc=func; is_condition=is_con; @@ -169,40 +169,40 @@ namespace hgl };//template class SplitStringToStringListByCondition:public SplitStringToStringList /** - * ԲɴӡַΪָһַһַб - * @param sl ַб - * @param str ַ - * @param size ַ - * @return ַ + * 以不可打印字符为分隔拆解一个字符串到一个字符串列表 + * @param sl 字符串列表处理类 + * @param str 字符串 + * @param size 字符串长度 + * @return 字符串行数 */ template int SplitToStringListBySpace(StringList &sl,const T *str,int size) { if(!str||size<=0)return(-1); - SplitStringToStringListByCondition split(&sl,isspace,true); + SplitStringToStringListByCondition split(&sl,isspace,true); return split.Split(str,size); }//int SplitToStringListBySpace #define SPLIT_STRING_TO_STRING_LIST(name) template int SplitToStringListBy##name(StringList &sl,const String &str) \ { \ - return SplitToStringListBy##name(sl,str.c_str(),str.Length()); \ + return SplitToStringListBy##name(sl,str.c_str(),str.Length()); \ } SPLIT_STRING_TO_STRING_LIST(Space) /** - * ִַһַб - * @param sl ַб - * @param str ַ - * @param size ַ - * @return ַ + * 拆分代码用字符串到一个字符串列表 + * @param sl 字符串列表处理类 + * @param str 字符串 + * @param size 字符串长度 + * @return 字符串行数 */ template int SplitToStringListByCodes(StringList &sl,const T *str,int size) { if(!str||size<=0)return(-1); - SplitStringToStringListByCondition split(&sl,iscodechar,false); + SplitStringToStringListByCondition split(&sl,iscodechar,false); return split.Split(str,size); }//int SplitToStringListByCodes @@ -210,17 +210,17 @@ namespace hgl SPLIT_STRING_TO_STRING_LIST(Codes) /** - * ִһַб - * @param sl ַб - * @param str ַ - * @param size ַ - * @return ַ + * 拆分数字串到一个字符串列表 + * @param sl 字符串列表处理类 + * @param str 字符串 + * @param size 字符串长度 + * @return 字符串行数 */ template int SplitToStringListByDigit(StringList &sl,const T *str,int size) { if(!str||size<=0)return(-1); - SplitStringToStringListByCondition split(&sl,isdigit,false); + SplitStringToStringListByCondition split(&sl,isdigit,false); return split.Split(str,size); }//int SplitToStringListByDigit @@ -228,17 +228,17 @@ namespace hgl SPLIT_STRING_TO_STRING_LIST(Digit) /** - * 16ִһַб - * @param sl ַб - * @param str ַ - * @param size ַ - * @return ַ + * 拆分16进制数字串到一个字符串列表 + * @param sl 字符串列表处理类 + * @param str 字符串 + * @param size 字符串长度 + * @return 字符串行数 */ template int SplitToStringListByXDigit(StringList &sl,const T *str,int size) { if(!str||size<=0)return(-1); - SplitStringToStringListByCondition split(&sl,isxdigit,false); + SplitStringToStringListByCondition split(&sl,isxdigit,false); return split.Split(str,size); }//int SplitToStringListByXDigit @@ -246,17 +246,17 @@ namespace hgl SPLIT_STRING_TO_STRING_LIST(XDigit) /** - * ִָһַб - * @param sl ַб - * @param str ַ - * @param size ַ - * @return ַ + * 拆分浮点数字串到一个字符串列表 + * @param sl 字符串列表处理类 + * @param str 字符串 + * @param size 字符串长度 + * @return 字符串行数 */ template int SplitToStringListByFloat(StringList &sl,const T *str,int size) { if(!str||size<=0)return(-1); - SplitStringToStringListByCondition split(&sl,isfloat,false); + SplitStringToStringListByCondition split(&sl,isfloat,false); return split.Split(str,size); }//int SplitToStringListByFloat @@ -264,7 +264,7 @@ namespace hgl SPLIT_STRING_TO_STRING_LIST(Float) /** - * ַַַָбģ + * 基于指定字符拆分字符串到字符串列表模板类 */ template class SplitStringToStringListByChar:public SplitStringToStringList { @@ -272,7 +272,7 @@ namespace hgl public: - SplitStringToStringListByChar(StringList *sl,const T &sc):SplitStringToStringList(sl) + SplitStringToStringListByChar(StringList *sl,const T &sc):SplitStringToStringList(sl) { separator_char=sc; } @@ -285,27 +285,29 @@ namespace hgl };//template class SplitStringToStringListByChar:public SplitStringToStringList /** - * ַָΪָһַһַб - * @param sl ַб - * @param str ַ - * @param size ַ - * @param split_char ַָ - * @return ַ + * 以指定字符为分隔拆解一个字符串到一个字符串列表 + * @param sl 字符串列表处理类 + * @param str 字符串 + * @param size 字符串长度 + * @param split_char 分隔字符 + * @return 字符串行数 */ template int SplitToStringListByChar(StringList &sl,const T *str,int size,const T &split_char) { - SplitStringToStringListByChar split(&sl,split_char); + SplitStringToStringListByChar split(&sl,split_char); return split.Split(str,size); }//int SplitToStringList template int SplitToStringListByChar(StringList &sl,const String &str,const T &split_char) { - return SplitToStringList(sl,str.c_str(),str.Length(),split_char); + SplitStringToStringListByChar split(&sl,split_char); + + return split.Split(str.c_str(),str.Length()); } /** - * ָĶַַַбģ + * 基于指定的多个字符拆分字符串到字符串列表模板类 */ template class SplitStringToStringListByChars:public SplitStringToStringList { @@ -313,11 +315,11 @@ namespace hgl public: - SplitStringToStringListByChar(StringList *sl,const String &sc):SplitStringToStringList(sl) + SplitStringToStringListByChars(StringList *sl,const String &sc):SplitStringToStringList(sl) { separator_char=sc; } - virtual ~SplitStringToStringListByChar()=default; + virtual ~SplitStringToStringListByChars()=default; bool isSeparatorChar(const T &ch) override { @@ -326,37 +328,39 @@ namespace hgl };//template class SplitStringToStringListByChars:public SplitStringToStringList /** - * ַָΪָһַһַб - * @param sl ַб - * @param str ַ - * @param size ַ - * @param split_char ַָ - * @return ַ + * 以指定字符为分隔拆解一个字符串到一个字符串列表 + * @param sl 字符串列表处理类 + * @param str 字符串 + * @param size 字符串长度 + * @param split_char 分隔字符 + * @return 字符串行数 */ template int SplitToStringListByChars(StringList &sl,const T *str,int size,const String &split_chars) { - SplitStringToStringListByChars split(&sl,split_chars); + SplitStringToStringListByChars split(&sl,split_chars); return split.Split(str,size); }//int SplitToStringList template int SplitToStringListByChars(StringList &sl,const String &str,const String &split_chars) { - return SplitToStringList(sl,str.c_str(),str.Length(),split_chars); + SplitStringToStringListByChars split(&sl,split_chars); + + return split.Split(str.c_str(),str.Length()); } /** - * һַһַб - * @param sl ַб - * @param str ַ - * @param size ַ - * @return ַ + * 拆解一个多行字符串到一个字符串列表 + * @param sl 字符串列表处理类 + * @param str 字符串 + * @param size 字符串长度 + * @return 字符串行数 */ template int SplitToStringListByEnter(StringList &sl,const T *str,int size) { const T sc[2]={T('\r'),T('\n')}; - SplitStringToStringListByChars split(&sl,sc); + SplitStringToStringListByChars split(&sl,sc); return split.Split(str,size); }//int SplitToStringList @@ -365,77 +369,77 @@ namespace hgl #undef SPLIT_STRING_TO_STRING_LIST - /** - * ַָΪָһַһַб - * @param sl ַб - * @param str ַ - * @param size ַ - * @param split_char ַָ - * @param maxSize ִд - * @return ַ - */ - template int SplitToStringList(StringList &sl,const T *str,int size,const T &split_char,int maxSize) - { - if(!str||size<=0)return(-1); + ///** + // * 以指定字符为分隔拆解一个字符串到一个字符串列表 + // * @param sl 字符串列表处理类 + // * @param str 字符串 + // * @param size 字符串长度 + // * @param split_char 分隔字符 + // * @param maxSize 最多执行次数 + // * @return 字符串行数 + // */ + //template int SplitToStringList(StringList &sl,const T *str,int size,const T &split_char,int maxSize) + //{ + // if(!str||size<=0)return(-1); - int count=0; - const T *p,*sp; + // int count=0; + // const T *p,*sp; - sp=p=str; + // sp=p=str; - while(size>0) - { - if(!(*p)) - { - if(p>sp) - { - sl.Add(String(sp,p-sp)); - ++count; - } + // while(size>0) + // { + // if(!(*p)) + // { + // if(p>sp) + // { + // sl.Add(String(sp,p-sp)); + // ++count; + // } - --size; - return count; - } + // --size; + // return count; + // } - if(*p==split_char) - { - if(p>sp) - { - sl.Add(String(sp,p-sp)); - ++count; - } + // if(*p==split_char) + // { + // if(p>sp) + // { + // sl.Add(String(sp,p-sp)); + // ++count; + // } - sp=p+1; ///<ָ - if(maxSize >0 && count >=maxSize-1) - { - ++p; - --size; - if(size > 0) - { - sl.Add(String(sp,size)); - ++count; - } + // sp=p+1; ///<跳过分割符 + // if(maxSize >0 && count >=maxSize-1) + // { + // ++p; + // --size; + // if(size > 0) + // { + // sl.Add(String(sp,size)); + // ++count; + // } - return count; - } - } + // return count; + // } + // } - ++p; - --size; - } + // ++p; + // --size; + // } - if(p>sp) - { - sl.Add(String(sp,p-sp)); - ++count; - } + // if(p>sp) + // { + // sl.Add(String(sp,p-sp)); + // ++count; + // } - return count; - }//int SplitToStringList + // return count; + //}//int SplitToStringList - template int SplitToStringList(StringList &sl,const String &str,const T &split_char,int maxSize) - { - return SplitToStringList(sl,str.c_str(),str.Length(),split_char,maxSize); - } + //template int SplitToStringList(StringList &sl,const String &str,const T &split_char,int maxSize) + //{ + // return SplitToStringList(sl,str.c_str(),str.Length(),split_char,maxSize); + //} }//namespace hgl -#endif//HGL_SPLIT_STRING_INCLUDE \ No newline at end of file +#endif//HGL_SPLIT_STRING_INCLUDE diff --git a/inc/hgl/type/StrChar.h b/inc/hgl/type/StrChar.h index 7c87769..5942fd5 100644 --- a/inc/hgl/type/StrChar.h +++ b/inc/hgl/type/StrChar.h @@ -126,7 +126,8 @@ namespace hgl { return((ch>='0'&&ch<='9') ||(ch>='a'&&ch<='f') - ||(ch>='A'&&ch<='F')); + ||(ch>='A'&&ch<='F') + ||ch=='x'||ch=='X'); } /** diff --git a/inc/hgl/type/StringList.h b/inc/hgl/type/StringList.h index f996751..ba85a8f 100644 --- a/inc/hgl/type/StringList.h +++ b/inc/hgl/type/StringList.h @@ -251,146 +251,5 @@ namespace hgl DEFINE_STRING_LIST(OS) #undef DEFINE_STRING_LIST - - template struct ReadStringFromDIS - { - bool ReadString(io::DataInputStream *dis,T &str); - }; - - template struct ReadStringFromDIS - { - bool ReadString(io::DataInputStream *dis,T &str) - { - return dis->ReadUTF8String(str); - } - }; - - template struct ReadStringFromDIS - { - bool ReadString(io::DataInputStream *dis,T &str) - { - return dis->ReadUTF16LEString(str); - } - }; - - template struct ReadStringFromDIS - { - bool ReadString(io::DataInputStream *dis,T &str) - { - return dis->ReadUTF16BEString(str); - } - }; - - /** - * 从DataInputStream流中读取一个字符串列表 - * @param sl 字符串列表处理类 - * @param dis 数据输入流 - * @return 字符串行数 - */ - template int LoadStringList(StringList &sl,io::DataInputStream *dis) - { - if(!dis)return(-1); - - int count; - int result=0; - - if(!dis->ReadInt32(count)) - return(-2); - - ReadStringFromDIS,bom> rsfd; - - String str; - - for(int i=0;i(sl,dis);} - inline int LoadUTF16LEStringList (UTF16StringList & sl,io::DataInputStream *dis){return LoadStringList(sl,dis);} - inline int LoadUTF16BEStringList (UTF16StringList & sl,io::DataInputStream *dis){return LoadStringList(sl,dis);} - - int LoadStringFromText(UTF8String & str,const void *data,const int size,const CharSet &default_charset=UTF8CharSet); ///<从文件加载一个文本块到UTF8StringList - int LoadStringFromText(UTF16String &str,const void *data,const int size,const CharSet &default_charset=UTF8CharSet); ///<从文件加载一个文本块到UTF16StringList - - int LoadStringListFromText(UTF8StringList & sl,const void *data,const int size,const CharSet &default_charset=UTF8CharSet); ///<从文件加载一个文本块到UTF8StringList - int LoadStringListFromText(UTF16StringList &sl,const void *data,const int size,const CharSet &default_charset=UTF8CharSet); ///<从文件加载一个文本块到UTF16StringList - - int LoadStringFromTextFile( UTF8String & str,const OSString &filename,const CharSet &default_charset=UTF8CharSet); ///<从文件加载一个文本文件到UTF8String - int LoadStringFromTextFile( UTF16String & str,const OSString &filename,const CharSet &default_charset=UTF8CharSet); ///<从文件加载一个文本文件到UTF16String - int LoadStringListFromTextFile( UTF8StringList & sl,const OSString &filename,const CharSet &default_charset=UTF8CharSet); ///<从文件加载一个文本文件到UTF8StringList - int LoadStringListFromTextFile( UTF16StringList &sl,const OSString &filename,const CharSet &default_charset=UTF8CharSet); ///<从文件加载一个文本文件到UTF16StringList - - template struct WriteStringToDOS - { - bool WriteString(io::DataOutputStream *dos,const T &str); - }; - - template struct WriteStringToDOS - { - bool WriteString(io::DataOutputStream *dos,const T &str) - { - return dos->WriteUTF8String(str); - } - }; - - template struct WriteStringToDOS - { - bool WriteString(io::DataOutputStream *dos,const T &str) - { - return dos->WriteUTF16LEString(str); - } - }; - - template struct WriteStringToDOS - { - bool WriteString(io::DataOutputStream *dos,const T &str) - { - return dos->WriteUTF16BEString(str); - } - }; - - template int WriteStringList(io::DataOutputStream *dos,const StringList &sl) - { - WriteStringToDOS wtd; - - const int32 count=sl.GetCount(); - int result=0; - - if(!dos->WriteInt32(count)) - return(-2); - - for(int32 i=0;i int SaveUTF8StringList(io::DataOutputStream *dos,const StringList &sl) - { - return WriteStringList(dos,sl); - } - - template int SaveUTF16LEStringList(io::DataOutputStream *dos,const StringList &sl) - { - return WriteStringList(dos,sl); - } - - template int SaveUTF16BEStringList(io::DataOutputStream *dos,const StringList &sl) - { - return WriteStringList(dos,sl); - } }//namespace hgl #endif//HGL_STRINGLIST_INCLUDE diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d068780..b7ee97b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -60,6 +60,9 @@ SET(STRING_HEADER_FILES ${TYPE_INCLUDE_PATH}/String.h ${TYPE_INCLUDE_PATH}/StringList.h ${TYPE_INCLUDE_PATH}/SplitString.h ${TYPE_INCLUDE_PATH}/MergeString.h + ${TYPE_INCLUDE_PATH}/LoadString.h + ${TYPE_INCLUDE_PATH}/LoadStringList.h + ${TYPE_INCLUDE_PATH}/SaveStringList.h ${TYPE_INCLUDE_PATH}/StdString.h) SET(TEXT_HEADER_FILES ${CMCORE_ROOT_INCLUDE_PATH}/hgl/Endian.h @@ -70,7 +73,8 @@ SET(TEXT_HEADER_FILES ${CMCORE_ROOT_INCLUDE_PATH}/hgl/Endian.h SET(TEXT_SOURCE_FILES Text/Endian.cpp Text/CodePage.cpp Text/UnicodeBlocks.cpp - Text/StringList.cpp) + Text/LoadString.cpp + Text/LoadStringList.cpp) SOURCE_GROUP("Text\\String" FILES ${STRING_HEADER_FILES} Text/StringList.cpp) diff --git a/src/Text/StringList.cpp b/src/Text/LoadString.cpp similarity index 80% rename from src/Text/StringList.cpp rename to src/Text/LoadString.cpp index 30ab2a2..aff643d 100644 --- a/src/Text/StringList.cpp +++ b/src/Text/LoadString.cpp @@ -1,4 +1,4 @@ -#include +#include #include namespace hgl { @@ -158,30 +158,6 @@ namespace hgl return char_count; } - /** - * 加载一个原始文本块到UTF8StringList - */ - int LoadStringListFromText(UTF8StringList &sl,const void *data,const int size,const CharSet &cs) - { - UTF8String str; - - LoadStringFromText(str,data,size,cs); - - return SplitToStringListByEnter(sl,str); - } - - /** - * 加载一个原始文本块到UTF16StringList - */ - int LoadStringListFromText(UTF16StringList &sl,const void *data,const int size,const CharSet &cs) - { - UTF16String str; - - LoadStringFromText(str,data,size,cs); - - return SplitToStringListByEnter(sl,str); - } - /** * 加载一个原始文本文件到UTF8String */ @@ -211,34 +187,4 @@ namespace hgl return LoadStringFromText(str,data,size,cs); } - - /** - * 加载一个原始文本文件到UTF8StringList - */ - int LoadStringListFromTextFile(UTF8StringList &sl,const OSString &filename,const CharSet &cs) - { - uchar *data; - - const int size=filesystem::LoadFileToMemory(filename,(void **)&data); - - if(size<=0) - return size; - - return LoadStringListFromText(sl,data,size,cs); - } - - /** - * 加载一个原始文本文件到UTF16StringList - */ - int LoadStringListFromTextFile(UTF16StringList &sl,const OSString &filename,const CharSet &cs) - { - uchar *data; - - const int size=filesystem::LoadFileToMemory(filename,(void **)&data); - - if(size<=0) - return size; - - return LoadStringListFromText(sl,data,size,cs); - } }//namespace hgl diff --git a/src/Text/LoadStringList.cpp b/src/Text/LoadStringList.cpp new file mode 100644 index 0000000..9a5bfac --- /dev/null +++ b/src/Text/LoadStringList.cpp @@ -0,0 +1,61 @@ +#include +#include +#include +#include + +namespace hgl +{ + /** + * 加载一个原始文本块到UTF8StringList + */ + int LoadStringListFromText(UTF8StringList &sl,const void *data,const int size,const CharSet &cs) + { + UTF8String str; + + LoadStringFromText(str,data,size,cs); + + return SplitToStringListByEnter(sl,str); + } + + /** + * 加载一个原始文本块到UTF16StringList + */ + int LoadStringListFromText(UTF16StringList &sl,const void *data,const int size,const CharSet &cs) + { + UTF16String str; + + LoadStringFromText(str,data,size,cs); + + return SplitToStringListByEnter(sl,str); + } + + /** + * 加载一个原始文本文件到UTF8StringList + */ + int LoadStringListFromTextFile(UTF8StringList &sl,const OSString &filename,const CharSet &cs) + { + uchar *data; + + const int size=filesystem::LoadFileToMemory(filename,(void **)&data); + + if(size<=0) + return size; + + return LoadStringListFromText(sl,data,size,cs); + } + + /** + * 加载一个原始文本文件到UTF16StringList + */ + int LoadStringListFromTextFile(UTF16StringList &sl,const OSString &filename,const CharSet &cs) + { + uchar *data; + + const int size=filesystem::LoadFileToMemory(filename,(void **)&data); + + if(size<=0) + return size; + + return LoadStringListFromText(sl,data,size,cs); + } +}//namespace hgl