Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1614 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Decouper une chaine String

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Decouper une chaine String

n°1269936
jol30
Fils caché de Chuck Norris
Posté le 19-12-2005 à 14:36:39  profilanswer
 

Salut a tous  :hello:  
 
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
mood
Publicité
Posté le 19-12-2005 à 14:36:39  profilanswer
 

n°1270254
itela
Posté le 19-12-2005 à 20:49:23  profilanswer
 

salut,
 
il faut utiliser les fonctions POS (pour rechercher les positions des '/' dans la chaine) et COPY (pour extraire les différentes parties).
 
a+

n°1270337
red factio​n
Posté le 19-12-2005 à 22:34:29  profilanswer
 

reg exp c bien aussi :o

n°1270338
jol30
Fils caché de Chuck Norris
Posté le 19-12-2005 à 22:38:23  profilanswer
 

red faction a écrit :

reg exp c bien aussi :o


 
On peut avec Delphi?

n°1270364
KangOl
Profil : pointeur
Posté le 19-12-2005 à 23:22:07  profilanswer
 

bha avec les bon packages, oui


---------------
Nos estans firs di nosse pitite patreye...
n°1271564
copper_fr
Posté le 21-12-2005 à 22:01:14  profilanswer
 

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;


Message édité par copper_fr le 21-12-2005 à 22:02:31
n°1625985
jpcoutain
Posté le 17-10-2007 à 22:02:45  profilanswer
 

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;
 

n°1677396
ouniss
Posté le 27-01-2008 à 12:29:47  profilanswer
 

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.

n°1678339
windob
Posté le 29-01-2008 à 10:39:44  profilanswer
 

ouniss a écrit :

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.


 
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 !)
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Decouper une chaine String

 

Sujets relatifs
[XSchema] restrictions sur type stringconvertir un nombre en chaine de caracteres
[RESOLU][SED] Modifier une chaine avec un caractère mystèreAlgo chaine
Convertir une chaine de caractère en caractère simple?interpreter une chaine à la volée ?
Extraction d'une suite de chiffres variables d'un chaine variable[Oracle] Teste chaine de caractere
[c] String[Pascal] Chaine de caractere (string)
Plus de sujets relatifs à : Decouper une chaine String


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR