AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi UrlToFilename, brauche etwas Hilfe
Thema durchsuchen
Ansicht
Themen-Optionen

UrlToFilename, brauche etwas Hilfe

Ein Thema von KodeZwerg · begonnen am 5. Mai 2018 · letzter Beitrag vom 6. Mai 2018
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#1

AW: UrlToFilename, brauche etwas Hilfe

  Alt 6. Mai 2018, 10:44
Hat man 'ne Url mit Parametern, muss man vorher alles hinter dem ? wegwerfen.
hinter erstem ? oder #

"%xx" durch Char($xx) ersetzen

Und für ExtractFileName, ExtractFilePath usw. muß das http:// nicht durch einen Laufwerksbuchstaben ersetzt werden.
Einige Funktionen kommen mit \ oder / zurecht, aber statt \ nimmt man besser Delphi-Referenz durchsuchenPathDelim. (so wie sLineBreak statt #13#10)

Diese Funktionien kommen auch mit UNC-Pfaden zurecht, also ihnen ist der Anfang quasi egal.



ABER, warum immer alles selber machen?
In den Indy und ähnlichen Komponenten verstecken sich irgendwo Funktionen, um eine URL/URI in seine Teile zu zerlegen.
https://de.wikipedia.org/wiki/URL-Encoding

mal bei Delphi-Referenz durchsuchenSystem.Net.URLClient.TURI oder in der Nähe von Delphi-Referenz durchsuchenSystem.Net.URLClient.TURLSchemes suchen (Delphis Neues/Eigenes)
oder im TIdURL (Indy), https://marc.durdin.net/2012/07/indy...code-and-more/
...
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 6. Mai 2018 um 11:10 Uhr)
  Mit Zitat antworten Zitat
Shadowwalker

Registriert seit: 23. Apr 2018
22 Beiträge
 
#2

AW: UrlToFilename, brauche etwas Hilfe

  Alt 6. Mai 2018, 11:57
Hat man 'ne Url mit Parametern, muss man vorher alles hinter dem ? wegwerfen.
hinter erstem ? oder #

Ich werfe mal folgendes URL-Formmat ins Rennen.
Code:
.de/index.php/?page=wasauchimmerfuereineseite?foo=bar
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: UrlToFilename, brauche etwas Hilfe

  Alt 6. Mai 2018, 12:51
Ja Danke nochmal, hab die Raute Zeichen bisher total ignoriert.
Hier nun mini Update zu meinem Code, auch auf ein "?" oder "#" direkt nach einem "/" reagiere ich nun.
Delphi-Quellcode:
  (* Get Parameter & Port *)
  tmp := sURL;
  NoParam := '';
  i := Pos('?', tmp);
  if i = 0 then i := Pos('#', tmp);
  if i > 0 then
  begin
   if sURL[i] = '?then if tmp[i-1] = '/then tmp := Copy(tmp, i, Length(tmp)) else tmp := Copy(tmp, Pos('?', tmp), Length(tmp))
    else
     if sURL[i] = '#then if tmp[i-1] = '/then tmp := Copy(tmp, i, Length(tmp)) else tmp := Copy(tmp, Pos('#', tmp), Length(tmp));
   if Pos(':',tmp) > 0 then Result.Parameter := Copy(tmp, 1, Pos(':',tmp)-1) else Result.Parameter := tmp;
   if Pos(':',tmp) > 0 then Result.Port := Copy(tmp, Pos(':', tmp)+1, Length(tmp));
   if sURL[i-1] = '/then NoParam := Copy(sURL, 1, i-2) else NoParam := Copy(sURL, 1, i-1);
  end
  else NoParam := tmp;
Das hier zeigt mir mein Programm mit Deiner Url an:
Code:
Original: .de/index.php/?page=wasauchimmerfuereineseite?foo=bar
Protocol:
Username:
Password:
Domain: .de
Sublevel: /
Filename: index.php
Parameter: ?page=wasauchimmerfuereineseite?foo=bar
Port:
Vielleicht lasse ich mir noch was einfallen das ich auch nach einem Punkt schaue so das der Sublevel zu "/" wird und Filename "index.php"

Updated, Dateiname funktioniert nun mit der Url.
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 6. Mai 2018 um 13:33 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.598 Beiträge
 
Delphi 7 Professional
 
#4

AW: UrlToFilename, brauche etwas Hilfe

  Alt 6. Mai 2018, 16:06
Ich werfe mal folgendes URL-Formmat ins Rennen.
Code:
.de/index.php/?page=wasauchimmerfuereineseite?foo=bar
Naja, da ist aber jetzt nicht unbedingt was gültiges.

Mit sowas könnte ich mich ja anfreunden:
Code:
.de/index.php/?page=wasauchimmerfuereineseite&foo=bar
? steht vor dem ersten Parameter, die weiteren werden durch & getrennt, also einmal ?Name=Wert und alle weiteren dann mit &Name=Wert.

Die Raute weist bei HTML-Seiten normalerweise darauf hin, dass man innerhalb dieser Seite zu einer Sprungmarke navigieren möchte.

Wer mal so richtig ins Eingemachte schauen will: RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax (sind nur 61 Seiten )
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz