Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Wie kann ich die Datei endung aus einer URL laden? (https://www.delphipraxis.net/80631-wie-kann-ich-die-datei-endung-aus-einer-url-laden.html)

maik1481 12. Nov 2006 19:03


Wie kann ich die Datei endung aus einer URL laden?
 
Hei,

Möchte ein tool Bauen wie FlashGet zum Downloaden alerdings bekomme ich das nicht hin mit dem Aufsplitten der URL
Habe es mal so Versucht.

Code:
var
  Form6: TForm6;
  tmpURL, Prot, User, Pass, Host, Dir,Port, File1, FileExt: String;
implementation

{$R *.dfm}


Function GetAndDelete(Delim: String): string;
begin
    Result := Copy(tmpURL, 1, Pos(Delim, tmpURL) - 1);
    Delete(tmpURL, 1, Pos(Delim, tmpURL) + Length(Delim) - 1);
    form6.Memo1.lines.Add(Result);
end;



procedure TForm6.Button1Click(Sender: TObject);
begin
  tmpURL := 'http://www.online.no/Download/Datei.txt';
  Prot := GetAndDelete('://');
  Host:= GetAndDelete(':');
  Port:= GetAndDelete('/');
  Dir:= GetAndDelete('/');
  File1:= GetAndDelete('.');
  FileExt:= GetAndDelete('');
end;
:wall: :wall: :wall: :wall:
leider Sagt er mir nicht die Endung an was mache ich Falsch? :gruebel:

PS: Sorry für das Deutsch aber bin Norweger

mkinzler 12. Nov 2006 19:05

Re: Wie kann ich die Datei endung aus einer URL laden?
 
Warum suchst du nicht einfach nach dem letzten . ?

maik1481 12. Nov 2006 19:07

Re: Wie kann ich die Datei endung aus einer URL laden?
 
ja wie macht man denn das?

mkinzler 12. Nov 2006 19:10

Re: Wie kann ich die Datei endung aus einer URL laden?
 
In einer Schleife PosEx aufrufen ( mit Offset gefundene Position + 1)

Balu der Bär 12. Nov 2006 19:11

Re: Wie kann ich die Datei endung aus einer URL laden?
 
Warum denn so umständlich?

Delphi-Quellcode:
test := ExtractFileExt('http://www.google.de/index.php')

maik1481 12. Nov 2006 19:13

Re: Wie kann ich die Datei endung aus einer URL laden?
 
ah Danke Probiere ich gleich mal aus.

Mvh
Maik

maik1481 12. Nov 2006 19:35

Re: Wie kann ich die Datei endung aus einer URL laden?
 
habe es so gemacht und es geht jetzt

Delphi-Quellcode:
procedure TForm6.Button1Click(Sender: TObject);
var ed : string;
begin
   ed:='ftp://127.0.0.1:21/C:\Download\Datei.txt';
   memo1.Lines.Add(ExtractFileName(ed));
end;
Mvh
Maik

Balu der Bär 12. Nov 2006 19:36

Re: Wie kann ich die Datei endung aus einer URL laden?
 
Ich denke du möchtest du Dateiendung bekommen? Warum dann ExtractFileName? :gruebel:

maik1481 12. Nov 2006 19:47

Re: Wie kann ich die Datei endung aus einer URL laden?
 
ja dann kann ich denn rest weg lassen.

Delphi-Quellcode:
var
  Form6: TForm6;
  tmpURL, Prot, User, Pass, Host, Dir,Port, File1, FileExt: String;
implementation

{$R *.dfm}


Function GetAndDelete(Delim: String): string;
var ed, url,url1,url2,url3,url4 : string;
begin
    ed:='ftp://127.0.0.1:21/C:\Download\Datei.txt';
    Result := Copy(tmpURL, 1, Pos(Delim, tmpURL) - 1);
    Delete(tmpURL, 1, Pos(Delim, tmpURL) + Length(Delim) - 1);
end;

maik1481 12. Nov 2006 19:49

Re: Wie kann ich die Datei endung aus einer URL laden?
 
Delphi-Quellcode:
var
  Form6: TForm6;
  tmpURL, Prot, User, Pass, Host, Dir,Port, File1, FileExt: String;
implementation

{$R *.dfm}


Function GetAndDelete(Delim: String): string;
begin
    Result := Copy(tmpURL, 1, Pos(Delim, tmpURL) - 1);
    Delete(tmpURL, 1, Pos(Delim, tmpURL) + Length(Delim) - 1);
    form6.Memo1.lines.Add(Result);
end;



procedure TForm6.Button1Click(Sender: TObject);
begin
  tmpURL := 'http://www.online.no/Download/Datei.txt';
  Prot := GetAndDelete('://');
  Host:= GetAndDelete(':');
  Port:= GetAndDelete('/');
  Dir:= GetAndDelete('/');
  File1:= GetAndDelete('.');
  FileExt:= GetAndDelete('');
end;

maik1481 12. Nov 2006 19:54

Re: Wie kann ich die Datei endung aus einer URL laden?
 
es scheint aber nicht mit Langen Url Daten zu gehen. :?

Wie zB: http://www.online.no/download/datei.txt

er giebt mir als Ergebnis

//www.online.no/download/

Mvh
Maik

maik1481 12. Nov 2006 20:24

Re: Wie kann ich die Datei endung aus einer URL laden?
 
habe denn Fehler gefunden

Code:
 
ed:='ftp://www.online.no/Download/Datei.txt';
memo1.Lines.Add(ExtractFileName(ed));
der Fehler ist so / aber der muß um zugehen \ so sein wie geht das? :gruebel: :?: :?:

Balu der Bär 12. Nov 2006 20:27

Re: Wie kann ich die Datei endung aus einer URL laden?
 
Mittels Delphi-Referenz durchsuchenStringReplace zum Beispiel.

Und Maik, du kannst deine Beiträge auch editieren um Sachen hinzuzufügen, Doppelposts sind nicht so gerne gesehen. ;)

