Decouper une chaine String - Delphi/Pascal - Programmation
Marsh Posté le 19-12-2005 à 20:49:23
salut,
il faut utiliser les fonctions POS (pour rechercher les positions des '/' dans la chaine) et COPY (pour extraire les différentes parties).
a+
Marsh Posté le 19-12-2005 à 22:38:23
ReplyMarsh Posté le 19-12-2005 à 23:22:07
bha avec les bon packages, oui
Marsh Posté le 21-12-2005 à 22:01:14
Sinon on peut utiliser les StringList :
var
SL: TStringList;
...
SL := TStringList.Create;
SL.Text := StringReplace('http://serveur1.domaine.com/dossier1/fichier1.exe', '/', #13#10, [rfReplaceAll]);
Ensuite :
SL[0] : Contient 'http'
SL[1] : Contient ''
SL[2] : Contient 'serveur1.domaine.com'
SL[3] : Contient 'dossier1'
SL[4] : Contient 'Fichier1.exe'
...
SL.Free;
Marsh Posté le 17-10-2007 à 22:02:45
Merci, copper_fr, le truc va bien me servir !
En creusant un peu, on peut faire encore plus simple avec la propriété DelimitedText (Delphi 2006, je ne sais pas si elle existe sur les versions + anciennes) :
var
SL: TStringList;
...
SL := TStringList.Create;
SL.Delimiter := '/';
SL.DelimitedText := 'http://serveur1.domaine.com/dossier1/fichier1.exe';
-> Même résultat
Avec ce truc, on peut splitter n'importe quoi selon n'importe quel délimiteur.
Si la chaîne à splitter contient des CrLf, on peut les conserver en insérant cette ligne :
SL.StrictDelimiter := True;
Marsh Posté le 27-01-2008 à 12:29:47
program ouniss;
uses wincrt;
var
ch,h:string;
pos,l:integer;
procedure saisir(var pos :integer; var l:integer;var ch:string);
begin
writeln('donner la chaine CH =');
read(ch);
writeln('donner le position de coupure POS =');
read(pos);
writeln('donner le nombre de caractere on doit coupe L =');
read(l);
end;
procedure coupe ( var ch :string; pos,l:integer);
begin
delete(ch,pos,l);
end;
procedure affiche (var ch:string );
begin
writeln('la chaine devient comme ca =',ch);
end;
BEGIN
saisir(pos,l,ch);
coupe(ch,pos,l);
affiche(ch);
END.
Marsh Posté le 29-01-2008 à 10:39:44
ouniss a écrit : program ouniss; |
Faudrait lire le sujet, c'est pas vraiment ça qui est recherché !
Par contre, juste une petite remarque, ça fait plusieurs fois que je te vois poster tes codes sur le forum et je dois te dire qu'ils sont particulierement illisibles !
Un code n'est pas seulement fait pour fonctionner, il doit etre également comprehensible par un autre programmeur et donc tu ferais bien de faire quelques efforts d'indentation et de présentation. Surout quand c'est des codes d'aide sur des forums et que les gens vont surement devoir le modifier pour que ça colle a leurs besoins.
(Moi je dis ça pour toi, hein !)
Marsh Posté le 19-12-2005 à 14:36:39
Salut a tous
J' ai un piti pb:
L' utilistateur de mon logiciel entre une url: http://serveur1.domaine.com/dossier1/fichier1.exe
J' aimerait obtenir:
Protocol = http://
Serveur = serveur1.domaine.com
Dossier = dossier1
Fichier = Fichier1.exe
Comment m' y prendre?
Meci beaucoup
Message édité par jol30 le 19-12-2005 à 17:27:53