Anzahl Zeilen in einer Textdatei

gabrielgsell

Mitglied
Hallo zusammen,
ich sollte ausfindig machen, wieviele Zeile sich in einer Textdatei befinden. Habe bereits mit:
Code:
n = FileLen(Datei)
herumversucht. Leider gibt mir dieser die Länge in Byte an und mit dieser Zahl kann ich nicht viel anfangen.

Viele Grüsse
 
Wieviel Byte zeigt er dir denn an? Zeigt er dir denn pro Zeile immer schrittweise die gleiche Anzahl an.
Also 1 Zeile =4 Byte, 2 Zeilen = 8 Byte...................
Wenn das so is dann rechne doch einfach die FileLen durch die Anzahl der bytes pro zeile (oben 4).
Kleinet Beispiel:

8 Zeilen = 32 Byte = fileLen
FileLen / 4 = n

Hoffe so meinst du das ^^ :D
vielleicht hats dir ja weitergeholfen.

MfG
Scorpion
 
Wieviel Byte zeigt er dir denn an? Zeigt er dir denn pro Zeile immer schrittweise die gleiche Anzahl an.
Also 1 Zeile =4 Byte, 2 Zeilen = 8 Byte...................
Wenn das so is dann rechne doch einfach die FileLen durch die Anzahl der bytes pro zeile (oben 4).
Kleinet Beispiel:

8 Zeilen = 32 Byte = fileLen
FileLen / 4 = n

Hoffe so meinst du das ^^ :D
vielleicht hats dir ja weitergeholfen.

MfG
Scorpion
 
Ciao
Erstmal danke für die schnelle Antwort.
Leider scheitert es bei deinem Lösungsvorschlag, bereits am auslesen der Zeilenlänge. Der Befehl FileLen bezieht sich meinem Wissen nur auf die Datei und kann nicht auf die Zeile übertragen werden. Nach deiner Vorstellung müsste der Befehl ungefähr so aussehen:
Code:
n = FileLen(Zeile(i))
Dies geht aber leider nicht, denn er zeigt mir den Wert, der ganzen Datei in Bytes an.
Es muss natürlich nicht unbedingt der Befehl FileLen sein, wäre auch praktisch wenn es einen direkten Befehl gibt :).

Grüsse
 
So habs rausbekommen:):
Code:
Dim Inhalt As String
Dim Datei As String
Dim KNr As Integer
Dim Zeile()
Dim n As Integer

Datei = "C:\test.txt"
KNr = FreeFile()
Inhalt = Space(FileLen(Datei))
Open Datei For Binary As KNr
Get KNr, , Inhalt
Zeile = Split(Inhalt, vbNewLine)
n = Format$(UBound(Zeile) + 1, "#,##0")
Close KNr
MsgBox n

Grüsse
 
So gehts auch ganz einfach.

Code:
Dim Zeilen          as Long
Dim Textzeile      as String

Open Datei For Input As F
           Do While Not EOF(F)  
               Line Input #F, Textzeile
               Zeilen  = Zeilen + 1
           Loop
Close F

Msgbox Zeilen
 
Da ich in meinem Programm schon alles verwenden muss, bis auf diese Zeile:
Code:
n = Format$(UBound(Zeile) + 1, "#,##0")
ist für mich meine Lösung beser, aber vielen Dank!
Grüsse
 
Zurück