Parser pour mettre les mots d'une variable string dans une tstringlist

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 173 fois - Téléchargée 32 fois

Contenu du snippet

Voici mon tout premier code sur le réseau CodeS-SourceS.
Cette fonction a pour but de mettre les mots d'une variable string dans une variable TStringList.
ExUtilisation :
ListBox.Items:=Parser('je teste ma fonction parser');

Source / Exemple :


function Parser(chaine:string):TStringList;
var i,z,z1,items:integer;buf:string;
o:TStringList;
begin
 items:=0;
 o:=TStringList.Create;
  for z1:=1 to length(chaine) do begin
   if Copy(chaine,z1,1)=' ' then inc(items);
  end;
 inc(items);
  for i:=1 to items do begin
   if i=items then o.Add(chaine);
   z:=pos(' ',chaine);
   buf:=Copy(chaine,1,z-1);
   chaine:=Copy(chaine,pos(' ',chaine)+1,length(chaine));
   o.Add(buf);
  end;
 o.Delete(o.Count-1);
 Result:=o;
end;

Conclusion :


Si vous trouvez des disfonctionnements , n'hesitez pas à me contacter : divxpack@hotmail.com

A voir également

Ajouter un commentaire

Commentaires

japee
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
3
Ouais, beaucoup plus simple...

Mais dans un cas comme dans l'autre, où libère-t'on les StringList créées à chaque appel de la méthode, hein ???

Je suggère donc :

procedure SplitString(const S: string; const Strings: TStrings);
begin
Strings.CommaText := S;
end;

qu'on appelle par exemple comme ça :

SplitString('ma chaîne à découper', ListBox1.Items);

Mais ne devient-il pas plus simple de faire directement :

ListBox1.Items.CommaText := 'ma chaîne à découper'; // lol
elguevel
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
LoL c'est clair qu'il y avait plus simple :D

Sinon, pitié, faite un effort sur les noms de variables :

i, z, z1, items : integer;
buf : string;
o : TStringList;

:-s

Damien
dvarrel
Messages postés
13
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
7 octobre 2007

y'a plus simple

function Parser(chaine:string):TStringList;
var o:TStringList;
begin
o:=TStringList.Create;
o.CommaText:=chaine; //c'est tout con !
result:=o;
end;

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.