![]() |
Zeilen einer Datei zählen
Hallo habe folgendes Problem,
hab mir eine Konsolenanwendung erstellt in der ich einen Dateipfad angeben und die Zeilen der Datei zählen kann. Das Programm zählt immer nur eine Zeile und mehr nicht. Hier mal der Code:
Delphi-Quellcode:
Zählt datei.count nicht eigentlich alle Zeilen?
uses
SysUtils, Classes; var path: string; zeilen: integer; datei: TStringList; begin writeln('Gebens Sie den Dateipfad an oder Exit um zu beenden:'); Readln(path); datei:= TStringList.Create; if FileExists(path) = true then begin writeln('Existiert!'); datei.LoadFromFile(path); zeilen:= datei.Count; writeln('Die Datei hat ' + IntToStr(zeilen) + ' Zeilen!'); end else begin writeln('Existiert nicht!'); end; if path = 'Exit' then begin Halt; end; Readln; end. Vielleich kann mir irgend wer helfen. |
AW: Zeilen einer Datei zählen
Hallöle...:P
Zitat:
|
AW: Zeilen einer Datei zählen
Hat die Datei denn mehr als eine Zeile, die durch CRLF (#13#10) voneinander getrennt sind?
Übrigens muss man sich dafür nicht unbedingt selbst ein Programm schreiben, denn grep (gibt's auch für Windows) kann sowas indirekt:
Code:
MfG Dalai
grep -c "." pfad\zur\datei
|
AW: Zeilen einer Datei zählen
|
AW: Zeilen einer Datei zählen
Alternative wäre auch der TSJMmfFileReader von Sebastian Jänicke. Ist schnell und man kann den Delimiter einstellen auch (voreingetsllt ist #$000D (#13)).
|
AW: Zeilen einer Datei zählen
die Datei hat mehrere Zeilen. Hat es auch mit anderen Dateien probiert und es kommt immer wieder nur eine Zeile raus.
Und danke für den Windows-Tipp.:thumb: Hab ich noch nicht gewusst. |
AW: Zeilen einer Datei zählen
Woher weißt du denn, dass sie mehrere Zeilen hat?
|
AW: Zeilen einer Datei zählen
Ich hab sie mir zum testen erstellt. Hab mir dazu einen Text von Wikipedia kopiert mit ca 20 Zeilen.
Dann sollte das Programm doch auch 20 Zeilen zählen oder? |
AW: Zeilen einer Datei zählen
Öhm. Du hast nicht zufällig den automatischen Zeilenumbruch im Texteditor aktiviert? Fließtext von Webseiten hat keine festen Zeilenumbrüche.
|
AW: Zeilen einer Datei zählen
nee glaube der Zeilenumbruch fehlt. Ich werde das mal überprüfen.
Ist den mein Quellcode soweit korrekt? hab jetzt noch eine for-Schleife eingebaut und hab immer noch das selber Problem. Hier nochmal mein Code:
Delphi-Quellcode:
uses
SysUtils, Classes; var path: string; zeilen, i: integer; datei: TStringList; begin writeln('Gebens Sie den Dateipfad an oder Exit um zu beenden:'); Readln(path); datei:= TStringList.Create; zeilen:= 0; if FileExists(path) = true then begin writeln('Existiert!'); datei.LoadFromFile(path); for i:= 0 to datei.Count -1 do begin zeilen:= zeilen +1; end; writeln('Die Datei hat ' + IntToStr(zeilen) + ' Zeilen!'); end else begin writeln('Existiert nicht!'); end; if path = 'Exit' then begin Halt; end; Readln; end. |
AW: Zeilen einer Datei zählen
Zitat:
Code:
The right tool for the right task und so ;)
wc -l pfad\zur\datei
|
AW: Zeilen einer Datei zählen
Nimm einfach NodePad, schreib 1[Enter-Taste] 2[Enter-Taste] 3[Enter-Taste] rein, speicher das als txt-Datei ab und versuchs damit. Die for-Schleife ist für die Katz.
|
AW: Zeilen einer Datei zählen
Zitat:
Gib dem Programm doch einfach mal die Source-Datei deines eigenen Programms zum zählen. |
AW: Zeilen einer Datei zählen
Ok die for-Schleife ist draußen.
Hab mir jetzt ein Textdokument erstellt mit 10 Zeilen. Jetzt kommt das Problem das er das Dokument nicht findet. |
AW: Zeilen einer Datei zählen
8-) damit wären wir genauso weit wie
![]() |
AW: Zeilen einer Datei zählen
Zitat:
MfG Dalai |
AW: Zeilen einer Datei zählen
Dann gib deinem Programm den korrekten Pfad zur Datei. :roll:
|
AW: Zeilen einer Datei zählen
Um noch einmal auf den Vorschlag vom Anfang zurückzukommen: Kannst Du eine Beispieldatei zur Verfügung stellen - mit dem Hinweis, wie viele Zeilen es sein sollten?
|
AW: Zeilen einer Datei zählen
Wenn du noch keinen hast, dann wird es Zeit: Lade einen HEX Editor runter.
Öffne deine TXT-Datei im HEX Editor und prüfe deren Inhalt (Zeichen für Zeilenumbruch suchen). Dann weisst du ganz genau, was dein Delphi Programm einliest. Und wie's bereits gewünscht wurde: Es macht erst richtig Sinn über das Problem zu diskutieren, wenn du die Datei z.V. stellst. Viel Glück... |
AW: Zeilen einer Datei zählen
Rt hat ja nun wohl mittlerweile eine Datei mit Zeilenumbrüchen.
|
AW: Zeilen einer Datei zählen
Wenn er Bauminas Vorschlag genutzt hat, dann ja.
@Nugi89
Delphi-Quellcode:
ist nicht so gelungen,
if FileExists(path) = true then
begin
Delphi-Quellcode:
ist voll und ganz ausreichend.
if FileExists(path) then
begin Gruß K-H |
AW: Zeilen einer Datei zählen
Nicht nur weniger aufwendig uach weniger fehleranfällig, da True nicht immer gleich True ist.
(True ist nicht False; also <> 0) |
AW: Zeilen einer Datei zählen
Zitat:
1. Die Stringliste wird nicht freigegeben. 2. Wenn Du "Exit" eingibst, dann prüft Dein Programm erst, ob es die Datei "Exit" gibt und gibt dann "Existiert nicht!" aus bevor es zum Programmende kommt, ausser es gibt eine Datei "Exit" dann erhälst Du die Zeilenanzahl vor dem Beenden des Programms. |
AW: Zeilen einer Datei zählen
Danke für die Hilfe
Hatte meine Fehler selber gefunden, hatte den Wald vor lauter Bäumen nicht gefunden:oops: |
AW: Zeilen einer Datei zählen
Du bist mein Held ...
Welche Fehler waren denn das ? Rollo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:33 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-2025 by Thomas Breitkreuz