# Nachgehakt: Leerzeilen aus Textdatei entfernen !



## Benson27 (10. August 2010)

Hallo zusammen !

Hier gibt es ein Posting, in dem nachgefragt wurde, wie Leerzeilen aus einer Textdatei entfernt werden können.
Dies funktioniert leider nur innerhalb der Textstrukturen.
Wenn ich über vb eine Textdatei exportiere und diese über close schliesse, erscheint im Notepad in der letzten Zeile eine Leerzeile. 

Wißt ihr, wie ich in vb nachträglich diese Leerzeile entfernt bekomme ? Es scheint so, als ob die close Anweisung gleichzeitig ein vbCRLF auslöst.

Für eure Hilfe besten Dank im voraus !


----------



## Yaslaw (10. August 2010)

Poste doch mal dein Code....


----------



## Benson27 (10. August 2010)

Sieht in etwa so aus : Datei 1 enthält Leerzeichen, die ich über Trim entferne. Die Enddatei Test_Neu
hat im Notepad am Ende die störende Leerzeile.

Sub text()
Dim strZeile
Dim strfile, strfileneu As String

strfile = "U:/Test.txt"
strfileneu = "U:/Test_neu.txt"

Open strfile For Input As #1
Open strfileneu For Output As #2

Do While Not EOF(1)
    Line Input #1, strZeile
    strZeile = Trim$(strZeile)
    Print #2, strZeile
Loop

Close #1    ' Datei schließen.
Close #2
End Sub


----------



## Yaslaw (11. August 2010)

Print etc schreiben in dem Fall wohl eine neue Zeile.

Ich persönlich arbeite lieber mit dem FileSystemObject


```
Public Sub test333()
    Dim strZeile
    Dim strfile, strfileneu As String
    Dim fso As New FileSystemObject
    Dim fInput As TextStream
    Dim fOutput As TextStream
On Error GoTo Err_handler

    strfile = "C:/Temp/c1.txt"
    strfileneu = "C:/Temp/c1n.txt"
    
    Set fInput = fso.OpenTextFile(strfile, ForReading)
    Set fOutput = fso.OpenTextFile(strfileneu, ForWriting, True)
    
    Do While fInput.AtEndOfStream = False
        strZeile = fInput.ReadLine
        If fInput.AtEndOfStream Then
            Call fOutput.Write(strZeile)
        Else
            Call fOutput.WriteLine(strZeile)
        End If
    Loop

Exit_Handler:
    On Error GoTo 0
    fInput.Close
    fOutput.Close
    Set fInput = Nothing
    Set fotuput = Nothing
    Set fso = Nothing
    Exit Sub

Err_handler:
    MsgBox Err.Description
    GoTo Exit_Handler
End Sub
```


----------



## Benson27 (11. August 2010)

Vielen Dank. Klappte sehr gut. Einziger Haken ist, daß bei großen Textdateien die Performance etwas leidet. Aber was soll's. Auf die paar Sekunden kommt es auch nicht mehr an.

Viele Grüße und nochmals besten Dank.


----------

