Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilenanzahl Textdatei

Zeilenanzahl Textdatei
26.01.2007 10:36:58
Nils
Hallo Excel-Gemeinde,
gibt es eine Möglichkeit die Zeilenanzahl einer Textdatei mittels VBA zu ermitteln ohne die Datei zu öffnen oder jede Zeile mithile von "input #1" zu durchlaufen und mitzuzählen?
Habe auch den Umweg über die Dateigröße (Filelen()) versucht aber daraus kann man leider auch nicht auf die Anzahl der Zeilen schließen weil man ja nicht weiß wieviel Zeichen jeweils in einer Zeile stehen.
Ich würde eben gerne schon vor dem öffnen der Datei dessen Zeilenanzahl wissen.
Gruß Nils

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenanzahl Textdatei
26.01.2007 10:52:31
Oberschlumpf
Moin Nils
Was spricht denn gegen einen Code wie diesen:
(zumal es ja nicht sooo lange dauert, bis auch ne größere Textdatei mit dem folgenden Code "durchgezählt" wurde)

Dim lstrZeile As String, liAnzahlZeilen As Integer
Open "datei.txt" For Input As #1
Do While Not Eof(1)
Line Input #1, lstrZeile
liAnzahlZeilen = liAnzahlZeilen + 1
Loop
Close
MsgBox liAnzahlZeilen
'dein weiterer Code, der nun die Anzahl der Zeilen verwenden kann

Konnte ich helfen?
Ciao
Thorsten
AW: Zeilenanzahl Textdatei
26.01.2007 14:04:35
Nils
Hallo,
ja danke für die Hilfe. Habe halt Dateien mit mehreren 100.000 Zeilen und da dauert allein des durchzählen schon n weilchen. Is jetzt nicht so schlimm aber ich habe gedacht vielleicht gibt es ja ne Funktion ähnlich wie Filelen(), die been nicht die Größe sondern die Zeilenanzahl sofort zurückliefert.
Trotzdem Danke
Nils
Anzeige
AW: Zeilenanzahl Textdatei
26.01.2007 14:27:05
Heiko
Hallo Niels,
habe mal ein bisschen rumgespielt, meine 1 Version ist doppelt so schnell wie die 2. Version mit Schleife. Was bei einer Testdatei mit 600000 Zeilen 6 statt 12 Sekunden bedeutet. Kannst ja mal testen.

Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Public lngTime As Long
Sub TextDat1()
lngTime = GetTickCount
Dim strPfad As String, strHelp As String
Dim arrInput() As String
strPfad = "H:\EXCEL\EXCEL Privat\Beispiele\Dat_Test_Dateien\Test.txt"
Open strPfad For Binary As #1
strHelp = Space(LOF(1))
Get #1, , strHelp
arrInput = Split(strHelp, vbCrLf)
Close #1
Debug.Print "Anzahl Zeilen in Textdatei Version 1  = " & UBound(arrInput) + 1
MsgBox "Zeitdauer der Messung = " & (GetTickCount - lngTime) / 1000 & " Sekunden !"
End Sub
Sub TextDat2()
lngTime = GetTickCount
Dim strPfad As String
Dim lstrZeile As String
Dim lngAnzahlZeilen As Long
strPfad = "H:\EXCEL\EXCEL Privat\Beispiele\Dat_Test_Dateien\Test.txt"
Open strPfad For Input As #1
Do While Not EOF(1)
Line Input #1, lstrZeile
lngAnzahlZeilen = lngAnzahlZeilen + 1
Loop
Close
Debug.Print "Anzahl Zeilen in Textdatei Version 2  = " & lngAnzahlZeilen
MsgBox "Zeitdauer der Messung = " & (GetTickCount - lngTime) / 1000 & " Sekunden !"
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Zeilenanzahl Textdatei
Nils
Hallo Heiko,
ja deine Version ist tatsächlich ca doppelt so schnell. Das hilft mir schon weiter weil mein Rechner hier braucht für 600000 Zeilen deutlich mehr wie 12 Sekunden. Aber mit deiner Version ist mir schon sehr geholfen.
Danke
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige