Zitat von
Dax:
aber Explode ist faktisch effektiver.
Ja? Aber nicht bei der Geschwindigkeit!
Ein Beispiel zum Beweis.
Delphi-Quellcode:
{--------------------------------------------------------------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
var
S: String;
I: Integer;
List: TStringList;
Start, Stop, Frequenzy: Int64;
begin
for I := 1 to 10000 do
S := S + '0123456789;';
QueryPerformanceFrequency(Frequenzy);
QueryPerformanceCounter(Start);
List := TStringList.Create;
try
List.Delimiter := ';';
List.DelimitedText := S;
QueryPerformanceCounter(Stop);
ShowMessage(FormatFloat('0.00', (Stop - Start) * 1000 / Frequenzy) + ' Millisekunden');
finally
List.Free;
end;
end;
{--------------------------------------------------------------------------------------------------}
procedure TForm1.Button2Click(Sender: TObject);
var
S: String;
I: Integer;
StrArry: TStringDynArray;
Start, Stop, Frequenzy: Int64;
begin
for I := 1 to 10000 do
S := S + '0123456789;';
QueryPerformanceFrequency(Frequenzy);
QueryPerformanceCounter(Start);
StrArry := Explode(';', S);
QueryPerformanceCounter(Stop);
ShowMessage(FormatFloat('0.00', (Stop - Start) * 1000 / Frequenzy) + ' Millisekunden');
end;
{--------------------------------------------------------------------------------------------------}
Mit TStringList ist das ganze so 150 mal schneller auf meinem PC.