Bonjour,
J'aimerai savoir s'il existe une méthode pour extraire le nom d'un fichier avec son extention à partir d'une URL complète (Lien internet).
J'ai essayé, par désespoir, la méthode ExtractFileName avec une URL mais cela ne fonctionne pas.
Version imprimable
Bonjour,
J'aimerai savoir s'il existe une méthode pour extraire le nom d'un fichier avec son extention à partir d'une URL complète (Lien internet).
J'ai essayé, par désespoir, la méthode ExtractFileName avec une URL mais cela ne fonctionne pas.
Bonjour,
Peux-tu nous en dire plus ce que tu souhaites faire?
Tu veux lire l'URL de ton Browser par ton application et récupérer le fichier ainsi que l'extention désiré ou tu fais un copier / coller d'une URL dans ton application, puis, en cliquant sur un bouton (par exemple), tu récupères ce que tu souhaites?
@ + ;)
:recherch: svp
En fait je veux une fonction qui prenne comme paramètre une URL du type "http://www.truc.com/machin/image.gif" et qui renvoie comme résultat le nom du fichié visé, dans mon exemple "image.gif".
Re,
Ce qui serait bien, c'est de lire la chaîne URL à l'envers et dès qu'il rencontre un "/" , tu stockes cette chaîne de caractères dans une variable.
Ensuite, tu fais la recherches tu "." dans cette chaine et tu récupères la partie de droite ainsi que la partie de gauche sans soucis.
Juste une petite difficulté, ca serait de lire la chaîne URL à l'envers!
J'ai codé un truc vite fait!
Je sais pas si c'est celà que tu souhaites faire, mais bon, chez moi cela fonctionne.
J'ai un TEdit dans lequel je mets mon URL.
J'ai un bouton qui me récupère mon Fichier et mon Extension dans 2 variables séparées ;)
Voici le code (qui est encore à améliorer bien sur ...) :
J'espère que cela t'aidera ;)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 procedure TForm1.Button1Click(Sender: TObject); var i:integer; PositionDernierSlash:integer; FichierAvecExtension,FichierSansExtension,Extension,NomFichier:string; ExtensionTrouve:Boolean; begin ExtensionTrouve:=false; PositionDernierSlash:=0; for i:=1 to Length(Edit1.Text) do begin FichierAvecExtension:=copy(Edit1.Text,i,1); if FichierAvecExtension='/' then PositionDernierSlash:=i; end; FichierAvecExtension:=copy(Edit1.Text,PositionDernierSlash+1,Length(Edit1.Text)); for i:=1 to Length(FichierAvecExtension) do begin NomFichier:=copy(FichierAvecExtension,i,1); if NomFichier='.' then begin Extension:=copy(FichierAvecExtension,i+1,Length(FichierAvecExtension)); ExtensionTrouve:=true; end else begin if (ExtensionTrouve=false) then FichierSansExtension:=FichierSansExtension+NomFichier; end; end; ShowMessage(FichierSansExtension); ShowMessage(Extension); end;
Salut,
Ces deux petites lignes devraient suffirent:
@+Code:
1
2
3
4
5
6
7
8
9
10 procedure TForm1.Button1Click(Sender: TObject); const myURL = 'http://www.truc.com/machin/image.gif'; var i: Integer; begin i := LastDelimiter('/:', myURL); ShowMessage(Copy(myURL, i + 1, MaxInt)); // renvoie 'image.gif' end;
Et moi qui me suis décarcassé ! 8O
Je ne connaissais pas LastDelimiter!
En tout cas, c'est vraiment simple d'utilisation!
Il ne reste plus qu'à appliquer la seconde partie de mon code pour séparer le nom du fichier de l'extension ... enfin, si Claudius40 ne me sors pas un truc en 2 lignes une fois de plus :mrgreen:
J'aurai au moins appris quelque chose 8-)
Merci, c'est exactement ce que je voulais!
Ce qui me donne:
Code:
1
2
3
4
5 function ExtractFileNameInURL(const cs_URL: String): String; begin Result:= Copy(cs_URL, LastDelimiter('\/:', cs_URL) + 1, Length(cs_URL)) end;