Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zeilen einer Datei zählen (https://www.delphipraxis.net/186594-zeilen-einer-datei-zaehlen.html)

Nugi89 15. Sep 2015 12:48

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:
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.
Zählt datei.count nicht eigentlich alle Zeilen?
Vielleich kann mir irgend wer helfen.

haentschman 15. Sep 2015 12:57

AW: Zeilen einer Datei zählen
 
Hallöle...:P
Zitat:

Zählt datei.count nicht eigentlich alle Zeilen?
Das kommt auf die Datei an. Wenn z.B. in ihr keine Zeilenumbrüche sind gibt es nur eine Zeile. Kannst du zwecks Analyse so eine Datei (klein) anhängen?

Dalai 15. Sep 2015 12:57

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:
grep -c "." pfad\zur\datei
MfG Dalai

Rollo62 15. Sep 2015 13:13

AW: Zeilen einer Datei zählen
 
Wenn Zeilenumbrücke da sind könnte es trotzdem sein das sie nicht passen.
Mit Delimiter kann man das dem StringGrid einstellen.
Danach sollte es dann eigentlich funktionieren.

Edit:
Sorry: LineBreak ist der richtige Link

Rollo

Bjoerk 15. Sep 2015 13:13

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)).

Nugi89 15. Sep 2015 13:15

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.

Luckie 15. Sep 2015 14:09

AW: Zeilen einer Datei zählen
 
Woher weißt du denn, dass sie mehrere Zeilen hat?

Nugi89 15. Sep 2015 14:20

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?

Luckie 15. Sep 2015 14:36

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.

Nugi89 15. Sep 2015 14:45

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.
Seite 1 von 3  1 23      

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