ExtractDomain / ExtractFileNameOfDomain oder sowas?
-
gibt es sowas ähnliches?
ich möchte z.B. aushttp://www.c-plusplus.net/forum/posting-var-mode-is-newtopic-and-f-is-2.html
das (domain extrahieren)
und aus das
http://www.c-plusplus.net/forum/posting-var-mode-is-newtopic-and-f-is-2.html
das (dateiname der domain)
posting-var-mode-is-newtopic-and-f-is-2.html
gibt es so eine Borland funktion bereits? Falls nicht, wie löst man sowas am besten?
-
domain: vom anfang bis zum ersten einzelnen /
file: vom letzen einzelnen / bis endesiehe AnsiString-funktionen: SubString, LastDelimiter usw.
-
hallo sunday. das ganze dachte ich mir eigentlich genau so. jedoch klappt es mit der domain noch nicht ganz da ich es mit Pos versuche aber ja bereits beim http:// zwei doppel slashs vorkommen geht das wie folgt nicht:
String url = "http://www.c-plusplus.net/forum/posting-var-mode-is-reply-and-t-is-127069.html"; //datei Edit1->Text = url.SubString(url.LastDelimiter("/") + 1, url.Length() - url.LastDelimiter("/")); //domain Edit2->Text = url.SubString(1, url.Pos("/"));würde die domain nur mit www. oder gar ohne www. beginnen wäre es möglich. wie soll ich das besser lösen?
-
versuchs so:
// Domain extrahieren AnsiString ExtractDomain(AnsiString URL) { // http:// entfernen (wenn vorhanden) if (URL.Pos("//")) URL.Delete(1, URL.Pos("//") + 1); // dateiname entfernen (wenn vorhanden) if (URL.Pos("/")) return URL.SubString(1, URL.Pos("/") - 1); else return URL.SubString(1, URL.Length()); } // Dateiname extrahieren AnsiString ExtractDomainFileName(AnsiString URL) { return URL.SubString(URL.LastDelimiter("/") + 1, URL.Length()); }// verwendung
AnsiString url = "http://www.c-plusplus.net/forum/posting-var-mode-is-reply-and-t-is-127069.html"; AnsiString datei = ExtractDomainFileName(url); AnsiString domain = ExtractDomain(url);
-
danke aber eins versteh ich nun nicht.
URL.SubString(URL.LastDelimiter("/") + 1, URL.Length());
wieso reicht es wenn count URL.Length() ist? Ich dachte man müsste es subtrahieren da ja sonst count die totale länge ist, also von anfang an bis ende = count...?
-
das uebernimmt SubString fuer dich. es prüft ob count kleiner ist als die laenge des strings - index + 1. d.h. wenn du dort einen wert grösser als die eigentliche anzahl der zu kopierenden zeichen angibst, dann wird automatisch die korrekte laenge bestimmt.
p.s. das gilt natürlich nur, wenn du mit SubString von einer bestimmten anfangsposition bis zum letzten zeichen des strings, den teilstring ermitteln möchtest.
-
das amcht sinn danke! man lernt nie aus
