Faire un split en delphi

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 690 fois - Téléchargée 34 fois

Contenu du snippet


Source / Exemple :


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
           inc(n);
           if n = s then
           split := schop
           else
           schop := '';
           end
         else
           schop := schop + input[i];
         end;
    end;

Conclusion :


Pour utiliser cette fonction, il suffit de l'utiliser comme avec VB...

avar := split('Ceci est un texte',' ',2);
avar va ainsi valoir 'est'

Encore un autre exemple
avar := split('Ceci est|un texte','|',2);
avar va ainsi valoir 'un texte'

A voir également

Ajouter un commentaire Commentaires
Messages postés
285
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
3 novembre 2009

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;
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Re,
excusez moi je viens de comprendre, s représente le split, et schar représente le caractère de split.
Merci, :)
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
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...
Messages postés
16
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
12 mars 2006

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?
Messages postés
329
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
8 décembre 2009
6
Ce split là semble fonctionner parfaitement :
http://delphi.about.com/cs/adptips2002/a/bltip1102_5.htm
Afficher les 8 commentaires

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.