Split - Delimiter Espace par défaut ? [Résolu]

Signaler
Messages postés
9
Date d'inscription
vendredi 26 février 2010
Statut
Membre
Dernière intervention
1 mars 2011
-
Dpx26000
Messages postés
9
Date d'inscription
vendredi 26 février 2010
Statut
Membre
Dernière intervention
1 mars 2011
-
Bonjour à tous,

Tout d'abord, et comme toujours je m'excuse d'avance si j'ai raté un sujet qui aurait pu m'éviter de créer celui-ci par la fonction recherche, car ça m'arrive quelques fois !

Mon problème est tout simple, je souhaite spliter une chaine de caractère. Jusque là ça va, mais voilà, le delimiter est un '+' mais ma chaine peut etre par exemple '3 chevaux+4 souris'

Voici ma procédure :

Procedure Split(Delimiter: Char; Str: string; ListOfStrings: TStrings) ;

begin
ListOfStrings.Clear;
ListOfStrings.Delimiter := Delimiter;
ListOfStrings.DelimitedText := Str;
end;


Voici ce que me retournerait la procédure :

nomsProd := TStringList.Create;
Split('+', tab_commande.Cells[2,i], nomsProd);

//nomsProd[0] : 3
//nomsProd[0] : chevaux
//nomsProd[0] : 4
//nomsProd[0] : souris


Même si je spéficie le delimiter comme étant un plus, il considère aussi que l'espace en est un. J'ai vu quelques messages qui parlait d'un StrictDelimiter mais j'utilise Delphi 7 et je ne connais pas une telle propriété.
Le problème n'est pas difficile donc j'aurais peut-être trouvé la solution d'ici là, mais je passe par vous car je sais que la qualité des réponses est exemplaire !

Un grand merci d'avance pour vos réponses,
Cordialement,

Aurel.
A voir également:

2 réponses

Messages postés
251
Date d'inscription
dimanche 7 décembre 2003
Statut
Membre
Dernière intervention
11 novembre 2016

Bonjour

vous pouvez faire ceci
ListOfStrings.DelimitedText := '"' + stringreplace (Str ,Delimiter,'"' + Delimiter+'"',[rfReplaceAll])+'"'; 

A+
Messages postés
9
Date d'inscription
vendredi 26 février 2010
Statut
Membre
Dernière intervention
1 mars 2011

Merci grandement, tout fonctionne correctement !!
A très vite sur Codes sources !!

Cordialement,
Aurel.