Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
Delphi 12 Athens
|
Re: Trim funktion
28. Feb 2006, 17:28
Wenn schon, dann so (Damit das Memo den String nicht ständig neu bearbeiten muß):
Delphi-Quellcode:
Var S: String;
S := StringReplace(Memo1.Text,'ä','ae', [rfReplaceAll,rfIgnoreCase]);
S := StringReplace(S,'ö','oe', [rfReplaceAll,rfIgnoreCase]);
S := StringReplace(S,'ü','ue', [rfReplaceAll,rfIgnoreCase]);
Memo1.Text := StringReplace(S,'ß','ss', [rfReplaceAll,rfIgnoreCase]);
Aber mit Groß-/Kleinschreibung macht's sich bestimmt auch nicht schlecht ^_^
Delphi-Quellcode:
Var S: String;
S := StringReplace(Memo1.Text,'ä','ae', [rfReplaceAll]);
S := StringReplace(S,'ö','oe', [rfReplaceAll]);
S := StringReplace(S,'ü','ue', [rfReplaceAll]);
S := StringReplace(S,'Ä','Ae', [rfReplaceAll]);
S := StringReplace(S,'Ö','Oe', [rfReplaceAll]);
S := StringReplace(S,'Ü','Ue', [rfReplaceAll]);
Memo1.Text := StringReplace(S,'ß','ss', [rfReplaceAll]);
Aber da er ja nicht nur die äöüß übersetzt, sondern auch noch alles in Großschreibung umwandelt und alles was kein A-Z ist durch ein Leerzeichen ersetzt...
Delphi-Quellcode:
procedure TForm1.trimmen(M: TMemo);
var s : string;
i : integer;
begin
s := AnsiUpperCase(M.Text);
s := StringReplace(S,'Ä','AE', [rfReplaceAll]);
s := StringReplace(S,'Ö','OE', [rfReplaceAll]);
s := StringReplace(S,'Ü','UE', [rfReplaceAll]);
s := StringReplace(S,'ß','SS', [rfReplaceAll]);
for i := 1 to Length(s) do
if not (s[i] in [#10, #13, 'A'..'Z') then s[i] := ' ';
Memo1.Text := s;
end;
Oder mit dem Rückgabewert von der männlichen Katze (ich frag mich nur, warum die auf'n Strich geht )
Delphi-Quellcode:
function TForm1.trimmen(M: TMemo): Boolean;
var s, temp : string;
i : integer;
begin
s := AnsiUpperCase(M.Text);
temp := s;
s := StringReplace(S,'Ä','AE', [rfReplaceAll]);
s := StringReplace(S,'Ö','OE', [rfReplaceAll]);
s := StringReplace(S,'Ü','UE', [rfReplaceAll]);
s := StringReplace(S,'ß','SS', [rfReplaceAll]);
for i := 1 to Length(s) do
if not (s[i] in [#10, #13, 'A'..'Z']) then s[i] := ' ';
Memo1.Text := s;
result := s <> temp;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
|