![]() |
Re: zeilen in txt datei zählen
Also wenn die Anzahl der Zeichen pro Zeile konstant ist, einfach mit FindFirst die Datei finden, und sich vom TSearchRec der rauskommt die Dateigröße anschauen und die durch die Zeichen pro Zeile teilen.
|
Re: zeilen in txt datei zählen
So, habe nochmal was anderes probiert...
Delphi-Quellcode:
Vorschlag gelöscht wegen Nicht-Beachtung
|
Re: zeilen in txt datei zählen
Ich habe gerade mal nachgesehen was denn so in den Sourcen von TListBox beim Aufruf von LoadFromFile passiert.
Es wird ein TFileStream erzeugt, welcher den gesamten Text einliest, welcher auf #10 bzw #13 geparst wird und der der Items Eigenschaft hinzugefügt wird. Ich hab mir dann angeschaut wie TFileStream denn dann den Inhalt der Datei liest und festgestellt, dass diese sich einer kernel32 Funktion, nämlich ReadFile bedient. Leider habe ich keine Implementierung zu Readln gefunden, da weiß anscheinend nur der Compiler selbst da dort eingebaut, wie diese funktionieren. Es wird vermutlich aber auch auf #10 bzw. #13 geparst werden. Demzufolge könntest Du das ganze auch in einen Filestream schreiben und ihn rückwärts durchgehen bis du 15 mal #10 bzw. #13 gefunden hast, die Strings dazwischen entsprechen dann deinen Zeilen. |
Re: zeilen in txt datei zählen
@GuenterS: was mache ich in meinem Beispiel?
|
Re: zeilen in txt datei zählen
Zitat:
|
Re: zeilen in txt datei zählen
Wieso brauchst du für die Fortschrittsanzeige unbedingt die Zeilenanzahl? Dafür reicht doch die Größe der Datei. Bei jeder mit Readln eingelesenen Zeile hast du mit der Zeilenlänge + 2 (CR+LF) die Anzahl der eingelesenen Bytes und kannst damit den Fortschritt entsprechend weiterrechnen. Dabei ist es vollig irrelevant, wieviele Zeilen in der Datei sind oder ob die alle gleich lang sind.
|
Re: zeilen in txt datei zählen
Ist das da für mich ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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