Soyez le premier à donner votre avis sur cette source.
Vue 8 034 fois - Téléchargée 153 fois
//Permet de definir sur quelle CString on veut travailler void SetCStringVar(CString * pstrString); //Retourne un CString avec la valeur numerique du param //Le nbr de points apres la virgule est configurable //Fct statique car elle n'utilisent pas le ptr membre m_pstrString static CString ConvertToString(int iNum); static CString ConvertToString(float fNum, int nbCAV = 0); //Retourne un CString Image du tableau en param static CString ConvertToString(BYTE * pTabByte, int iTabSize); static CString ConvertToString(char * pTabChar, int iCharSize); //Retourne un char * de la chaine en cour char * ConvertToChar(); //Retourne un champ de bits correspondant a la chaine en cour BYTE * ConvertToByteList(); //Retourne les caracs entre les indexs start et stop de la chaine en cour CString ExtractByIndex(int iStart, int iStop); //Cherche dans la chaine en cour la chaine en param, //Retourne un tableau d'entier contenant l'index du 1er carac de //chaque occurence de la chaine en param; std::vector<int> FindChainePos(CString strChaine); //Cherche dans la chaine en cour toutes les valeurs entre deux //occurence de strSeparateur, retourne un tableau des chaine trouver //le tableau est vide si rien n'a été trouvé std::vector<CString> ExtractInChaine(CString strSeparateur); //Extrait une ou plusieurs chaines entre 2 balises dans la chaine en cour //Retourne un tableau de CString si il y a plusieurs couple de balises //chaque case du tableau contient la chaine entre les balises std::vector<CString> ExtractBetweenTag(CString strOpenTag, CString strCloseTag); //Cherche dans la chaine en cour tous les chiffres (réél ou entier) //compris dans les bornes en params //Retourne un tableau de float remplit avec tous les chiffres trouvés std::vector<float> ExtractNumber(float fMinVal = -99999999, float fMaxVal = 99999999); //Réécriture des fct standard mais ou on peut directement //utiliser des types float ou int sans convertions void SetIntAt(int iIndex, int iVal); void SetFloatAt(int iIndex, float fVal, int nbCAV = 1);
Quelques remarques sur le nommage de tes methodes:
- ExtractInChaine: Soit tu prends des noms en Francais, soit en Anglais, mais melanger les deux, ce n'est pas tres pratique
- ConvertToChar: Ca convertie en char*, pas en char... Tu devrais trouver un autre nom, encore que comme dit Lucky92, ce n'est pas la fonction la plus utile.
Vu le titre du post, je m'attendais a des conversions vraiment utiles, comme les bstr ou autres unicode et trucs bizares.
Enfin, l'avantage de ce genre de classes, c'est que tu peux toujours rajouter de nouvelles fonctionnalitees :o)
Eric
J'ai quelques remarques :
- tu DOIS te débarrasser de tes memory leaks ! Il y a deux voies : soit le client est en charge de l'allocation et de la désallocation, soit c'est ta classe qui s'en charge.
- la classe CString (MFC) définit l'opérateur de conversion en LPCSTR (alias const char*), ce qui me fait penser que ta méthode ConvertToChar() est un peu lourde, voire inutile.
- je ne connais pas le contexte de ton travail, mais la conversion en BYTE (unsigned char) me semble moins intéressante qu'une compatibilité avec l'unicode (wchar_t).
- je pense que tu gagnerais en portabilité si tu utilisais les classes std::string, std::ostringstream et std::istringstream.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.