Classe string personalisée pour les vb-addicted :)

Soyez le premier à donner votre avis sur cette source.

Vue 5 761 fois - Téléchargée 257 fois

Description

La classe reprend les fonctions de vb, les opérateurs + ==, la fonction Mid,left,right, val, str$; je les remet toutes ici.

Source / Exemple :


// Exemple d'emplois
  StrIZI MaChaine1="[---ABC[";
  StrIZI MaChaine2="]ZYX---]";
  StrIZI Fusion;
  StrIZI Sel;
  StrIZI Debu;
  StrIZI Fin;
  StrIZI VarA="AbCD";
  StrIZI VarB="AbCD";
  StrIZI Chifr="1230";
  StrIZI Chifr2="FF";
  if(VarA==VarB)printf("A et B sont identiques !\n");
  Fusion=MaChaine1+MaChaine2;
  Sel=Fusion.Mid(5,4);
  Debu=Fusion.Left(5);
  Fin=Fusion.Right(5);
  cout<<VarA.Len()<<"\n";
  printf(Fusion.Str());
  cout<<Chifr.Val();
  cout<<Chifr2.Val(16);
  StrIZI Chifreee; 
  Chifreee=StrN(562);
// ..

Conclusion :


Truc à faire: faire un Mid en mode écriture comme en vb pour remplacer le milieux d'une chaine.
Je fais ça dans la prochaine version. Fonction
Ucase(StrIZI a, départ=0, fin=Longueur), Lcase véront le jour.

J'inclurais moultes fonctions issues du php notamment
Addcslashes, explode,implode...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
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.
BruNews Messages postés 21041 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 à 11:09
Ou aurait aussi pu mettre if(!(*(Result.Chaine))) => Encore plus rapide je pense.
BruNews Messages postés 21041 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
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++ ?

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.