(Gast)
n/a Beiträge
|
AW: Umlaute in string erstetzen
10. Nov 2012, 15:22
Ansonsten hätte ich dir eine meiner Funktionen empfohlen. Die habe ich damals bei Delphi 3 geschrieben, die hatte kein StringReplace. Die Funktion ist zwar für Strings, aber ich schätze die kann man für seine Bedürfnisse anpassen:
Delphi-Quellcode:
type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase); //Wichtig!!! Global setzen
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
function PosEx(Substr: string; S: string; Flag: TReplaceFlags): Integer;
begin
if rfIgnoreCase in Flag
then Result := Pos(AnsiUpperCase(Substr), AnsiUpperCase(S))
else Result := Pos(Substr, S);
end;
var
S2: String;
begin
S2 := S;
Result := '';
while Length(S2) > 0 do begin
if PosEx(OldPattern, S2, Flags) > 0 then begin
Result := Result + Copy(S2, 1, PosEx(OldPattern, S2, Flags) - 1);
Delete(S2, 1, PosEx(OldPattern, S2, Flags) + Length(OldPattern) - 1);
Result := Result + NewPattern;
end else begin
Result := Result + S2;
Delete(S2, 1, Length(S2));
end;
if not (rfReplaceAll in Flags) then begin
Result := Result + S2;
Delete(S2, 1, Length(S2));
end;
end;
end; {Popov}
|
|
Zitat
|