4 extern BYTE g_byLeadByteTable[256];
5 extern BYTE g_byToLowerTable[256];
6 extern BYTE g_byToUpperTable[256];
8 #define kbIsLeadByte(X) g_byLeadByteTable[(BYTE)(X)]
9 #define kbToLower(X) g_byToLowerTable[(BYTE)(X)]
10 #define kbToUpper(X) g_byToUpperTable[(BYTE)(X)]
12 //
\83e
\81[
\83u
\83\8b\8f\89\8aú
\89»
13 //
\8eg
\97p
\91O
\82É
\95K
\82¸
\82P
\93x
\82¾
\82¯
\8cÄ
\82Ñ
\8fo
\82·
14 void __fastcall kbStr_Initialize(void);
16 //
\95¶
\8e\9a\97ñ
\8aÖ
\8cW
18 int __fastcall kbStrLen(const char *cszString);
20 // cszSrc
\82ð szDest
\82É nBufSize
\83o
\83C
\83g
\95ª
\83R
\83s
\81[
21 //
\95¶
\8e\9a\97ñ
\82Ì
\92·
\82³
\82ª
\91«
\82è
\82È
\82¢
\8fê
\8d\87\82Í nBufSize-1
\83o
\83C
\83g
\83R
\83s
\81[
\82µ
\82Ä
\8fI
\92[
\82É \0
\82ð
\95t
\89Á
22 //
\8fI
\92[
\95¶
\8e\9a\82ª
\93r
\90Ø
\82ê
\82Ä
\82¢
\82é
\82æ
\82¤
\82È
\8fê
\8d\87\82É
\82à
\91Î
\89\9e
23 // cszSrc
\82Ì
\92·
\82³(strlen(cszSrc)
\82ð
\95Ô
\82·
24 //
\96ß
\82è
\92l >= nBufSize
\82Ì
\8fê
\8d\87\81A
\95¶
\8e\9a\97ñ
\82ð
\90Ø
\82è
\8eÌ
\82Ä
\82½
\82±
\82Æ
\82ð
\88Ó
\96¡
\82·
\82é
25 int __fastcall kbStrLCpy(char *szDest, const char *cszSrc, int nBufSize);
27 // cszSrc
\82ð szDest
\82É
\98A
\8c\8b
28 // nBufSize
\82Í szDest
\82Ì
\83T
\83C
\83Y
\81i
\8fI
\92[
\82Ì '\0'
\82ð
\8aÜ
\82Þ
\81j
29 //
\8fI
\92[
\95¶
\8e\9a\82ª
\93r
\90Ø
\82ê
\82Ä
\82¢
\82é
\82æ
\82¤
\82È
\8fê
\8d\87\82É
\82à
\91Î
\89\9e
30 // strlen(cszSrc) + min(strlen(szDest) + nBufSize)
\82ð
\95Ô
\82·
31 //
\96ß
\82è
\92l >= nBufSize
\82Ì
\8fê
\8d\87\81A
\98A
\8c\8b\95¶
\8e\9a\97ñ
\82ð
\90Ø
\82è
\8eÌ
\82Ä
\82½
\82±
\82Æ
\82ð
\88Ó
\96¡
\82·
\82é
32 int __fastcall kbStrLCat(char *szDest, const char *cszSrc, int nBufSize);
34 char* __fastcall kbStrTrimRight(char* szString);//
\8fI
\92[
\82Ì
\8bó
\94\92\95¶
\8e\9a\82ð
\8f\9c\8b\8e
35 char* __fastcall kbStrTrimLeft(char* szString); //
\90æ
\93ª
\82Ì
\8bó
\94\92\95¶
\8e\9a\82ð
\8f\9c\8b\8e
36 char* __fastcall kbStrTrim(char* szString); //
\90æ
\93ª
\82Æ
\8fI
\92[
\82Ì
\8bó
\94\92\95¶
\8e\9a\82ð
\8f\9c\8b\8e
37 char* __fastcall kbCRLFtoSpace(char* szString); //
\89ü
\8ds
\95¶
\8e\9a\82Æ
\83^
\83u
\95¶
\8e\9a\82ð
\83X
\83y
\81[
\83X
\82É
\95Ï
\8a·
39 int __fastcall kbStrCmp(const char *cszStr1, const char *cszStr2);
40 int __fastcall kbStrCmpI(const char *cszStr1, const char *cszStr2);
41 int __fastcall kbStrNCmp(const char *cszStr1, const char *cszStr2, int nLen);
42 int __fastcall kbStrNCmpI(const char *cszStr1, const char *cszStr2, int nLen);
44 //
\95¶
\8e\9a\97ñ cszString
\82©
\82ç
\95¶
\8e\9a cFind
\82ð
\8c\9f\8dõ
\82µ
\81A
\8dÅ
\8f\89\82É
\8c©
\82Â
\82©
\82Á
\82½
\95¶
\8e\9a\82Ö
\82Ì
\83|
\83C
\83\93\83^
\82ð
\95Ô
\82·
45 //
\8c©
\82Â
\82©
\82ç
\82È
\82¢
\8fê
\8d\87\82Í NULL
\82ð
\95Ô
\82·
46 const char* __fastcall kbStrChr(const char *cszString, char cFind);
47 inline char *__fastcall kbStrChr(char *szString, char cFind)
49 return (char*) kbStrChr((const char*) szString, cFind);
51 //
\95¶
\8e\9a\97ñ cszString
\82©
\82ç
\95¶
\8e\9a cFind
\82ð
\8c\9f\8dõ
\82µ
\81A
\8dÅ
\8cã
\82É
\8c©
\82Â
\82©
\82Á
\82½
\95¶
\8e\9a\82Ö
\82Ì
\83|
\83C
\83\93\83^
\82ð
\95Ô
\82·
52 //
\8c©
\82Â
\82©
\82ç
\82È
\82¢
\8fê
\8d\87\82Í NULL
\82ð
\95Ô
\82·
53 const char* __fastcall kbStrRChr(const char *cszString, char cFind);
54 inline char *__fastcall kbStrRChr(char *szString, char cFind)
56 return (char*) kbStrRChr((const char*) szString, cFind);
59 const char* __fastcall kbStrStr(const char *cszString, const char *cszSearch);
60 inline char *__fastcall kbStrStr(char *szString, const char *cszSearch)
62 return (char*) kbStrStr((const char*) szString, cszSearch);
64 const char* __fastcall kbStrStrI(const char *cszString, const char *cszSearch);
65 inline char *__fastcall kbStrStrI(char *szString, const char *cszSearch)
67 return (char*) kbStrStrI((const char*) szString, cszSearch);
70 char* __fastcall kbStrUpr(char *pszString);
71 char* __fastcall kbStrLwr(char *pszString);
73 char* __fastcall kbStrTok(char *pszString, const char *cszDelimiter, char **ppszNext);
75 int __fastcall kbStrToIntDef(const char* cszStr, int nDefault);
76 double __fastcall kbStrToDoubleDef(const char* cszStr, double nDefault);
78 //
\95¶
\8e\9a\97ñ src
\82Ì old_pattern
\82ð new_pattern
\82É
\92u
\8a·
\82·
\82é
79 //size
\82Í dst
\82Ì
\83o
\83b
\83t
\83@
\83T
\83C
\83Y
80 //old_pattern == ""
\81i
\8bó
\95¶
\8e\9a\97ñ
\81j
\82Ì
\8fê
\8d\87\81AkbStrLCat(dst, size, new_pattern)
\82Æ
\93¯
\82¶
81 //
\83o
\83b
\83t
\83@
\83T
\83C
\83Y
\82ª
\91«
\82è
\82È
\82¢
\8fê
\8d\87\82Í
\81Asize-1
\83o
\83C
\83g
\82Ü
\82Å
\92u
\8a·
\82·
\82é
82 //
\8a®
\91S
\92u
\8a·
\82³
\82ê
\82½
\82Æ
\82µ
\82½
\82Æ
\82«
\82Ì
\95¶
\8e\9a\97ñ
\82Ì
\92·
\82³
\82ð
\95Ô
\82·
83 //
\96ß
\82è
\92l >= size
\82Ì
\8fê
\8d\87\81A
\92u
\8a·
\8cã
\82Ì
\95¶
\8e\9a\97ñ
\82ª
\88ê
\95\94\90Ø
\82è
\8eÌ
\82Ä
\82ç
\82ê
\82½
\82±
\82Æ
\82ð
\88Ó
\96¡
\82·
\82é
84 int __fastcall kbStringReplace(char *dst,
87 const char *old_pattern,
88 const char *new_pattern);
90 int __fastcall kbMultiByteToWideChar(const char *cszMultiByte,
93 int __fastcall kbWideCharToMultiByte(const wchar_t *wcszWideChar,
97 //
\83t
\83@
\83C
\83\8b\96¼
\8aÖ
\8cW
99 //cszSrc
\93à
\82Ì
\8ag
\92£
\8eq
\95\94\95ª
\82Ö
\82Ì
\83|
\83C
\83\93\83^
\82ð
\95Ô
\82·
100 //
\8ag
\92£
\8eq
\82ª
\82È
\82¢
\8fê
\8d\87\82Í
\8bó
\95¶
\8e\9a\97ñ
\82ð
\95Ô
\82·
101 //
\81i
\96ß
\82è
\92l
\82Í NULL
\82Å
\82È
\82¢
\82±
\82Æ
\82ª
\95Û
\8fØ
\82³
\82ê
\82é
\81j
102 const char* __fastcall kbExtractFileExt(const char* cszSrc);
104 //cszFileName
\82©
\82ç
\83p
\83X
\82ð
\8eæ
\82è
\8f\9c\82¢
\82½
\82à
\82Ì
\81i
\83t
\83@
\83C
\83\8b\96¼
\95\94\95ª
\81j
\82Ì
\83|
\83C
\83\93\83^
\82ð
\95Ô
\82·
105 const char* __fastcall kbExtractFileName(const char* cszFileName);
107 //cszFileName
\82©
\82ç
\83p
\83X
\82ð
\8eæ
\93¾
\82µ
\82Ä
\83|
\83C
\83\93\83^
\82ð
\95Ô
\82·
108 char* __fastcall kbExtractFilePath(char *szDest, const char* cszFileName, int nSize);
110 //
\8f\91\8cÉ
\83t
\83@
\83C
\83\8b\93à
\82Ì
\83t
\83@
\83C
\83\8b\96¼
\82©
\82ç
\83p
\83X
\82ð
\8eæ
\82è
\8f\9c\82¢
\82½
\82à
\82Ì
\82ð
\95Ô
\82·
111 //
\97á
\82P
\81FC:\hoge\hoge.lzh>test.mid
\82Ì
\96ß
\82è
\92l = test.mid
112 //
\97á
\82Q
\81FC:\hoge\hoge.lzh>test/test2.mid
\82Ì
\96ß
\82è
\92l
\81\81test2.mid
113 //
\97á
\82R
\81FC:\hoge\hoge.lzh>test/testzip.zip>test3.mid
\82Ì
\96ß
\82è
\92l = test3.mid
114 //
\97á
\82S
\81FC:\hoge\hoge.lzh>test/testzip.zip>test/test4.mid
\82Ì
\96ß
\82è
\92l = test4.mid
115 const char* __fastcall kbExtractFileNameInArc(const char *cszFileName);
117 //
\8f\91\8cÉ
\83t
\83@
\83C
\83\8b\93à
\82Ì
\83t
\83@
\83C
\83\8b\96¼
\82©
\82ç
\83t
\83@
\83C
\83\8b\96¼
\82ð
\8eæ
\82è
\8f\9c\82¢
\82½
\82à
\82Ì
\82ð
\95Ô
\82·
118 //
\97á
\82P
\81FC:\hoge\hoge.lzh>test.mid
\82Ì
\96ß
\82è
\92l = C:\hoge\hoge.lzh>
119 //
\97á
\82Q
\81FC:\hoge\hoge.lzh>test/test2.mid
\82Ì
\96ß
\82è
\92l = C:\hoge\hoge.lzh>test/
120 //
\97á
\82R
\81FC:\hoge\hoge.lzh>test/testzip.zip>test3.mid
\82Ì
\96ß
\82è
\92l = C:\hoge\hoge.lzh>test/testzip.zip>
121 //
\97á
\82S
\81FC:\hoge\hoge.lzh>test/testzip.zip>test/test4.mid
\82Ì
\96ß
\82è
\92l = C:\hoge\hoge.lzh>test/testzip.zip>test/
122 const char* __fastcall kbExtractFilePathInArc(char *szDest, const char *cszFileName);
124 //cszFileName
\82Ì
\8ag
\92£
\8eq
\82ð cszExt
\82É
\92u
\82«
\8a·
\82¦
\82Ä szDest
\82É
\83R
\83s
\81[
\82·
\82é
125 char* __fastcall kbExtractReplacedFileExt(char *szDest,
126 const char *cszFileName,
129 void __fastcall kbAddPathDelimiter(char *szPath);
130 void __fastcall kbRemovePathDelimiter(char *szPath);
131 void __fastcall kbCombinePath(char *szDest, const char *cszSrc,
132 const char *cszAdd, int nDestSize);