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;
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".
Ce split là semble fonctionner parfaitement :http://delphi.about.com/cs/adptips2002/a/bltip1102_5.htm
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 positionet ben non, il me splite encore le c l r} en tenant compte des espacesy aurait-il moyen de modifier cette fonction pour qu'il ne tienne pas compte des espaces?
La fonction Split de VB "renvoie un tableau de base zéro à une dimension contenant le nombre spécifié de sous-chaînes."Et sans vouloir contrarier FABIIN, il n'est pas nécessaire d'instancier un TStringList pour obtenir ce résultat !http://www.delphifr.com/codes/DELPHI-PROCEDURE-SPLIT-SIMILAIRE-FONCTION-EPONYME-VB_45704.aspx
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...
Re,excusez moi je viens de comprendre, s représente le split, et schar représente le caractère de split.Merci, :)
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 :pfunction 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;
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte