FAIRE UN SPLIT EN DELPHI

fabiin - 27 juil. 2001 à 13:03
Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009 - 9 mars 2009 à 15:54
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/11633-faire-un-split-en-delphi

Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009
9 mars 2009 à 15:54
Cette fonction ne marche que si le dernier caractère est le séparateur, voici une version modifiée, testée et approuvée par ma prof :p

function split(input:string;schar:char;s:integer):string;
var
i,n:integer;
schop: string;
begin
n := 1;
for i := 1 to length(input) do
begin
if (input[i] = schar) then
begin
if n = s then
split := schop
else
schop := '';
inc(n);
end
else
schop := schop + input[i];
end;
if n = s then
split := schop ;
end;
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
16 févr. 2008 à 22:55
Re,
excusez moi je viens de comprendre, s représente le split, et schar représente le caractère de split.
Merci, :)
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
16 févr. 2008 à 22:50
Bonjour,
Euh svp je suis un peu débutant, et à ce que j'ai compris, s représente le caractère de séparation, mais que représente "schar" ???
A bientôt...
cs_Peone Messages postés 16 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 12 mars 2006
9 févr. 2006 à 10:17
Ce code est bien mais il a un petit defaut. Moi pour le moment je travaille le latex en delphi et je dois analyser ceci "\begin{tabular}{c l r}"
il faudarait que je sorte de la chaine le c l r donc j'utilise cette fonction split avec { comme separateur ==> \begin , tabular} et normalement c l r} en troiseme position

et ben non, il me splite encore le c l r} en tenant compte des espaces

y aurait-il moyen de modifier cette fonction pour qu'il ne tienne pas compte des espaces?
fabiin Messages postés 329 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 8 décembre 2009 6
19 août 2004 à 00:09
Ce split là semble fonctionner parfaitement :
http://delphi.about.com/cs/adptips2002/a/bltip1102_5.htm
cs_SuperSonic Messages postés 2 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2002
18 déc. 2002 à 00:07
J'ai essayé de faire comme dans l'exemple, mais lorsqu'il n'y a pas de second | dans mon texte ( par exemple ) cela me retourne ce qu'il y a avant le |.
avar := split('Ceci est|un texte','|',2);
avar va ainsi valoir ''Ceci est" et non "un texte".
il faut peut etre initier n := 0; non ?????
très pratique ;)
Rejoignez-nous