Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeilenanzahl einer Textdatei in Excel ermitteln


Schritt-für-Schritt-Anleitung

Um die Zeilenanzahl einer Textdatei mit VBA zu ermitteln, kannst Du den folgenden Code verwenden. Dieser Code zählt die Zeilen in einer Textdatei ohne sie tatsächlich zu öffnen oder jede Zeile einzeln abzulaufen.

  1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul ein (Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub ZeilenanzahlTextdatei()
    Dim strPfad As String
    Dim arrInput() As String
    Dim lstrZeile As String
    Dim lngAnzahlZeilen As Long

    strPfad = "C:\Path\to\your\file.txt" ' Ändere den Pfad zur Textdatei
    Open strPfad For Binary As #1
    arrInput = Split(Input$(LOF(1), #1), vbCrLf)
    Close #1

    lngAnzahlZeilen = UBound(arrInput) + 1
    MsgBox "Die Anzahl der Zeilen in der Textdatei beträgt: " & lngAnzahlZeilen
End Sub
  1. Ändere den strPfad zur Textdatei entsprechend.
  2. Führe das Makro aus (F5), um die Zeilenanzahl zu erfahren.

Häufige Fehler und Lösungen

  • Fehler: Dateipfad nicht gefunden

    • Stelle sicher, dass der angegebene Pfad zur Textdatei korrekt ist.
  • Fehler: Überlauf bei der Zeilenanzahl

    • Dies kann auftreten, wenn die Textdatei leer ist oder nicht die erwartete Struktur hat. Prüfe die Datei auf Inhalt.
  • Lösung: Verwendete Dateiformate

    • Achte darauf, dass die Datei in einem unterstützten Format (z.B. .txt) vorliegt.

Alternative Methoden

Wenn Du eine CSV-Datei hast, kannst Du auch die maximale Zeilenanzahl mit einer einfacheren Methode ermitteln, indem Du Excel-Funktionen verwendest. Importiere die CSV-Datei in ein Excel-Blatt und verwende die Funktion =ANZAHL2(A:A) um die Anzahl der Zeilen zu zählen.


Praktische Beispiele

Hier sind zwei praktische Beispiele zur Zeilenanzahl:

  1. Textdatei mit 600.000 Zeilen

    • Mit dem oben genannten VBA-Skript erhältst Du schnell die Zeilenanzahl ohne große Verzögerung.
  2. CSV mit maximalen Zeilen

    • Wenn Du eine CSV-Datei hast, die Du regelmäßig analysierst, kannst Du das Makro anpassen, um nur die relevanten Daten zu zählen.

Tipps für Profis

  • Nutze die GetTickCount Funktion, um die Ausführungszeit Deines Codes zu messen und zu optimieren.
  • Wenn Du mit großen Dateien arbeitest, überlege, ob Du die VBA Anzahl Zeilen in einer Batch-Verarbeitung durchführen kannst.
  • Dokumentiere Deinen Code gut, damit Du und andere die Logik hinter der Zeilenanzahl leicht nachvollziehen können.

FAQ: Häufige Fragen

1. Wie kann ich die maximale Zeilenanzahl einer CSV-Datei in Excel ermitteln? Verwende die Funktion =ANZAHL2(A:A) nach dem Import der CSV-Datei in Excel.

2. Gibt es eine Möglichkeit, die Zeilenanzahl in einer Textdatei ohne VBA zu ermitteln? Ja, Du kannst die Textdatei in Excel importieren und dann die Anzahl der Zeilen mit Excel-Funktionen zählen.

3. Wie schnell ist die Zeilenanzahl-Berechnung bei großen Textdateien? Die Geschwindigkeit hängt von der Datei ab. Mit optimierten VBA-Skripten kann die Berechnung für sehr große Dateien deutlich schneller erfolgen als mit herkömmlichen Methoden.

4. Kann ich die Zeilenanzahl auch für andere Dateiformate ermitteln? Ja, die Methoden sind in der Regel für .txt und .csv Dateien anwendbar. Achte darauf, die Datei im richtigen Format zu öffnen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige