habe folgendes Makro "ZeileLöschenLangsam" gefunden um leere Zeilen in einer Textdatei zu löschen.
Das ganze funktioniert, aber dauert bei großen TextDateien (>20.000 Zeilen) extrem lange.
Ich habe deshhalb das Makro "ZeileLöschenSchnell" geschrieben welches nur wenige Sekunden benötigt um auch aus großen Dateien (>100.000 Zeilen) die leeren Zeilen zu löschen.
Ich glaube die rein technisch elegantere Lösung ist "ZeileLöschenLangsam". Hat jemand eine Idee warum der Code so langsam ist und wie man den beschleunigen kann?
Gruß Joe
Sub ZeileLoeschenLangsam()
Const ForReading = 1
Dim fs As Object, f As Object
Dim pfad As String, txtTmp As String
Dim txt As String
pfad = "c:\temp\p0001.txt" 'Anpassen ***********
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(pfad, ForReading)
Do While f.AtEndOfStream True
txtTmp = f.ReadLine
If Trim$(txtTmp) "" Then _
txt = txt & vbCrLf & txtTmp
Loop
f.Close
Set f = fs.CreateTextFile(pfad, True)
f.Write txt
f.Close
End Sub
Sub ZeileLöschenSchnell()
X = "P0001" 'Anpassen ***********
XFile = "c:\temp\" & X & ".txt" 'Anpassen ***********
XTemp = "c:\temp\" & X & "Temp" & ".txt" 'Anpassen ***********
Name XFile As XTemp
Fif = FreeFile
Open XTemp For Input As Fif
Fof = FreeFile
Open XFile For Output As Fof
While Not EOF(Fif)
Line Input #Fif, textline
If textline "" Then
Print #Fof, textline
End If
Wend
Close Fif
Close Fof
Kill XTemp
End Sub