00001
00012 #ifndef dkutil_c_String__h
00013 #define dkutil_c_String__h
00014
00015 #include "dkcDefined.h"
00016 #include "dkcOSIndependent.h"
00017 #include "dkcMemoryStream.h"
00018
00019
00020
00021
00022 #define UCHAR_MAX_STR "255"
00023
00024 #define UCHAR_MAX_STR_LEN 3
00025
00026
00027 #define USHRT_MAX_STR "65535"
00028
00029 #define USHRT_MAX_STR_LEN 5
00030
00032 #define SHRT_MAX_STR "32767"
00033
00034 #define SHRT_MAX_STR_LEN 5
00035
00037 #define SHRT_MIN_STR "-32768"
00038
00039 #define SHRT_MIN_STR_LEN 6
00040
00042 #define INT_MAX_STR "2147483647"
00043
00044 #define INT_MAX_STR_LEN 10
00045
00047 #define UINT_MAX_STR "4294967295"
00048
00049 #define UINT_MAX_STR_LEN 10
00050
00052 #define INT_MIN_STR "-2147483648"
00053
00054
00055 #define INT_MIN_STR_LEN 11
00056
00058 #define ULONG_MAX_STR "4294967295"
00059
00060 #define ULONG_MAX_STR_LEN 10
00061
00062 #define LONGLONG_MAX_STR "9223372036854775807"
00063
00064 #define LONGLONG_MAX_STR_LEN 19
00065
00066 #define LONGLONG_MIN_STR "-9223372036854775808"
00067
00068 #define LONGLONG_MIN_STR_LEN 20
00069
00070 #define ULONGLONG_MAX_STR "18446744073709551615"
00071
00072 #define ULONGLONG_MAX_STR_LEN 20
00073
00075 #define DBL_MAX_STR "179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000"
00076
00077 #define DBL_MAX_STR_LEN 316
00078
00080 #define DBL_MIN_STR "0.000000"
00081
00082 #define DBL_MIN_STR_LEN 8
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00097 #define dkcmIsSJIS1(c) dkcIsSJIS1(c)
00098
00099 #define dkcmIsSJIS2(c) dkcIsSJIS2(c)
00100
00101
00102 enum edkcString{
00103 edkcCHARString = 1,
00104 edkcWCHARString,
00105 };
00109 typedef struct dkc_String{
00110 DKC_MEMORYSTREAM *mStream;
00112 size_t mByteSize;
00113 }DKC_STRING;
00114
00115
00117 DKC_EXTERN BOOL dkcIsSJIS1(BYTE c);
00119 DKC_EXTERN BOOL dkcIsSJIS2(BYTE c);
00121 DKC_EXTERN BOOL dkcIsSpace(BYTE c);
00123
00124 DKC_EXTERN const char *dkcGetSpaceSeparator();
00125
00126
00127
00129 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearch(const char *s, char c);
00130
00132 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearchLast(const char *s, char c);
00133
00139 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearchTail(const char *s,size_t len,char c);
00140
00144
00145 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearchInStr(const char *s,const char *c);
00147 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearchInStrLast(const char *s, const char *c);
00149 DKC_EXTERN int WINAPI dkcSJIS_SearchPathSep(const char *s);
00151 DKC_EXTERN int WINAPI dkcSJIS_SearchPathSepLast(const char *s);
00152
00156 DKC_EXTERN int WINAPI dkcStrStr(const char *dest,const char *src);
00161
00162 DKC_EXTERN int WINAPI dkcBMStrStr(const char *dest,const char *src);
00163
00164
00165
00166
00167
00168
00169 DKC_EXTERN DKC_STRING * WINAPI dkcAllocString(size_t size);
00170
00171 DKC_EXTERN int WINAPI dkcFreeString(DKC_STRING **ptr);
00172
00173 DKC_EXTERN int WINAPI dkcStringCopy(DKC_STRING *ptr,const char *str,size_t size);
00175 DKC_EXTERN int WINAPI dkcStringConcatenate(DKC_STRING *ptr,const char *str,size_t size);
00183 DKC_EXTERN int WINAPI dkcStringInsert(DKC_STRING *ptr,size_t point,const char *str,size_t size);
00193 DKC_EXTERN int WINAPI dkcStringErase(DKC_STRING *ptr,size_t point,size_t len);
00202 DKC_EXTERN int WINAPI dkcStringReplace(DKC_STRING *ptr,size_t begin_,size_t end_,const char *str,size_t size);
00203
00204
00205
00207 DKC_EXTERN size_t dkcStringNum(const DKC_STRING *ptr);
00208
00209 DKC_EXTERN size_t dkcStringSize(const DKC_STRING *ptr);
00210
00211
00212 DKC_EXTERN const char * WINAPI dkcStringPointer(const DKC_STRING *ptr);
00213
00215 DKC_EXTERN int WINAPI dkcStringGetBuffer(const DKC_STRING *ptr,char *buffer,size_t buffsize);
00217 DKC_EXTERN int WINAPI dkcStringSerialize(const DKC_STRING *ptr,DKC_SERIALIZE *);
00219 DKC_EXTERN DKC_STRING* WINAPI dkcAllocStringDeserialize(DKC_DESERIALIZE *se);
00220
00221
00222
00223 #endif