Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Alle anderen Zeichen außer a-z entfernen!

  Alt 4. Okt 2005, 15:54
Hai ihr,

nur mal so als vergleichswert:

Delphi-Quellcode:
begin
  for ndx := 1 to 1000 do
  begin
    s := s + 'A';
  end;
end;

function StripToLetters(const InStr: string): string;
var
  I, Cnt: Integer;
begin
  SetLength(Result, Length(InStr));
  Cnt := 0;
  for I := 1 to Length(InStr) do
  begin
    if InStr[I] in ['A'..'Z', 'a'..'z'] then
    begin
      Inc(Cnt);
      Result[Cnt] := InStr[I];
    end;
  end;
  SetLength(Result, Cnt);
end;

function StripToLetters2(const InStr: string): string;
var
  i: Integer;
begin
  for i := 1 to Length(InStr) do
  begin
    if InStr[i] in ['A'..'Z', 'a'..'z'] then
    begin
      Result := Result + InStr[i];
    end;
  end;
end;

procedure TForm1.btn_Test1Click(Sender: TObject);
var
  start : Cardinal;
  ende : Cardinal;
  foo : string;
  ndx : integer;
begin
  start := GetTickCount;
  for ndx := 1 to 1000 do
    foo := StripToLetters(s);
  ende := GetTickCount;
  lbl_Label1.Caption := Format('Zeit %d',[ende-start]);

  start := GetTickCount;
  for ndx := 1 to 1000 do
    foo := StripToLetters2(s);
  ende := GetTickCount;
  lbl_Label2.Caption := Format('Zeit %d',[ende-start]);
end;
Bei Funktion1 : 1 ms
Bei Funktion2 : 2200 ms
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat