All About TXT.Datein

TheLuCKer

Mitglied
Hallo Jungs,

kann mir jemand helfen, wie ich es z.B. schaffe, dass meine txt.Datei keine Leerzeilen am Schluss haben. Ich habe eine Listbox mit z.B. 6 Einträgen. Wenn ich diese in ein TextBox speichere, dann hab ich in meiner Textbox jedes mal am schluss eine unnötige Leerzeile. Wie aknn ich dies ändern. Es darf und soll keine Leerzeile am schluss sein, wie schaff ich das. Danke im Vorraus

Jonny
 
Ja, dass is dieser:

Private Sub mnuListeSpeichern_Click()

On Error Resume Next
'// Dieser Befehl bezweckt, wenn eine Sache nicht ausgeführt werden kann, macht er mit dem nächsten Auftrag weiter
CDSpeichern.Filter = "KeyListen (*.KeL)|*.KeL"
'// Gibt den Filter für den Auswahlbereich an
CDSpeichern.ShowSave
'// Zeigt ein AuswahlDialog um die Liste zum Speichern

For a = 0 To listName.ListCount - 1
sList = sList & listName.List(a) & vbCrLf
sList = sList & listKeys.List(a) & vbCrLf
Next a
'// Es wird abwechselnd aus zwei Listen die Zeilen ausgelsen

If Not sList = "" Then _

Open CDSpeichern.FileName For Output As #1
Print #1, sList & vbCrLf
Close #1
'// Speichert in sList als Datei im Filename
End If
End Sub


Bitte Hilf Mir, is echt wichtig

PS: Sind zwei Listboxen und sie werden abwechselnd zeilenweise in eine Textdatei gespeichert! Danke im Vorraus
 
Schau her, ist ganz einfach. Der Fehler liegt hier:
Code:
For a = 0 To listName.ListCount - 1
sList = sList & listName.List(a) & vbCrLf
sList = sList & listKeys.List(a) & vbCrLf
Next a

Wenn also "a" den Wert "listName.ListCount - 1" erreicht hat, dann wird die Schleife sozusagen als letztes Mal durchlaufen und somit der letzte Text an den String "sList" angehängt. Trotzdem hängst du aber noch einen Zeilenumbruch "vbCrLf" an, was eine Leerzeile bewirkt. Entweder schneidest du nach dem Durchlaufen der Next-Schleife die letzten 2 Zeichen ab, was dem überflüssigen "vbCrLf" entsprechen würde oder du überprüfst gleich in der Schleife, ob noch ein Zeilenumbruch angehängt werden muss:
Code:
For a = 0 To listName.ListCount - 1
sList = sList & listName.List(a) & vbCrLf
sList = sList & listKeys.List(a) 
If a <> listName.ListCount - 1 then sList = sList & vbCrLf
Next a

Außerdem hast du in dieser Zeile auch noch einen "Fehler":
Code:
Print #1, sList & vbCrLf
Schließlich hängst du mit & vbCrLf ausdrücklich noch eine Leerzeile an den Text an. Das musst du natürlich auch weglassen:
Code:
Print #1, sList
 
hmmm......

aber jetzt ist es immer noch eine zeeile zu viel, wenn ich die deit dann zum beispiel anschaue, also im edito, steht immer noch eine zeile zuviel da, also es hat geklappt, dass anstatt zwei leerzeilen nur noch eine da ist, aber die muss ich auch noch rauskriegen, also schonmal danke im vorruas. bitte helft mir

Jonny
 
Am Ende der Datei ist immer eine Leerzeile, da wüsste ich nicht wie man das ändern kann. Probier einfach testweise das hier:
Code:
    Open "D:\Test.txt" For Output As #1
    Print #1, "Hallo"
    Close #1
Obwohl hier nur eine Zeile insgesamt geschrieben wird, wirst du in der Datei 2 Zeilen vorfinden.
 
hmmm.......

ok, dass kann sein, aber wie kann ich es machen (schaffen), dass keine Leerzeile beim Laden entsteht. Ich Lade nämlich den Text in eine Listbox, und es ist immer eine Leerzeile dort, schaffe ich es, dass sie beim Laden nicht geladen wird
 
Hi,

lösche nach dem Laden die letzte Zeile in der Listbox... Syntax kann ich Dir nicht sagen, weil ich zu lange aus VB draußen bin, aber ich bin sicher, dass es geht. ;)

Gruß
 
Noch etwas geschickter als Datics Vorschlag: Überprüfe einfach direkt beim Laden, ob die aktuell geladene Zeile eine Leerzeile ist. Poste doch den Code zum Laden, dann bau ich dir die Abfrage ein.
 
Zurück