00001 /*! \file Tools.h 00002 \brief Outils pour parser. 00003 00004 Outils permetant de manipuler (conversion, decoupage) des données. 00005 00006 \author aerith (http://aerith.fr) 00007 \version 3.0 00008 \date 13/04/2008 00009 */ 00010 00011 #ifndef INCLUDE_RSRC_TOOLS 00012 #define INCLUDE_RSRC_TOOLS 00013 00014 00015 #define TOOL_BUFFER 1024 /*!< taille du buffer utiliser pour le parsage */ 00016 #define TOOL_CONV 16 /*!< taille du buffer utiliser pour les conversions */ 00017 00018 #include <string.h> 00019 #include <malloc.h> 00020 #include <stdio.h> 00021 #include <stdlib.h> 00022 00023 00024 //! Retourne un mots d'une phrase. 00025 /*! Retourne le mots à la position \a Pos dans une phrase \a pData avec comme carracteres entre les mots \a pCar. \n 00026 Aucun bug connu, totalement hardcoder et stable. 00027 \param pData phrase à découpée 00028 \param iPos position dans la phrase \a pData du mots à retourner 00029 \param pCar carracteres qui serons reconu comme espace entre les mots (ex : " \n\0"). Sont supprimés dans le mots retourner. 00030 \return un pointeur sur le mots 00031 */ 00032 char *gettok(const char *pData, unsigned int iPos, const char *pCar); 00033 00034 //! Convertie un nombre en carracteres. 00035 /*! Convertie un nombre décimal signer en carracteres ASCII. 00036 \param iNbr nombre à convertir 00037 \return pointeur vers le nombre convertie 00038 */ 00039 char *ItoA(int iNbr); 00040 00041 //! Convertie une chaine de carracteres en un nombre. 00042 /*! Convertie une chaine de carracteres ASCII en un nombre décimal signer. 00043 \param pNbr pointeur sur la chaine à convertir 00044 \return le nombre en décimal 00045 */ 00046 int AtoI(const char *pNbr); 00047 00048 //! Convertie un nombre flotant en carracteres. 00049 /*! Convertie un nombre flotant signer en carracteres ASCII. 00050 \param fNbr nombre à convertir 00051 \return pointeur vers le nombre convertie 00052 */ 00053 char *FtoA(float fNbr); 00054 00055 //! Convertie une chaine de carracteres en un nombre flotant. 00056 /*! Convertie une chaine de carracteres ASCII en un nombre flotant signer. 00057 \param pNbr pointeur sur la chaine à convertir 00058 \return le nombre flotant 00059 */ 00060 float AtoF(const char *pNbr); 00061 00062 //! Vérifie si une chaine de carracteres est un nombre. 00063 /*! Vérifie si une chaine de carracteres ASCII est un nombre décimal non signer et entier. 00064 \param pBuf pointeur sur la chaine à tester 00065 \return 1 si OK sinon 0 00066 */ 00067 unsigned int IsUInt(const char *pBuf); 00068 00069 //! Vérifie si une chaine de carracteres est alphanumérique. 00070 /*! Vérifie si une chaine de carracteres ASCII est une uniquement alphanumérique. 00071 \param pBuf pointeur sur la chaine à tester 00072 \return 1 si OK sinon 0 00073 */ 00074 unsigned int IsAlphaNum(const char *pBuf); 00075 00076 //! Vérifie si un carractere est alphanumérique. 00077 /*! Vérifie si un carractere ASCII est une uniquement alphanumérique. 00078 \param cCar carratère à tester 00079 \return 1 si OK sinon 0 00080 */ 00081 unsigned int IsAlphaNumCar(char cCar); 00082 00083 //! Vérifie si un carractére se trouve dans une chaine. 00084 /*! Vérifie si le carractére \a cCar se trouve dans la chaine \a pBuf. 00085 \param cCar carractére a rechercher 00086 \param pBuf pointeur sur la chaine contenant les element a comparer 00087 \return 1 si OK sinon 0 00088 */ 00089 unsigned int IsIn(char cCar, const char *pBuf); 00090 00091 //! Remplace des carractéres se trouvant dans une chaine. 00092 /*! Remplace tous les carractéres \a cCar par le carractére \a cNew se trouve dans la chaine \a pBuf. 00093 \param cCar carractére a remplacer 00094 \param cNew carractére de remplacement 00095 \param pBuf pointeur sur la chaine contenant les element a remplacer 00096 \return nombre de carractéres remplacer 00097 */ 00098 unsigned int Replace(char cCar, char cNew, char *pBuf); 00099 00100 //! Recherche une chaine dans une chaine. 00101 /*! Recherche la chaine \a pFind dans la chaine \a pBuf. 00102 \param pFind pointeur sur la chaine à chercher 00103 \param pBuf pointeur sur la chaine contenant la chaine à comparer 00104 \return un pointeur sur la chaine trouvée 00105 */ 00106 char *Strstr(const char *pFind, const char *pBuf); 00107 00108 00109 #endif