mkinzler 12. Nov 2006 20:51

Re: Wie kann ich die Datei endung aus einer URL laden?
 
Zitat:

Und Maik, du kannst deine Beiträge auch editieren um Sachen hinzuzufügen, Doppelposts sind nicht so gerne gesehen. Wink
Backseat-Moderation aber auch nicht :mrgreen:

marabu 12. Nov 2006 20:52

Re: Wie kann ich die Datei endung aus einer URL laden?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Maik,

zum Zerlegen eines URL in seine Teile kannst du auch die WinInet API Funktion InternetCrackUrl() verwenden. Die Wandlung zwischen Url und Filename kannst du mit der Funktion SlashToBackSlash() aus der Indy FTP Server Demo erledigen:

Delphi-Quellcode:
function SlashToBackSlash( const str: string ) : string;
var
  a: dword;
begin
  result := str;
  for a := 1 to length( result ) do
    if result[a] = '/' then
      result[a] := '\';
end;
Ich hänge meine Funktion CrackUrl() mal unauffällig hier rein - wer nach InternetCrackUrl sucht, der wird sie schon finden. Benutzen kann man sie so:

Delphi-Quellcode:
uses
  WinInet;

function GetExtension(url: String): String;
var
  s: TStrings;
begin
  s := TStringList.Create;
  if CrackUrl(url, s)
    then Result := ExtractFileExt(SlashToBackslash(s.Values['urlpath']))
    else Result := '';
  s.Free;
end;
Grüße vom marabu

3_of_8 12. Nov 2006 21:13

Re: Wie kann ich die Datei endung aus einer URL laden?
 
Delphi-Quellcode:
copy(s, LastDelimiter('.', s)+1, length(s));
Das wäre auch noch eine Möglichkeit, die Dateiendung zu bekommen.

Will man den Namen der Datei, ginge sowas:
Delphi-Quellcode:
copy(s, LastDelimiter('/', s)+1, LastDelimiter('.', s)-LastDelimiter('/', s)-1);
(ungetestet)

maik1481 13. Nov 2006 13:19

Re: Wie kann ich die Datei endung aus einer URL laden?
 
Danke ich Versuch das mal.

Mvh
Maik


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz