Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
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
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilenzahl einer txt-datei bestimmen

Zeilenzahl einer txt-datei bestimmen
28.11.2007 16:21:10
Jochen
Hallo zusammen,
ich möchte per Macro die Zeilenzahl einer txt-Datei bestimmen. Kann mir jemadn sagen, wie ich das machen kann?
Danke & Gruß
Jochen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenzahl einer txt-datei bestimmen
28.11.2007 16:30:03
Rudi
Hallo,
eine Möglichkeit:

Sub tt()
Dim n As Long, text As String
Open "c:\temp\test.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, text
n = n + 1
Loop
Close #1
MsgBox n
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Zeilenzahl einer txt-datei bestimmen
28.11.2007 17:12:52
Jochen
Hallo zusammen,
danke für die schnelle Antwort. leider habe ich zwei Dinge vergessen zu sagen:
1) ich habe scho ein skript, daß mir aber zu lange dauert:
Set Dat = Fso.OpenTextFile(Filename, 1, False)
Do While Dat.AtEndOfStream True
txt = Dat.ReadLine
Zeilenzahl = Zeilenzahl + 1
Loop
Dat.Close
Es wird halt wirklcih jede zeile gelesen.
2) Die Dateien die ich auswerten möchte haben alle so um die 700.000 Zeilen. Also sollte es nicht zuuuu lange dauern.
kennt evtl. jemand eine schnellere Variante?
Dankää
Jochen

Anzeige
AW: Zeilenzahl einer txt-datei bestimmen
28.11.2007 19:40:00
Josef
Hallo Jochen
schneller wird's nicht gehen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Zeilen()
'Quelle: http://www.activevb.de/tipps/vb6tipps/tipp0611.html
Dim Path As String
Dim z As Long

Path = "F:\Office\1000000lines.txt"

z = GetLinesFromTextFile(Path)

MsgBox z & " Zeilen"
End Sub

Public Function GetLinesFromTextFile(Path As String) As Long
'zählt die LinesCount einer Textdatei, die Datei muss vorhanden sein

Dim FNr As Integer
Dim FileLength As Double
Dim BytesRead As Double
Dim ByteToRead As Long
Dim s As String
Dim LinesCount As Long

'ist die Datei leer
If FileLen(Path) = 0 Then
    Exit Function
End If

'Block zum Auslesen, 64K
ByteToRead = 256& * 256&
'eine Pipe zuweisen
FNr = FreeFile
'Datei binär öffnen
Open Path For Binary As #FNr
'Dateilänge feststellen
FileLength = LOF(FNr)

'Blockweise auslesen
Do
    If FileLength = BytesRead Then
        'alles ausgelesen
        Exit Do
    ElseIf (FileLength - BytesRead) < ByteToRead Then
        'den letzten Rest bestimmen
        ByteToRead = FileLength - BytesRead
    End If
    
    'Variable bereitstellen in Blockgrösse
    s = Space(ByteToRead)
    'Block einlesen
    Get #FNr, BytesRead + 1, s
    'LinesCount in Subroutine feststellen
    LinesCount = LinesCount + GetLinesFromString(s)
    'wie weit wurde bereits eingelesen
    BytesRead = BytesRead + ByteToRead
Loop
'der Zähler muss um 1 erhöht werden
LinesCount = LinesCount + 1

'war das letzte Zeichen ein Trenner ?
s = Space(1)
Get #FNr, FileLength, s
If s = Chr(10) Then
    'ja, letzte Zeile nicht gefüllt
    LinesCount = LinesCount - 1
End If
Close FNr

'Wert an Function
GetLinesFromTextFile = LinesCount
End Function

Private Function GetLinesFromString(s As String)
' Zeilenumbrüche in einem String zählen,
' es wird nur der LineFeed ausgewertet

Dim i As Long, j As Long, z As Long

i = 1
Do
    'suche nach Zeilentrenner
    j = InStr(i, s, Chr(10))
    If j = 0 Then
        'nix (mehr) da
        Exit Do
    End If
    'add
    z = z + 1
    'neue Position
    i = j + 1
Loop

'Wert an Function
GetLinesFromString = z
End Function

Gruß Sepp

Anzeige
AW: Zeilenzahl einer txt-datei bestimmen
28.11.2007 19:41:00
Rudi
Hallo,
mein Script dürfte bei 700.000 Zeile n ca 1 Sekunde durch sein.
Gruß
Rudi
Eine Kuh mach muh, viele Kühe machen Mühe.

Zeilenzahl einer txt-datei bestimmen -CLOSED-
28.11.2007 21:01:00
Jochen
Hallo ihr beiden,
Noch mal "Danke" für Eure Rückmeldung. Das Skript von Sepp funktioniert gut, Deines Rudi, hängt sich bei mir auf.
Trotzdem Dank für Euer Angagement.
Schönen Abend noch
Jochen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige