Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1000to1004
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
Inhaltsverzeichnis

Textfile letzte Zeile

Textfile letzte Zeile
22.08.2008 10:08:12
Petra
Guten Morgen allerseits
mein Beitrag von gestern ist noch offen
https://www.herber.de/forum/messages/1003499.html
ich möchte meine Frage jetzt mal anders formulieren. Ich speichere ein Excelsheet als Textdatei ab. Wie ich auch aus mehreren Beiträgen entnehmen konnte, fügt Excel beim "als Text speichern" am Ende eine Leerzeile ein. Dies muß verhindert werden.
Meine Idee: das Textfile nochmal öffnen, untersuchen, ob letzte Zeile eine Leerzeile ist und diese dann löschen. Das Ganze sollte als Makro funktionieren! Doch wie? Meine bescheidene Kenntnisse reichen da nicht aus und hier im Archiv habe ich auch nichts Brauchbares gefunden.
Kann mir jemand helfen?
Liebe Grüße und noch einen schönen, erfolgreichen Tag!
Petra

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textfile letzte Zeile
22.08.2008 10:39:00
Christian
So ungefähr?
open "tabelle.txt" for input as #1
open "tabelle2.txt" for output as #2
dim tmp as string
do
line input #1, tmp
if eof(1) and tmp = "" then
close #2
else
print #2, tmp
end if
loop until eof(1)
close #1
Das kleine Makro erzeugt eine 2. datei die dann nach deinen angaben richtig sein sollte. Falls im weiteren die alte Datei ersetzt werden sollte kann man noch folgendes dran hängen:
kill "tabelle.txt"
filecopy "tabelle2.txt", "tabelle.txt"
kill "tabelle2.txt"
(die hier gewählten Dateinamen sind natürlich anzupassen ;-) )

Anzeige
AW: Textfile letzte Zeile
22.08.2008 11:05:00
Petra
https://www.herber.de/bbs/user/54813.txt
Hi Christian
ich hab mal eine Beispiel txt hochgeladen und hier mein Makro

Sub test()
Open "c:\Temp\kopie.txt" For Input As #1
Open "c:\Temp\kopie3.txt" For Output As #2
Dim tmp As String
Do
Line Input #1, tmp
If EOF(1) And tmp = "" Then
Close #2
Else
Print #2, tmp
End If
Loop Until EOF(1)
Close #1
MsgBox "Fertig"
End Sub

das Makro löscht bei mir jedoch ein bischen zuviel
Kannst Du mal nachgucken?
Grüße Petra

Anzeige
AW: Textfile letzte Zeile
22.08.2008 11:25:41
ede
hallo petra,
teste mal die kurzversion,
Open "c:\Temp\kopie.txt" For Input As #1
Open "c:\Temp\kopie3.txt" For Output As #2
Dim tmp As String
Do
Line Input #1, tmp
If Len(tmp) > 1 Then Print #2, tmp
Loop Until EOF(1)
Close #1
Close #2
MsgBox "Fertig"
End Sub
gruss

AW: Textfile letzte Zeile
22.08.2008 11:28:00
Christian
Hallo Petra! Hab mir mal deine text-datei angeschaut und hab festgestellt das die letzte zeile von excel bereits als EOF (EndOfFile) annimmt. Demnach kann man einfach folgendes schreiben:

Sub test()
Open "c:\Temp\kopie.txt" For Input As #1
Open "c:\Temp\kopie3.txt" For Output As #2
Dim tmp As String
Dim tmp As String
Do
Line Input #1, tmp
Print #2, tmp
Loop Until EOF(1)
Close #2
Close #1
MsgBox "Fertig"
End Sub


Und wie gesagt, falls die alte datei ersetzt werden sollte kann man vor "End Sub

" noch:
kill "c:\Temp\kopie.txt"
filecopy "c:\Temp\kopie3.txt", c:\Temp\kopie.txt
kill "c:\Temp\kopie3.txt"
schreiben.
Aber so wie mir das scheint hängt sich SAP eher an dem sonderzeichen in der letzten Zeile auf und nicht einfach nur am Zeilenumbruch. Kann auch sein das es ein LF (LineFeed) ist das beim neuschreiben der text-datei einfach umgewandelt wird. Jedenfalls sollte das nach dem einfachen ablaufen und neuschreiben der datei korrekt hochzuladen sein.
Wenn nicht einfach noch mal fragen, dann schau ich mal wie man einfach grundsätzlich die letzte Zeile unterbindet.
Gruß Chris

Anzeige
AW: Textfile letzte Zeile
22.08.2008 11:34:42
Christian
Sorry, da ist was beim copy-pasten verdoppelt worden. das Makro lautet korrekter weise:

Sub test()
Open "c:\Temp\kopie.txt" For Input As #1
Open "c:\Temp\kopie3.txt" For Output As #2
Dim tmp As String
Do
Line Input #1, tmp
Print #2, tmp
Loop Until EOF(1)
Close #2
Close #1
MsgBox "Fertig"
End Sub


AW: Christian und Ede
22.08.2008 12:25:00
Petra
Vielen DANK Euch beiden, klappt vorzüglich!
Vielleicht wißt Ihr auch noch Rat bei meinem neuen Thread (siehe paar Zeilen weiter oben) - Punkt / Komma Tausch im Textfile?
Liebe Grüße Petra

AW: Textfile letzte Zeile
22.08.2008 10:46:00
Erich
Hi Petra,
meine Antwort findest du im vorigen Thread.
Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Textfile letzte Zeile
22.08.2008 11:08:39
Petra
Hallo Erich
hier Hintergrund Infos
ich brauche die Textdatei für ein upload nach SAP. SAP ist so pingelig und nimmt, bzw. schmeißt die letzte Zeile, da Leerzeile raus und meldet Fehler.
Ich brauch also eine Textdatei ohne Leerzeile am Ende!
Liebe Grüße Petra

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige