Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi string durch ; getrennt (https://www.delphipraxis.net/29379-string-durch-%3B-getrennt.html)

Sprint 8. Sep 2004 15:43

Re: string durch ; getrennt
 
Zitat:

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.

Dax 8. Sep 2004 16:05

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.

yankee 11. Sep 2004 13:35

Re: string durch ; getrennt
 
Du suchst nach dem hier:
Explode

Dax 11. Sep 2004 13:37

Re: string durch ; getrennt
 
Darüber reden wir die ganze Zeit.

WhatAmI 11. Sep 2004 14:39

Re: string durch ; getrennt
 
Delphi-Quellcode:
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;
bei mier funktioniert es! muss nur in die funktion deinen string, dein trennzeichen einsetzen

nacher deine Funktion mit einer for schleife auffrugen
Delphi-Quellcode:
for I:=1 to countchar('deine string','deinetrenzeiche') do
  begin
    lb.items.append(extraction('deine string','deinetrenzeiche',I);
  end;
müsste theoretisch funktionnieren

yankee 11. Sep 2004 23:46

Re: string durch ; getrennt
 
Zitat:

Zitat von Dax
Darüber reden wir die ganze Zeit.

Ja ach, aber darf ich dich an:
Zitat:

Zitat von Christian18
ich konnte leider nichts finden.kannst du mir trotzdem weiter helfen?

erinnern? Hatte ja wohl keiner einen plan, wo es ist!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.
Seite 2 von 2     12   

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