Entwickler-Ecke

Dateizugriff - Zeilen einer Textdatei zählen!!!


delphist - Mi 01.01.03 13:31
Titel: Zeilen einer Textdatei zählen!!!
***********Frage steht im titel******


matze - Mi 01.01.03 13:55

also delphist: lade die textdatei in ein Memofeld per

Quelltext
1:
memo1.lines.loadfromfile('deine datei');                    

zählen kannst du dann die zeilen mit

Quelltext
1:
memo1.lines.count                    


Anonymous - Mi 01.01.03 14:12

Woher weißt du, daß er ein Memo benutzt. Davon steht nirgendwo was geschrieben. Im grunde genommen war er zu faul überhaupt irgendwelche Infos anzugeben.

Deine Antwort war also vertane mühe. Es ist möglich, aber unwahscheinlich, daß du die richtige Antwort auf die Frage gegeben hast. Es kommt 100% eine Nachfolgefrage.


matze - Mi 01.01.03 14:14

ich hab jetzt nur mal die lösung gegeben die ich genommen hätte


delphist - Mi 01.01.03 14:23

Ist es notwendig es vorher in ein Memo Feld zu lkaden???
Kann ich nicht direkt die Zeilen Zählen?
MfG delphist


matze - Mi 01.01.03 14:25

es gibt bestimmt eine andere methode aber das mit dem memo ist die erste die mir jetzt spontan eingefallen ist und auch die einfachste


Anonymous - Mi 01.01.03 14:57

@delphist

Es ist das was ich meine. Deine Frage ist so ultrakurz, daß man keine richtige Antwort geben kann. Du investierst keine Zeit und Mühe in deine Frage, möchtest aber als Ergebnis etwas was funktioniert. Du investierst nur 10 Sekunden in die Frage, willst aber, daß einer Minuten in die Antwort investiert.

Nein, du mußt nicht Memo haben um die Anzal der Zeichen zu zählen. Allerdings solltest du bei der Frage schon angeben wie dein Code bis jetzt aussieht und wie du das gerne gelöst haben möchtest. Du solltest also soviel in die Frage investieren, daß man sich nicht veräppelt vorkommt wenn man eine richtige Antwort gibt.

Es gibt viele Möglichkeiten die Zeilen zu zählen. Die Memomethode ist die einfachste. Allerdings war die Antwort in den Wind geschossen. Du hast keine richtige Frage gestellt, deshalb hast du eine Antwort bekommen mit der du wenig anfangen kannst.


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
var
  c: Integer;
begin
  with TStringList.Create do try
    c := 0;
    LoadFromFile('c:\autoexec.bat');
    c := Count;
  finally Free end;
  ShowMessage('Anzahl Zeilen: ' + IntToStr( c ));
end;


Bayo - Fr 03.01.03 15:32

Wenn du kein Memo und keine Listbox verwenden möchtest um die Zeile zu zählen, was ich nicht machen würde, gibt es zwei verschiedene Varianten:

1. Wenn die Datei pro Zeile eine bestimmte Anzahl Zeichen hast, wie es häufig bei Inputfiles von Banken u.s.w. der fall ist, kannst du aus der Dateigrösse in Bytes berechnen, wieviele Zeile die Datei hat. Es gibt hier zu beachten, dass ein Zeilenumbruch in Windows aus zwei Zeichen besteht!

2. Du hast keine Ahnung, aus wievielen Zeichen deine Textdatei besteht. Dann wirst du nicht darum rum kommen die Gesamt datei zu durchlaufen und zu zählen. Auch hier gibt es wieder mehrere Möglichkeiten, wie man das machen könnte, folgend eine von ihnen:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function LineCount(fileName: TFileName): Integer;
ver
  iFile: TextFile;
begin
  Result := -1;
  AssignFile(iFile, fileName);
  {$I-}
    Reset(iFile);
  {$I+}
  if not (IOResult = 0) then Exit;
  while not Eof(iFile) do begin
    Inc(Result);
  end;
  Inc(Result);
  CloseFile(iFile);
end;


Grüsse Dominic