Letzte Zeile in Textdatei immer leer?!

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
Bild

Betrifft: Letzte Zeile in Textdatei immer leer?!
von: Florian
Geschrieben am: 23.02.2005 14:49:27
Hallo Forum,
im Rahmen eines kleinen Programmes exportiere ich die Ergebnisse in eine Textdatei.
Leider ist die letzte Zeile immer eine Leerzeile und das darf in meinem Fall auf keinen Fall geschehen.
Hat einer eine Idee, wie ich die da wegbekomme?
Anscheinend ist eine leere Zeile schon beim Erstellen dort drin.
danke und Gruß aus Aachen,
Florian

Bild

Betrifft: AW: Letzte Zeile in Textdatei immer leer?!
von: MichaV
Geschrieben am: 23.02.2005 15:01:53
Hi,
das liegt wohl an Deinem Code. Ohne Beispieldatei wird Dir keiner helfen können.
Gruß
Bild

Betrifft: AW: Letzte Zeile in Textdatei immer leer?!
von: Florian
Geschrieben am: 23.02.2005 15:06:05
Hallo,
bestimmt liegt es an meinem Code, den ich im Anschluß anhängen werde.
Allerdings lautete meine Frage: "Wie lösche ich eine Zeile aus einer Textdatei?"
Gruß aus Aachen,
Florian
NAME = InputBox("Wie soll Ihre Datei heißen?")
DATEI1 = ActiveWorkbook.Path & "\" & NAME & ".txt"
Open DATEI1 For Output Access Write As #1
For k = 1 To iAnzahlMesspunkte * 2 + hMax - iAnzahlMesspunkte / 2 Step iAuflösung2
If IsEmpty(arrFolgeGDurchschnitt(k, 2)) Then
GoTo 1
Else
Print #1, Trim(arrFolgeGDurchschnitt(k, 2))
End If
1:
Next k
Close #1
'Modul1.DieLeerzeileEntfernen
MsgBox ("Ihre Daten wurden in die Datei " & NAME & ".txt umgewandelt. Sie finden sie in " & ActiveWorkbook.Path)
Bild

Betrifft: AW: Letzte Zeile in Textdatei immer leer?!
von: MichaV
Geschrieben am: 23.02.2005 15:20:47
Hi,
mit If IsEmpty(arrFolgeGDurchschnitt(k, 2)) prüfst Du doch nur, ob Deine Variable überhaupt einen Inhalt hat. Wenn Sie z.B. " " ist, dann ist Trim(" ")="", also wird eine leere Zeile geschrieben. Ich denke, Du solltest nur schreiben lassen, wenn Trim(arrFolgeGDurchschnitt(k, 2))>""
Ansonsten kannst Du generell aus eine Textdatei bestimmte Zeilen entfernen, wenn Du die Datei Zeile fü Zeile einliest und in eine zweite Datei Zeile für Zeile (bis auf die, die Du löschen willst) wieder ausgibst. Dann mußt Du nur die alte Datei löschen und die neue entsprechend umbenennen.
Hoffe, es hilft.
Gruß.
Bild

Betrifft: AW: Letzte Zeile in Textdatei immer leer?!
von: Florian
Geschrieben am: 23.02.2005 15:34:03
Hallo,
leider macht die Abfrage
wenn trim... > "" keinen Unterschied. Es wird immernoch eine Leerzeile am Ende der txt-Datei ausgegeben. Dein zweiter Vorschlag klappt in meinem Versuch leider auch nicht. Siehe folgender Code:

Sub DieLeerzeileEntfernen()
Dim arr() As String
Dim i As Integer
Dim Dummy As String
Dim ltxt As String
Dummy = Modul1.DATEI1
Open Dummy For Input As #2
Do Until EOF(2)
    Line Input #2, ltxt
    i = i + 1
    ReDim Preserve arr(i)
    arr(i) = ltxt
Loop
Close
Open Dummy For Output As #2
For i = 1 To i - 2
Print #2, arr(i)
Next
Close
End Sub

Haste noch 'ne Idee? Ich hatte mein Glück schonmal mit sendkeys versucht, konnte aber keinen Kontakt zu der txt Datei herstellen.
Gruß,
Florian
Bild

Betrifft: AW: Letzte Zeile in Textdatei immer leer?!
von: Kurt
Geschrieben am: 23.02.2005 16:50:01

Sub test()
Dim ff As Byte
Dim i As Byte
ff = FreeFile
Open "c:\temp\test1.txt" For Output As ff
For i = 65 To 90
Print #ff, Chr(i)
Next
Close
Open "c:\temp\test2.txt" For Output As ff
For i = 65 To 89
Print #ff, Chr(i)
Next
Print #ff, Chr(i), '<---man achte auf das komma
Close
End Sub

Bild

Betrifft: AW: Letzte Zeile in Textdatei immer leer?!
von: Florian
Geschrieben am: 24.02.2005 10:51:30
Hallo Kurt,
danke für Deine Hilfe.
Deine Version funktioniert und verhindert eine Leerzeile am Ende.
Hast Du eine Idee, wie man das Einfügen von leeren Zeichen komplett unterbindet?
Oder müsste man die Leerzeichen über einen Zugriff und sendkeys "^a" & "{END}" & "{BACKSPACE} & "^s" & "%{F4}" entfernen?
Gruß aus Aachen,
Florian
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Letzte Zeile in Textdatei immer leer?!"