Thema: Delphi Trim funktion

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#4

Re: Trim funktion

  Alt 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.
  Mit Zitat antworten Zitat