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);
00120
00122 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearch(const char *s, char c);
00123
00125 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearchLast(const char *s, char c);
00126
00132 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearchTail(const char *s,size_t len,char c);
00133
00137
00138 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearchInStr(const char *s,const char *c);
00140 DKC_EXTERN int WINAPI dkcSJIS_StrChrSearchInStrLast(const char *s, const char *c);
00142 DKC_EXTERN int WINAPI dkcSJIS_SearchPathSep(const char *s);
00144 DKC_EXTERN int WINAPI dkcSJIS_SearchPathSepLast(const char *s);
00145
00149 DKC_EXTERN int WINAPI dkcStrStr(const char *dest,const char *src);
00154
00155 DKC_EXTERN int WINAPI dkcBMStrStr(const char *dest,const char *src);
00156
00157
00158
00159
00160
00161
00162 DKC_EXTERN DKC_STRING * WINAPI dkcAllocString(size_t size);
00163
00164 DKC_EXTERN int WINAPI dkcFreeString(DKC_STRING **ptr);
00165
00166 DKC_EXTERN int WINAPI dkcStringCopy(DKC_STRING *ptr,const char *str,size_t size);
00168 DKC_EXTERN int WINAPI dkcStringConcatenate(DKC_STRING *ptr,const char *str,size_t size);
00176 DKC_EXTERN int WINAPI dkcStringInsert(DKC_STRING *ptr,size_t point,const char *str,size_t size);
00186 DKC_EXTERN int WINAPI dkcStringErase(DKC_STRING *ptr,size_t point,size_t len);
00195 DKC_EXTERN int WINAPI dkcStringReplace(DKC_STRING *ptr,size_t begin_,size_t end_,const char *str,size_t size);
00196
00197
00198
00200 DKC_EXTERN size_t dkcStringNum(const DKC_STRING *ptr);
00201
00202 DKC_EXTERN size_t dkcStringSize(const DKC_STRING *ptr);
00203
00204
00205 DKC_EXTERN const char * WINAPI dkcStringPointer(const DKC_STRING *ptr);
00206
00208 DKC_EXTERN int WINAPI dkcStringGetBuffer(const DKC_STRING *ptr,char *buffer,size_t buffsize);
00210 DKC_EXTERN int WINAPI dkcStringSerialize(const DKC_STRING *ptr,DKC_MEMORYSTREAM *);
00211
00212
00213
00214 #endif