00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "Tools.h"
00012
00013
00014 char *gettok(const char *pData, int iPos, char *pCar)
00015 {
00016 static char Data[NBCHAR];
00017 int c = 0, n = 0, l = 0;
00018 char *ppCar;
00019
00020 for(; *pData && (n <= iPos); pData++)
00021 {
00022 for(ppCar = pCar; *ppCar && (*ppCar != *pData); ppCar++);
00023
00024 if(*ppCar)
00025 {
00026 if(!l)
00027 {
00028 l = 1;
00029 n++;
00030 }
00031 }
00032 else
00033 {
00034 l = 0;
00035 if(iPos == n)
00036 Data[c++] = *pData;
00037 }
00038 }
00039
00040 Data[c] = 0;
00041
00042 return Data;
00043 }
00044
00045 void ItoA(int iNbr, char *pBuf)
00046 {
00047 char Buffer[12];
00048 char *ppBuf = pBuf;
00049 char *Temp = Buffer;
00050
00051 *Temp++;
00052
00053 if(iNbr < 0)
00054 {
00055 *Temp++ = '-';
00056 iNbr = -1 * iNbr;
00057 }
00058
00059 do
00060 {
00061 *Temp++ = (char)((iNbr % 10) + '0');
00062 iNbr /= 10;
00063 }
00064 while(iNbr > 0);
00065
00066 *Temp-- = 0;
00067
00068 do
00069 {
00070 *ppBuf++ = *Temp--;
00071 }
00072 while(*Temp);
00073 }
00074
00075 int AtoI(const char *pNbr)
00076 {
00077 int Total = 0;
00078 int Sign = 0;
00079
00080 if(*pNbr == '-')
00081 {
00082 Sign = 1;
00083 pNbr++;
00084 }
00085
00086 while((*pNbr >= '0') && (*pNbr <= '9'))
00087 Total = 10 * Total + (*pNbr++ - '0');
00088
00089 if(Sign)
00090 Total = -Total;
00091
00092 return Total;
00093 }
00094
00095 void FtoA(float fNbr, char *pBuf)
00096 {
00097 char Float[6];
00098
00099 ItoA((int)fNbr, pBuf);
00100 strcat(pBuf, ".\0");
00101 ItoA((int)((fNbr - (int)fNbr) * 10000), Float);
00102 strcat(pBuf, Float);
00103 }
00104
00105 float AtoF(const char *pNbr)
00106 {
00107 float Total = 0, Float = 1;
00108 int Sign = 0;
00109
00110 if(*pNbr == '-')
00111 {
00112 Sign = 1;
00113 pNbr++;
00114 }
00115
00116 while((*pNbr >= '0') && (*pNbr <= '9'))
00117 Total = 10 * Total + (*pNbr++ - '0');
00118
00119 if(*pNbr == '.')
00120 pNbr++;
00121
00122 while((*pNbr >= '0') && (*pNbr <= '9'))
00123 Total += (Float /= 10) * (*pNbr++ - '0');
00124
00125 if(Sign)
00126 Total = -Total;
00127
00128 return Total;
00129 }
00130
00131 int IsUInt(const char *pNbr)
00132 {
00133 for(; *pNbr; *pNbr++)
00134 if((*pNbr < '0') || (*pNbr > '9'))
00135 return 0;
00136
00137 return 1;
00138 }
00139
00140 int IsAlphaNum(const char *pBuf)
00141 {
00142 for(; *pBuf; *pBuf++)
00143 {
00144 if((*pBuf < 'a') || (*pBuf > 'z'))
00145 {
00146 if((*pBuf < 'A') || (*pBuf > 'Z'))
00147 {
00148 if((*pBuf < '0') || (*pBuf > '9'))
00149 return 0;
00150 }
00151 }
00152 }
00153
00154 return 1;
00155 }
00156
00157 int IsAlphaNumCar(char cCar)
00158 {
00159 if((cCar < 'a') || (cCar > 'z'))
00160 {
00161 if((cCar < 'A') || (cCar > 'Z'))
00162 {
00163 if((cCar < '0') || (cCar > '9'))
00164 return 0;
00165 }
00166 }
00167
00168 return 1;
00169 }
00170
00171 int IsIn(char cCar, const char *pBuf)
00172 {
00173 for(; *pBuf; *pBuf++)
00174 if(cCar == *pBuf)
00175 return 1;
00176
00177 return 0;
00178 }
00179
00180 int Replace(char cCar, char cNew, char *pBuf)
00181 {
00182 int i = 0;
00183
00184 for(; *pBuf; *pBuf++)
00185 {
00186 if(cCar == *pBuf)
00187 {
00188 *pBuf = cNew;
00189 i++;
00190 }
00191 }
00192
00193 return i;
00194 }
00195
00196 char *StrStr(const char *pBuf, const char *pFind)
00197 {
00198 char *Buf = (char *)pBuf;
00199 register char *ppBuf;
00200 register char *ppFind;
00201
00202 if(!*pFind)
00203 return Buf;
00204
00205 while(*Buf)
00206 {
00207 ppFind = (char *)pFind;
00208 ppBuf = Buf;
00209
00210 while(!(*ppBuf ^ *ppFind))
00211 {
00212 ppBuf++;
00213 ppFind++;
00214 }
00215
00216 if(!*ppFind)
00217 return Buf;
00218
00219 Buf++;
00220 }
00221
00222 return NULL;
00223 }
00224