Einlesen von Textdateien mit "open for"
12.08.2008 12:14:21
Textdateien
ich möchte aus einer 240MB grossen Textdatei die Zeilen raussuchen, die einen bestimmten String enthalten. Dazu habe ich mir unten aufgelistetes Makro geschrieben.
Ich weiss, dass jede Zeile in der Quelldatei mit einem Zeilenumbruch (im Word dieses P zeichen) beendet ist. Ich habe mir gedacht, jede Zeile einzeln in eine Variable zu lesen, diese zu untersuchen und dann eventuell in Datei 2 zu schreiben. Leider aber liest mir der Befehl "Line Input" die ganze Datei in die Variable ein (nicht 998 Zeichen sondern ewig viel mehr).
Wie muss ich das richtig machen, dass ich mein Ziel erreiche?
Vielen Dank für Eure Hilfe!
Gruss
Claus
Sub TxtEinlesen()
Dim DateiName As String
Dim OutputName As String
Dim ZeilenInhalt As String
Dim SuchText As String
SuchText = "0835080563395000"
Open "h:\temp\CCPR" For Input As #1
Open "h:\temp\testCCPR" For Output As #2
Do While Not EOF(1)
Line Input #1, ZeilenInhalt
Cells(1, 1) = Len(ZeilenInhalt) 'habe ich nur zu Testzwecken eingefügt
If Len(ZeilenInhalt) > 16 Then 'sollte die Zeile weniger Zeichen enhalten als der
Suchtext, gibts keinen Fehler
For z = 1 To Len(ZeilenInhalt) - 16
If Mid(ZeilenInhalt, z, 16) = SuchText Then
Print #2, ZeilenInhalt
Exit For
End If
Next z
End If
Loop
Close #1
Close #2
End Sub