Zeilenumbrüche in Visual Basic?
Hallo zusammen, vorweg mir sind "vbNewLine" und Streamwriter.WriteLine bekannt aber ich habe folgendes Problem (vielleicht missverstehe ich auch oben genannte Dinge): Ich arbeite an einem Programm (für den privaten Gebrauch), das Einträge speichern und diese mittels eines Streamwriters in eine Textdatei schreiben soll. entsprechender Code: Try
Dim fs As New System.IO.FileStream("GamemasterSave.txt", IO.FileMode.Create)
Dim sw As New System.IO.StreamWriter(fs)
For Each h As String In oPathList
sw.WriteLine(h + ",")
Next
sw.Close()
Catch ex As Exception
MessageBox.Show("Beim Speichern ist ein Fehler aufgetreten.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Das Problem ist, dass kein einfacher Zeilenumbruch eingefügt wird, sondern neben dem Zeilenumbruch noch eine weitere Zeile, was bei einer Funktion der Anwendung Probleme verursacht, die ich in der Textdatei ausbessern muss. Es funktioniert richtig, wenn ich nur "Write" verwende, aber ich finde es so schöner, wenn ich mal etwas in der Textdatei suchen muss/will. Danke schon mal im voraus.
3 Antworten
So ganz versteh ich dein Problem noch nicht, aber was ist, wenn du einfach in "h" mit replace enter entfernst, hab ewig nix mehr in vb gemacht
also sowas (ungetestet, sollte aber gehen) z.B.
h = h.Replace(vbCr, "").Replace(vbLf, "")
Danke, es sieht so aus, dass das das Problem gelöst hat.
alter.... ich hab vor fast 15 jahren mal als vb-programmierer gearbeitet. ich glaub ich hab zeilenumbrüche immer direkt angegeben mit char(10) und char(13). also return und new line (wenn ichs noch richtig im kopf hab).
schon mal mit vbcrlf versucht?
Also wenn du den Code wie oben aufgeführt ausführst dann bekommst du noch ne leere Zeile dazwischen? Ohne Zeilenumbruchsfunktion?
https://docs.microsoft.com/de-de/dotnet/api/System.IO.StreamWriter?view=netframework-4.7
Hier in dem Beispiel wirds genauso gemacht.
Ohne Zeilenumbruchsfunktion. Also geh ich davon aus dass WriteLine das automatisch macht.
liefert bei mir das gleiche Ergebnis: Zeilenumbruch+ leere Zeile zwischen den Einträgen