FONCTION SPLIT

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 30 janv. 2008 à 01:48
Balthus14 Messages postés 1 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 24 décembre 2010 - 24 déc. 2010 à 12:10
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/45551-fonction-split

Balthus14 Messages postés 1 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 24 décembre 2010
24 déc. 2010 à 12:10
Vieux post mais si cela peut aider !

voilà ma solution pour éviter la prise en considération du caractère espace par fonction "TSrings.DelimitedText"

Procedure ScinderPerso(S: string; const Delimiteur: char;Strings : TStrings);
begin
if assigned(Strings) then
begin
while Pos(DElimiteur,S)<>0 do
begin
Strings.add(copy(S,1,pred(Pos(Delimiteur,S))));
delete(S,1,Pos(Delimiteur,S));
end;
if S<>'' then Strings.add(S);
end;
end;
crackspider7676 Messages postés 9 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 28 février 2008
11 févr. 2008 à 10:49
Oui, c'est vrai mais dans mon cas, cela m'arrangeait étant donné que la chaine à splitter contient toujours 10 champs.
FENETRES Messages postés 196 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 14 avril 2009
11 févr. 2008 à 10:33
Déclarer la longueur du tableau limite sérieusement l'intérêt de cette source. Il fallait passer un tableau dynamique en paramètre (type formel).
nethacker Messages postés 288 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 12 octobre 2011
1 févr. 2008 à 21:14
Y'a aussi les fonctions Rexx !
crackspider7676 Messages postés 9 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 28 février 2008
30 janv. 2008 à 01:55
j'avais trouver un code utilisant le type TStringList sur http://delphi.about.com/cs/adptips2002/a/bltip1102_5.htm et dans certains cas j'étais confronté à une erreur.
PS: au bout de 200 split, il y avait parfois un décallage => Bizarre.
Merci quand même!
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
30 janv. 2008 à 01:54
ou en fonction, toujours avec la classe TStrings / TStringList

function Split(const S: string; const Delimiter: char; Strings: TStrings);
begin
if assigned(Strings) then
begin
Strings.Delimiter := Delimiter;
Strings.DelimitedText := S;
end;
end;
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
30 janv. 2008 à 01:48
var TSL : TStringList;
begin
TSL := TStringList.Create;
try
TSL.Delimiter := ';';
TSL.DelimitedText := 'test1;;test3;test4;test5;test6;test7;;test9;';

ListBox1.Items.Assign(TSL); // assignation vers une liste par exemple

finally
TSL.Free;
end;
end;
Rejoignez-nous