Re: Zeilenweises Lesen einer TXT-Datei?
Hi.
Die Größe der Dateien sind verschieden. Aber es kann durchaus mal vorkommen, dass die Datei über 10000 Einträge hat. Also ist FileStream schneller? Hm, ok werd ich mich mal damit befassen *delphi-hilfe-zück*. C ya. |
Re: Zeilenweises Lesen einer TXT-Datei?
Zitat:
Ganz einfach. :) Reset(TextFile) setzt den Zeiger für diese Datei an den Anfang der Datei. Readln(TextFile,String) ließt bis zum Zeilenende, und setzt den Zeiger auf den Anfang der nächsten Zeile. |
Re: Zeilenweises Lesen einer TXT-Datei?
Hi.
Habs mal mit GetTickCount ausgemessen und das mit der StringList geht tatsächlich schneller, weil weniger Schleifen etc. benötigt werden. Zudem ist der Code damit auch wesentlich kleiner ;) . THX! :dp: :D . C ya. |
Re: Zeilenweises Lesen einer TXT-Datei?
Wie groß war den der Unterschied? Gettickcount ist nicht gerade genau!
|
Re: Zeilenweises Lesen einer TXT-Datei?
noch mal so zur info, was liest du für Daten ein ?
werden die Daten von dir erzeugt (aus einem deiner Programme erzeugt ?) Ganz so vergleichen kannst du die zeiten nicht ! da müßtest du bei der AssignFile variante :
Delphi-Quellcode:
dann hast du reele Zeiten !
CheckListBox.Items.BeginUpdate;
// hier der restliche code ChecklistBox.Items.EndUpdate; |
Re: Zeilenweises Lesen einer TXT-Datei?
Hi.
GetTickCount ist ungenau?! Aber was sollte ich denn da nehmen? Das war das einzig mir bekannte um sowas zu messen :-| . Wenn ich's mir recht überlege, könnte ich gleich was einbauen das einzeigt, wie lange es gedauert hat, die Liste(n) zu laden... nur was soll ich eurer Meinung nach nehmen? Edit: Ach ja, die Daten sind entweder URLs oder lokale Dateien. Jede in einer eigenen Zeile. Die hat der User vorher schon irgendwie erstellt. C ya. |
Re: Zeilenweises Lesen einer TXT-Datei?
GetTickCount ist auf 18 ms genau (oder war es einmal) dh. wenn der unterschied unter 10 ms ist, dann kannst nicht genau sagen wer um wieviel schneller ist.
Besser / Genauer wäre QueryPerformanceCounter und QueryPerformanceFrequency |
Re: Zeilenweises Lesen einer TXT-Datei?
Delphi-Quellcode:
das ganze kann durch das multitasking aber etwas abweichen...
procedure TForm1.Button1Click(Sender: TObject);
var Frequenz,Time1,Time2: Int64; begin QueryPerformanceFrequency(Frequenz); // zeitmessung QueryPerformanceCounter(Time1); // zeitmessung !!! zu messende funktion hier !!! QueryPerformanceCounter(Time2); // zeitmessung //1. ausgabe in millisekunden Form1.Label1.Caption:=FormatDateTime('hh:nn:ss:zzz',IncMilliSecond(0,Round( (Time2-Time1)/Frequenz*1000 ))); // zeitmessung //2. oder in tick's Form1.Label1.Caption:=FloatToStrF(Time2-Time1,ffNumber,99,0); // zeitmessung end; geht glaube erst ab NT,2000,XP und windows muß in uses sein... mfg Dano |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:15 Uhr. |
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