String bearbeiten
-
Hallo!
Ich habe eine Frage:
gibst doch irgenwie einfache Losung?Ich habe ein String:
z.B.
AnsiString Text = "abcd efg,hij"Wie kann ich von dieses String Leerzeichen(" ") und Koma(",") ausschneiden,
das das am ende so was bekomme:
Text = "abcdefghij"(Wie bei VB:
Text = Replace(Text, " ", "")
Text = Replace(Text, ",", ""))Danke.
-
Hallo
dazu mußt du wohl eine eigene Funktion schreiben, die die AnsiString-Funktion AnsiPos und SubString nutzt :
AnsiString Replace(AnsiString Origin, AnsiString Old, AnsiString New) { int Pos; AnsiString Result; // Origin nach Result kopieren, dabei alle Vorkommen von Old durch New ersetzen while ((Pos = Origin.AnsiPos(Old)) > 0) // Solange Old gefunden ... { Result = Origin.SubString(1, Pos -1) + New; // .. bis Old übernehmen und New kopieren Origin.Delete(1, Pos -1 + Old.Length()); // ... in Origin bis einschließlich Old löschen } Result = Result + Origin; // Rest übernehmen return(Result); }bis bald
akari
-
Hallo
oder StringReplace verwenden
MfG
Klaus
-
Danke für schnelle Antwort.
Aber wenn ich StringReplace verwende, was für TReplaceFlags Flags muss ich eingeben?
Wenn ich "rfReplaceAll" schreibe, dann kommt Fehler:
E2034 Konvertierung von 'SysUtils__54' nach 'TReplaceFlags' nicht möglich
E2342 Keine Übereinstimmung des Typs beim Parameter 'Flags' ('TReplaceFlags' erwartet, 'SysUtils__54' erhalten)Danke
-
Hallo
Zitat aus BCB-Hilfe
enum Sysutils__93 { rfReplaceAll, rfIgnoreCase };
typedef Set<Sysutils__93, rfReplaceAll, rfIgnoreCase> TReplaceFlags;TReplaceFlags ist also ein Set, das sowohl die Option rfReplaceAll als auch rfIgnoreCase enthalten kann.
Um das anzuwenden, schreibst duStringReplace(Text, Old, New, TReplaceFlags() << rfReplaceAll);bis bald
akari
-
Hallo akari!
Supper!
Danke!
-
FAQ und Suchfunktion benutzen!
Wie oft sollen wir dir das noch sagen?