In Textdatei Prüfen wieviele Zeilen drin sind?
Übersicht

blackmasterBetreff: In Textdatei Prüfen wieviele Zeilen drin sind? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Ich hab da mal eine frage, wie kann ich herausfinden wieviele Zeilen meine Textdatei hat? Also ich lade die Datei mit dem befehl ReadFile und möchte dann die anzahl der Zeilen anzeigen lassen. Wäre sehr net wenn mir eine Helfen könnte. Gruss Markus |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
du lässt mit dem Befehl Readline alle Zeilen durchgehen, bis eof zurückgeliefert wird, dabei zählst du nen Index hoch und schwups weist du wie viele Zeilen die Datei hat | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
blackmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir.
Ich hab das so versucht: Code: [AUSKLAPPEN] Datei = ReadFile("Datei.txt")
If Not Datei = 0 Then While Not Eof(Datei) TextAnzahl=TextAnzahl+1 ;zeile zählen For j=1 To TextAnzahl t.texte = New texte t\schriftart = schrift1 t\tex$=ReadLine(Datei) t\text_x = 50 t\text_y=i i=i+20 Next Wend CloseFile(Datei) EndIf der zeigt das aber nicht richtig an, ich habe 7 Texte in der Datei stehen aber der zeigt nur 4 an, habe ich vll was falsch gemacht? Gruss Markus |
||
timmeTheOnly |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du hast es immer gemacht... Hier:
Code: [AUSKLAPPEN] Datei = ReadFile("Datei.txt") If Not Datei = 0 Then While Not Eof(Datei) TextAnzahl=TextAnzahl+1 ;zeile zählen Wend seekfile(datei,0) For j=1 To TextAnzahl t.texte = New texte t\schriftart = schrift1 t\tex$=ReadLine$(Datei) ; Hier ist der Return ein String! t\text_x = 50 t\text_y=i i=i+20 Next EndIf CloseFile(Datei) ; Unbedingt hier! Überleg mal selbst! |
||
blackmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir, wieso überlegen?
Ich kann doch die Datei erst wieder schließen wenn diese Datei besteht, daher: Code: [AUSKLAPPEN] If not Datei = 0 then
closefile(Datei) ; erst schließen wenn die datei besteht, da ich ansonsten eine fehlermeldung erhalte "Stream does not exist" endif aber ich sehe dann keine Texte wenn ich es so mache, wieso? Gruss Markus |
||
timmeTheOnly |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also bei mir hat des immer gefunzt, auch wenn die datei nicht existierte...
MfG |
||
blackmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Komisch, bei mir meckert der Compiler dann, wenn ich die Datei offne die nicht einmal existiert und gleich geschlossen wird...
Editiert: Also die anzahl stimmt jetzt, ich hab mal in der Datei nur zahlen rein geschrieben und wenn ich es dann öffnen möchte, dann kommen viele doppelte zahlen rein: 01 01 02 01 02 03 01 02 03 04 01 02 03 04 05 01 02 03 04 05 06 das soll eigentlich so angezeigt werden: 01 02 03 04 05 06 wisst ihr wieso die zahlen doppelt rein kommen? hier mal der code: Code: [AUSKLAPPEN] Datei = ReadFile("Datei.txt")
If Not Datei = 0 Then While Not Eof(Datei) TextAnzahl=TextAnzahl+1 SeekFile(Datei,0) For j=1 To TextAnzahl t.texte = New texte t\schriftart = schrift1 t\text_red=0 : t\text_green=0 : t\text_blue=128 t\tex$=ReadLine(Datei) t\text_x = 50 t\text_y=i i=i+20 Next Wend CloseFile(Datei) EndIf Gruss Markus |
||
timmeTheOnly |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist ja klar, denn du darfst ja nicht immer alle zeilen zählen...
Nimm das als Codeschnipsel. Ich habe es bewusst mal nicht auf deinen Code bezogen, dass du dabei auch was lernst: Code: [AUSKLAPPEN] ... while not eof(file) readline$(file) zeilen = zeilen + 1 wend seekfile file, 0 for i = 0 to zeilen z.zeile = new zeile z\inhalt = readline$(file) next Ich hoffe du kannst damit was anfangen... Aber ich gebe dir noch eine schnellere und kürzere Alternative: Code: [AUSKLAPPEN] while not eof(file) z.zeile = new zeile z\inhalt = readline$(file) wend Fertig. Ich hoffe ich konnte dir helfen... MfG T-Master |
||
blackmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Cool, danke dir ![]() Es funktioniert sehr gut, du hast mir echt weitergeholfen, vielen dank. Edit: Sry nochmal, aber ist es möglich irgendwie eine bestimmte Zeile auszulesen? Gruss Markus |
||
timmeTheOnly |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich denke mal:
Code: [AUSKLAPPEN] ... while not eof(file) z.zeile = new zeile z\inhalt = readline$(file) wend seekfile(file,0) for i = 0 to gesuchteZeile - 1 readline$(file) next gesucht$ = readline$(file) ... Habs nicht getestet, aber es müsste gehen... MfG T-Master |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group