Hallo,
Ich möchte unter Delphi4 in einem String sämtliche ‚‘ durch ‚\‘ ersetzen. Mit Pos und Insert geht das nicht, da werden nur entsprechend viele ‚‘ hinten an den String angehängt.
Gibt es da noch einen anderen Befehl?
Maak
Hallo,
Ich möchte unter Delphi4 in einem String sämtliche ‚‘ durch ‚\‘ ersetzen. Mit Pos und Insert geht das nicht, da werden nur entsprechend viele ‚‘ hinten an den String angehängt.
Gibt es da noch einen anderen Befehl?
Maak
Hi Maak,
einen Standardbefehl gibt es wohl nicht, aber probier mal diese Funktion:
function StrReplace(const S: String; C: Char; const Replace: String): String;
var
i : Integer;
begin
Result := '';
if S = '' then exit;
for i := Length(S) downto 1 do
if S[i] = C then
Result := Replace + Result
else
Result := S[i] + Result;
end;
Gruß Thomas
Hi Maak,
einen Standardbefehl gibt es wohl nicht,
baucht’s auch nicht, weil ein String ein array of char ist:
var
SomeStr : string;
begin
SomeStr := ‚Roger‘;
SomeStr[3] := ‚k‘; { Roker }
end;
fertig und erst noch weniger Overhead, da keine Funktion.
Hi Roger,
der gesuchte Befehl sollte ALLE Vorkommen eines bestimmten Zeichens (Backslash) durch ZWEI ersetzen, nicht nur den an 3. Stelle. Also nix Array :o)
Gruß Thomas
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
ja stimmt, bin ein idiot… hab’s gesehen.
Hab gestern auch noch ein bisschen probiert und’s auf die Schnelle ned hingekriegt, das Problem ist doch ned so trivial wie’s scheint
S:=’\a\b\c’;
S:=StringReplace(S,’’,’\’,[rfReplaceAll, rfIgnoreCase]);
ShowMessage(S);
sollte klappen ;o)
Stimmt - tja, wenn man lesen kann, hat man halt mehr vom Leben :o)))
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]