Einzelnen Beitrag anzeigen

mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#13

AW: Schnellstes Entfernen von Chars aus einem String?

  Alt 29. Mär 2015, 17:30

Getestet mit einem 256KiB großen Zufallsstring (bestehend aus 'a'..'z') und CharsToRemove mit 'a' und 'z':
Code:
mm1256  :  656ms
Popov   : 1359ms
Zacherl1:    0ms
Soeben auch verglichen...es kommt aber in Zacherl's Ergebnis nicht das selbe raus. Suche noch, woran es liegt

EDIT: So funktionierts tatsächlich am schnellsten:

Delphi-Quellcode:
function RemoveCharsFromString(const AStr, CharsToRemove: string): string;
var
  i: Integer;
  S: set of Char;
begin
  s := [];
  for i := 1 to Length(CharsToRemove)
  do S := S + [CharsToRemove[i]];
  Result := '';
  for i := 1 to Length(AStr) do
  if not CharInSet(AStr[i],S)
  then Result := Result + AStr[i];
end;
Und das Ergebnis stimmt auch

EDIT-2

ooops...Deddy's Variante ist noch schneller. 1 MB Text mit 3 Ersetzungen dauert nur ein paar Ticks....geil
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen

Geändert von mm1256 (29. Mär 2015 um 17:44 Uhr)
  Mit Zitat antworten Zitat