[Delphi] String Tokeniser, Explode?

String Tokeniser, Explode? [Delphi] - Delphi/Pascal - Programmation

Marsh Posté le 21-06-2002 à 09:47:24    

salut existe 'til une fonction ds Delphi qu permet de séparer une chaine en plusieurs?
 
comme Explode en PHP ou String Tokenizer en Java?

Reply

Marsh Posté le 21-06-2002 à 09:47:24   

Reply

Marsh Posté le 21-06-2002 à 09:54:22    

ExtractStrings mais c'est chiant parce qu'il prend les séparateurs comme espaces si les éléments sont pas entre guillements.
Enfin faut lire l'aide...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 09-08-2002 à 15:17:58    

:bounce:

AGA a écrit a écrit :

salut existe 'til une fonction ds Delphi qu permet de séparer une chaine en plusieurs?
 
comme Explode en PHP ou String Tokenizer en Java?  




 
Debutant en Delphi, j'ai trouvé sur un site ces 2 fonctions:
Explode et Implode
//----------------------------------------------------------
function Explode(ch : string;sep: string = ';';):TStringList;
var
p : integer;
begin
p := pos(sep,ch);
explode := TStringList.Create;
while p > 0 do begin
    explode.Add(copy(ch,1,p-1));
    if p <= length(ch) then ch := copy(ch,p+ length(sep),length(ch));
    p := pos(sep,ch);
end;
if length(ch)>0 then explode.Add(ch);
end;
//------------------------------
function Implode(lst:TStringList;sep : string =';';):string;
var
    i : integer;
    s : string;
begin
i:= 0;
while i < lst.Count - 1 do begin
     s := s + lst[i] + sep;
     i := i + 1;
end;
if i < lst.Count then s := s + lst[i]; //Ne mets pas de séparateur sur le dernier élément
result := s;
end;
 
 
Bonne prog
A+

Reply

Marsh Posté le 09-08-2002 à 15:49:42    

Si il a attendu la réponse, le mec il est patient  :lol:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 09-08-2002 à 15:57:43    

Zion a écrit a écrit :

Si il a attendu la réponse, le mec il est patient  :lol:  




 
La raison est que je viens de découvrir ce forum, il ya moins d'une heure

Reply

Marsh Posté le 09-08-2002 à 16:18:01    

JackyG a écrit a écrit :

 
 
La raison est que je viens de découvrir ce forum, il ya moins d'une heure
 




 
Benh tu as répondu a un topic du 21 juin, c'est bien louable de répondre, mais la c'est surement trop tard  :D  
 
Au fait, rien de tel qu'un TStringList avec le CommaText, ou le DelimitedText  ;)


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 10-08-2002 à 14:46:45    

Zion a écrit a écrit :

 
 
Benh tu as répondu a un topic du 21 juin, c'est bien louable de répondre, mais la c'est surement trop tard  :D  
 
Au fait, rien de tel qu'un TStringList avec le CommaText, ou le DelimitedText  ;)  




sur un autre forum, j'avais posté une question début septembre, je viens de reçevoir la réponse par courriel....
j'ai fini le cours en janvier...
c'est quand même drôle


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 05-12-2002 à 13:13:51    

:jap:  ;)

Reply

Marsh Posté le 06-12-2002 à 03:13:21    

Quoi, t'en avais encore besoin?
 
[:rofl]


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 08-12-2002 à 15:42:37    

non :D

Reply

Marsh Posté le 08-12-2002 à 15:42:37   

Reply

Marsh Posté le 15-02-2005 à 17:31:30    

toc toc, cest moi (3 ans apres :D)
les fct explode et implode m'interressent mais c'est plein d'erreur :(
et je debute en delphi :(
 
help

Reply

Marsh Posté le 15-02-2005 à 20:05:36    

on suppose que la variable s contient la chaîne à couper et que l'on veut couper sur des tirets :

Code :
  1. L := TStringList.Create;
  2. try
  3.   L.Delimiter := '-';
  4.   L.QuoteChar := #0;
  5.   L.DelimitedText := s;
  6.   // ici tu utilises les éléments de la liste, puis on a détruit à la fin :
  7. finally
  8.   L.Free;
  9. end;


Message édité par antp le 15-02-2005 à 20:06:32

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 11-03-2006 à 08:03:45    

up :bounce:
j'arrive pas a faire marcher le bouzin si le delimiter contient plus d'un caractere :/
 

Reply

Marsh Posté le 11-03-2006 à 08:19:28    

pour préciser un peu plus, je travaille avec les donnees de packet TCP correspondant a du traffic http, donc en gros j'ai des trucs de la forme  
 
xxxxxxxx'#$D#$A'xxxxxxxxxxxxxxxxx'#$D#$A'xxxxxxxxxxxxxxxxx
 
edit: ce qui est byzarre, c'est que si j'affiche la chaine dans un showmessage, les retours a la ligne sont geres :/


Message édité par trueslash le 11-03-2006 à 08:41:06
Reply

Marsh Posté le 11-03-2006 à 23:23:48    

le $D$A correspond au retour a la ligne :o
 

Reply

Marsh Posté le 12-03-2006 à 08:54:54    

ouais, j'ai reussi a faire un truc qui marche mais pas tres propre, en fait, ce sont surtout les quotes qui m'intriguent  
 
si j'ai le temps + tard, je referrais un truc plus propre

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed