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 parse textfile to paradox (https://www.delphipraxis.net/47334-parse-textfile-paradox.html)

jfheins 10. Jun 2005 16:35

Re: parse textfile to paradox
 
Sonst meine ich mich zu erinnern, dass es hier in der CodeLib etwas namens ExplodeExplode gibt ... ;)

alzaimar 10. Jun 2005 17:25

parse textfile to paradox: Wer ist schneller als ich?
 
Ich rufe alle Hacker auf, das hier schneller hinzubekommen! Wenn man nämlich den Delimiter als 'Char' ansieht, gehts einfach und fix:
Delphi-Quellcode:
Procedure FasterExplode (Const aString : String; aDel : Char; aToken : TStringList);
Var
  i,j,n : Integer;
  p : PChar;

Begin
  j := 1;
  p := @aString[1];
  n := Length (aString);
  For i := 1 to n do begin
    If p[i] = aDel Then begin
      aToken.add (Copy (aString, j, i - j));
      j := i + 1;
      End;
    inc (p);
    End;
  aToken.Add (Copy (aString, j, n - j + 1));
End;
Einzige Bedingung: Der Prozedurkopf muss identisch sein. Alles ist erlaubt!

bart57 23. Jun 2005 13:24

Re: parse textfile to paradox
 
Hallo,

danke an alle !Ich habe jetzt folgende Funktion benutzt:


procedure StrTokenToStrings(S: AnsiString; Separator: AnsiChar; const List: TStrings);
var
Token: AnsiString;
begin
Assert(List <> nil);

if List = nil then
Exit;

List.Clear;
while S <> '' do
begin
Token := StrToken(S, Separator);
List.Add(Token);
end;
end;


function StrToken(var S: AnsiString; Separator: AnsiChar): AnsiString;
var
I: Integer;
begin
I := Pos(Separator, S);
if I <> 0 then
begin
Result := Copy(S, 1, I - 1);
Delete(S, 1, I);
end
else
begin
Result := S;
S := '';
end;
end;



Nach ein paar Test-Tagen war die bei mir am schnellste !


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

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz