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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 673 fois - Téléchargée 34 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
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
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
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
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.