CLASSE STRING PERSONALISÉE POUR LES VB-ADDICTED :)

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 - 28 avril 2006 à 10:33
henrimaselati Messages postés 6 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 25 septembre 2007 - 21 déc. 2006 à 04:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37294-classe-string-personalisee-pour-les-vb-addicted

henrimaselati Messages postés 6 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 25 septembre 2007
21 déc. 2006 à 04:29
bravo, tres bien, je viens de VB et c est fonction me manqué beaucoup
magus54 Messages postés 41 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 29 avril 2006
29 avril 2006 à 17:33
Vui :)
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
28 avril 2006 à 19:43
Je suppose que c'est pour faciliter le passage du VB au C++.
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
28 avril 2006 à 19:12
J'ai ptet pas bien compris, mais c'est quoi l'intéret pas rapport au string du C++ ?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 avril 2006 à 11:23
idem, c'est toujours en interne:
cmp byte ptr[Result.Chaine], 0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
28 avril 2006 à 11:09
Ou aurait aussi pu mettre if(!(*(Result.Chaine))) => Encore plus rapide je pense.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 avril 2006 à 11:07
if(!strcmp(Result.Chaine, "")) => if(!Result.Chaine[0])
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
28 avril 2006 à 10:41
Très mauvais d'implémenter tes fonctions dans ton .h : par convention, on fait ça dans un fichier .cpp à part (StrIZI.cpp par exemple) qui inclue le header. Ca permet de mieux contrôler la compilation de ton code.

Autre chose, tu a oublié dans ton header les directives :

#ifndef __STRIZI_H__
#define __STRIZI_H__

//Le code

#endif

Ces directives sont TRES importantes : elles protègent des erreurs (ou warning selon les compilateurs) de "multiple symbol redefinition", et des fatal error d'inclusions infinies, comme par exemple :

//StrIZI.h
#include "fff.h"

//fff.h
#include "StrIZI.h"

On se retrouve dans une boucle infinie pour le compilateur --> Erreur de compilation.

Dans ta fonction Val, pourquoi n'utilise tu pas la fonction atoi si le système est égal à 10 ?

A la fin :
if (Result==StrNull)Result="0";
return Result;

Pourquoi créer une chaine rien que pour une comparaison ? Je te conseillerai de le remplacer par ça :

if(!strcmp(Result.Chaine, "")) Result = "0"
return Result;

Bon sinon, la classe m'a l'air simple d'utilisation, mais il aurait fallu rajouter une fonction du genre sprintf pour mettre des nombres et tout ça. Bon, ca vaut bien un 7 on va dire.
Rejoignez-nous