string zuschneiden
-
hallo miteinader
ich hab ein problem. ich möchte einen string zuscheiden, welcher folgendermassen aussieht:
string x = "C:\xwr\database\location_access.mdb";und nun möchte ich am schluss in einer variable nur "location_access.mdb" stehen haben.
weiss jemand wie man das machen könnte?vielen dank und ein schönes wochenende

gruss peter.
-
Verwende statt string String oder AnsiString, dann kannst Du ExtractFileName()verwenden.
-
ok, vielen dank

was ist genau der unterschied von string und String?
-
String = AnsiString, string = CString (Erweitertes char* mit Zusatzfunktionen). AnsiString selbst ist zwar auch nur ein Nachfolger von string, enthällt aber noch mehr Funktionen und ist einfacher zu handhaben... und ExtractFileName() arbeitet nur mit AnsiString... man kann aber auch das hier machen:
string x="C:\\bla\\datei.endung"; AnsiString y=ExtractFileName(String(x.c_str()));Also Umwandeln in char* und das kann man dann mit String() oder AnsiString() in AnsiString konvertieren. Aber ratsam ist echt gleich mit AnsiString zu arbeiten.
-
string ist der Standard C++-String, AnsiString (String) ist der Pascal-String (Delphi) aus der VCL.
Ein string ist mehr oder weniger nur ein vector. AnsiString ist eine recht mächtige Klasse, mit einer Menge nützlicher Funktionen. Schau es Dir mal in Ruhe an.EDIT: Wieder mal zu langsam getippt...

-
Windoof schrieb:
AnsiString selbst ist zwar auch nur ein Nachfolger von string
Meines Wissens ist das falsch. AnsiString ist die Kapselung der Pascal- bzw. Delphi-String-Repräsentation.
Windoof schrieb:
Aber ratsam ist echt gleich mit AnsiString zu arbeiten.
Kommt wohl schwer darauf an. Wenn man auf maximale C++-Konformität Wert legt, und später das Programm auch mal ohne die VCL laufen
lassen will, wäre von AnsiString echt sehr abzuraten.Gruß,
Alexander
Edit:
Joe_M. schrieb:
EDIT: Wieder mal zu langsam getippt...
...ich auch
-
Alexander Kempf schrieb:
Wenn man auf maximale C++-Konformität Wert legt, und später das Programm auch mal ohne die VCL laufen lassen will, wäre von AnsiString echt sehr abzuraten.
hm, unter diesem Aspekt, sollte man dann gleich die Finger vom BCB lassen. Wenn man Wert auf C++-Konformität legt, ist, meiner Meinug nach, der BCB das falsche Werkzeug.
-
Wenn du darauf anspielst...
string extract_filename(string path) { if (path.pos('\\')>0) return path.substr(path.last_delimiter('\\'),path.length()); return path; }Hab grad keinen C++ Compiler zur Hand, aber so ungefähr müsste es aussehen... dann kannste auch mit string arbeiten...
Bei AnsiString war ich mir nicht ganz sicher... aber danke, dann war das so... und nicht von string
