Einzelnen Beitrag anzeigen

Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Diese Funktion schneller machen?

  Alt 9. Dez 2004, 00:59
hallo jbg,

danke für deine antwort, ich werde versuchen es umzusetzen.

b ist true wenn das letzte zeichen der seperator war, so vermeide ich das ein seperator doppelt geschrieben wird.


EDIT:

Delphi-Quellcode:
function fmtstr(const s: string; const c: char): string;
var
  i, len: integer;
  b: boolean;
begin
  Result := '';
  if s <> 'then
  begin
    setlength(result, length(s));
    len := 0; b := false;
    for i := 1 to length(s) do
    begin
      if s[i] = c then
      begin
        if (result[1] = #0) or (b = true) then
          continue;
        b := true;
      end
      else b := false;
      len := len + 1;
      result[len] := s[i];
    end;
    if result[length(result)] = c then
      setlength(result, len-1)
    else setlength(result, len);
  end;
end;
was ist denn hier falsch?

wenn ich das tue:

Zitat:
test := fmtstr('s.u...', '.');
dann ist test "s.u."


wieso ist der punkt am ende noch da?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat