Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.431 Beiträge
 
Delphi 7 Professional
 
#2

AW: UrlToFilename, brauche etwas Hilfe

  Alt 5. Mai 2018, 22:32
Sowas mach' ich eigentlich immer auf die einfache und blöde Art:

Zuerst aus http:// bzw. https:// einen Laufwerksbuchstaben machen, also z. B. c:\.
Danach alle / umdrehen zu \.
Anschließend funktionieren ExtractFilename, ChangeFileExt ... wie bei "normalen" Dateinamen.

Hat man 'ne Url mit Parametern, muss man vorher alles hinter dem ? wegwerfen.
Delphi-Quellcode:
Function UrlToFilename(Const sURL: String) : String;
var
  iPos: Integer;
begin
  iPos := Pos('?',sUrl);
  if iPos > 0 then sUrl := Copy(sUrl,1,iPos - 1);
  iPos := Pos('//',sUrl);
  if iPos > 0 then sUrl := 'c:' + Copy(sUrl,iPos + 1,Length(sUrl));
  sUrl := AnsiReplaceText(sUrl,'/','\');
  Result := ExtractFileName(sUrl);
end;

procedure Irgendwas;
begin
  // Hier sollte nun newreply.php ausgeben werden:
  ShowMessage(UrlToFilename('https://www.delphipraxis.net/newreply.php?do=postreply&t=196264'));
end;
Wenn man die Parameter auch noch auswerten muss, dann kann man z. B. aus ?, &, = und % jeweils 'nen \ machen, damit hat man dann eine "ellenlange" Pfadangabe.

Hier muss man dann ggfls. schauen, was im Einzelfall sinnvoll weiterzuverwenden ist.
  Mit Zitat antworten Zitat