Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: StringReplace und doppelte Leerzeichen

  Alt 10. Apr 2006, 12:59
Zitat von Pichel:
ich möchte in einem String keine doppelten Leerzeichen mehr haben.
Hierfür jetzt mal die Funktion StringReplace getestet.
Das funktioniert, wie auch bei anderen Zeichen mit StringReplace nicht. Wenn Du aus 'aa' einfach 'a' machen willst, dann wird aus dem String baac -> bac, und aus baaaac -> baac, ist bei Leerzeichen nicht anders.

Da musst Du Dir selbst eine kleine Funktion schreiben. Z.B.:
Delphi-Quellcode:
function RemoveDblSpaces(const InStr: string): string;
var
  LastIsSpace: Boolean;
  I, Cnt: Integer;
  Res: string;
begin
  SetLength(Res, Length(InStr));
  Cnt := 0;
  LastIsSpace := False;
  for I := 1 to Length(InStr) do
  begin
    if LastIsSpace and (InStr[I] = #32) then
      Continue;
    LastIsSpace := InStr[I] = #32;
    Inc(Cnt);
    Res[Cnt] := InStr[I];
  end;
  SetLength(Res, Cnt);
  Result := Res;
end;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat