![]() |
Re: string durch ; getrennt
Zitat:
Ein Beispiel zum Beweis.
Delphi-Quellcode:
Mit TStringList ist das ganze so 150 mal schneller auf meinem PC.
{--------------------------------------------------------------------------------------------------}
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; {--------------------------------------------------------------------------------------------------} |
Re: string durch ; getrennt
Mit "faktisch effektiver" meinte ich ja nicht die Geschwindigkeit, sonder die möglichkeit des Users mit eigenem Code die Funktion seinen Bedürfnissen entsprechend anzupassen, ohne Borland nach den VCL-Sourcen beknieen zu müssen.
|
Re: string durch ; getrennt
|
Re: string durch ; getrennt
Darüber reden wir die ganze Zeit.
|
Re: string durch ; getrennt
Delphi-Quellcode:
bei mier funktioniert es! muss nur in die funktion deinen string, dein trennzeichen einsetzen
function countchar(s,signe:string):integer;
var I:integer; begin for I:=1 to length(s) do if s[I]=signe then result:=result+1; end; function extraction(s,signe:string;n:integer):string; var I:Integer; begin for I:=1 to n-1 do begin delete(s,1,pos(signe,s)); end; if pos(signe,s) > 0 then result:=copy(s,1,pos(signe,s)-1) else result:=s; end; nacher deine Funktion mit einer for schleife auffrugen
Delphi-Quellcode:
müsste theoretisch funktionnieren
for I:=1 to countchar('deine string','deinetrenzeiche') do
begin lb.items.append(extraction('deine string','deinetrenzeiche',I); end; |
Re: string durch ; getrennt
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz