Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi funktion die alles ausser die root url abschneidet (https://www.delphipraxis.net/110468-funktion-die-alles-ausser-die-root-url-abschneidet.html)

Matze 18. Mär 2008 15:03

Re: funktion die alles ausser die root url abschneidet
 
Mit viel Fantasie vielleicht. ;)

Delphi-Quellcode:
RootURL('http://www.matthias-hielscher.de/blalala/hsahs/basksas.jpg')
Code:
www.matthias-h

Die Muhkuh 18. Mär 2008 15:06

Re: funktion die alles ausser die root url abschneidet
 
Mist, jetzt seh ich es.

Ich hatte mein Beispiel nur mit http://www.google.com/bla versucht, da passt es mit den Längen gerade, dass man meint, es kommt das richtige heraus. :mrgreen:

Um PosEx kommt man nicht drum rum, höchstens man schneidet die ersten 8 Zeichen weg, aber Deine Lösung ist da die bessere.

mkinzler 18. Mär 2008 15:34

Re: funktion die alles ausser die root url abschneidet
 
Delphi-Quellcode:
function ExtractDomain( const URL: string):string;
    function CheckProtocoll: Integer;
    begin
         Result:= Pos( '://', URL)+4;
    end;
begin
    Result := Copy(URL, 1, PosEx('/', URL, CheckProtocoll));
end;

DeddyH 18. Mär 2008 15:36

Re: funktion die alles ausser die root url abschneidet
 
Und was macht Ihr bei ftp oder https? Da passt die 8 dann auch nicht mehr :mrgreen:

[edit] Ah, mkinzler hat auch daran gedacht. ;) [/edit]

mkinzler 18. Mär 2008 15:46

Re: funktion die alles ausser die root url abschneidet
 
Wenn man nur die Domäne ohne Protokoll haben will:

Delphi-Quellcode:
function ExtractDomain( const URL: string; StripProtocoll: Boolean):string;
 var
    start: Integer;
    prot: Integer;

    function CheckProtocoll: Integer;
    begin
         Result:= Pos( '://', URL)+4;
    end;
begin
    prot := CheckProtocoll;
    if StripProtocoll then
        start := prot-1
    else
        start := 1;

    Result := Copy(URL, start, PosEx('/', URL, prot));
end;

Christian Seehase 18. Mär 2008 16:24

Re: funktion die alles ausser die root url abschneidet
 
Moin Zusammen,

wobei es nicht ganz "ungefährlich" ist nach :// zu suchen.
Wenn man ganz auf Nummer sicher gehen will ist :/ besser geeignet, da die beiden // nur deshalb unmittelbar aufeinander folgen, weil das, was laut RFC (ich weiss die Nummer jetzt gerade nicht) dazwischen angegeben werden kann/muss, eigentlich nie angegeben wird (mir fällt jedenfalls nichts ein ;-))

marabu 18. Mär 2008 16:37

Re: funktion die alles ausser die root url abschneidet
 
Hallo,

die Suche nach dem net path introducer // finde ich nicht so schlimm, die Code-Beispiele funktionieren ja schon aus einfacheren Gründen nicht zuverlässig.

Der RFC 2396 hat insgesamt 40 Seiten. Selbst der einfache Fall "Extrahieren des Servers" (oder wird hier wirklich die Domain gewünscht?) verlangt schon etwas mehr Überlegung als ich hier erkennen kann.

Ich würde bei Hier im Forum suchenInternetCrackUrl und einer allgemeinen Lösung bleiben.

Freundliche Grüße

mkinzler 18. Mär 2008 16:43

Re: funktion die alles ausser die root url abschneidet
 
Es muss eigentlich gar kein / vorhanden sein, da dies protokollabhängig ist. Bei http://, ftp:// file:// sind sie Teil des Protokolls bei mailto:jemand@irgendwo.tld oder news:blabla.blubb.tld nicht.
http://www.faqs.org/rfcs/rfc1738
http://tools.ietf.org/html/rfc3986


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:34 Uhr.
Seite 2 von 2     12   

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