Ansistring kürzen
-
Moin,
ich möchte einen AnsiString kürze.
Der sieht so aus:
blablabla [l]Die eckigen klammern samt Inhalt sollen gelöscht werden. Mein bisheriger Quellcode war für die Katz. Bitte helft mir.
String split(const AnsiString& text) { std::string lang = text.c_str(); std::string sepa1 = "[";//separators1.c_str(); std::string sepa2 = "]";//separators2.c_str(); int start, stop; start =lang.find_last_not_of(sepa1)+1; stop = lang.find_last_not_of(sepa2)+1; lang = lang.erase(start,stop); AnsiString returnValue = lang.c_str(); return returnValue; }
-
Erstens hat Ansistring ganz sicher eigene Methoden für so etwas. Zweitens gibst du string::erase() die Startposition und Länge des zu löschenden Abschnittes mit. Und drittens löscht erase() direkt vor Ort (also brauchst du dort nicht noch extra zuweisen).
-
Die zugehörige AnsiString-Funktion heißt Delete
AnsiString& __fastcall Delete(int index, int count);Mehr dazu findet sich in der BCB-Hilfe bei den Methoden von AnsiString. Außerdem hilfreich ist noch AnsiString::Pos.
-
Danke,
hatte es dann auch schon gefunden. Trotzdem danke, für die Mühen.