Teilstring aus AnsiString auslesen
-
Hallo zusammen,
Ich habe ein Problem ein bestimmten Teilstring aus AnsiString auszulesen.
So sollte es sein:AnsiString dir = "C:\Programme\Nero\temp"
AnsiString current_dir = "temp"AnsiString dir = "E:\Texte\edv\test\Neuer 0rdner"
AnsiString current_dir = "Neuer 0rdner"AnsiString dir = "C:\WINDOWS"
AnsiString current_dir = "WINDOWS"Ich weiß leider nicht wie ich es schaffe den aktuelle Ordner, auf den der Pfad verweist, auszulesen. Also immer den letzten Ordner auszulesen.
Ich habe es mit dir.substring() versucht in Kombination mit dir.Pos("/").
Aber das funktioniert nicht weil es mehrere "/" im Pfad geben kann.Vieleicht kann mir hier jemand helfen.
-
Guck mal bei ExtractFileName().
Gruß,
Christian
-
Super danke. Das macht die Sache um einiges einfacher.
-
Wollte mal wissen, wieso ExtractFileName() die Sache einfacher macht. Du hast doch keine Dateien?! Oder stehe ich gerade auf dem Schlauch?
Hatte sowas schonmal geschrieben. Ist nicht die eleganteste Lösung, aber es funktioniert. Hier aus dem Zusammenhang gerissen:
AnsiString Pfad = MainWindow->Bilder1->Label1->Caption; // String umkehren AnsiString Pfadtemp = ""; for(int x = Pfad.Length() - 1; x > 0; x--) Pfadtemp = Pfadtemp + Pfad[x]; int x = Pfadtemp.Pos("\\"); Pfadtemp.Delete(1, x - 1); Pfad = ""; // wieder umkehren for(int x = Pfadtemp.Length(); x > 0; x--) Pfad = Pfad + Pfadtemp[x];
-
Rostfrei[] schrieb:
Wollte mal wissen, wieso ExtractFileName() die Sache einfacher macht.
Weil es sich nicht darum kümmert, ob du einen Datei- oder einen Verzeichnispfad (oder irgendwelchen Unsinn) übergibst. Es liefert einfach den Rest des Strings nach dem letzten Pfad-Separator.
PS. Fürs Selberbauen ist AnsiString::LastDelimiter vielleicht doch eleganter als das Hin- und Herdrehen.

-
OhHa - Dies sollte den Bildungshöhepunkt des Tages darstellen - Da muss man erstmal drauf kommen!
Vielen Dank für den Hinweis.