Laden...

String mit Zeilenumbruch in Textdatei schreiben

Erstellt von marv90 vor 6 Jahren Letzter Beitrag vor 6 Jahren 4.827 Views
M
marv90 Themenstarter:in
3 Beiträge seit 2017
vor 6 Jahren
String mit Zeilenumbruch in Textdatei schreiben

Hallo,
ich würde gerne eine String Liste in eine Textdate speichern. Dabei sollen die Zeilenumbrüche beibehalten werden. Aktuell werden alle Werte einfach nur mit Leerzeichen hintereinander geschrieben.
Wie bekommt man die Zeilenumbrüche mit in die Textdatei?


List<string> test= new string[] {""}.ToList();
for (int x = 0; x < Convert.ToInt32(textbox1.Text)-1; x++) 
{
   test.Add((*(p1 + p2[x].XEntry.ToInt64())).ToString() + " "); 
} 
System.IO.File.WriteAllLines(@"C:\" + System.DateTime.Now.ToString("HHmmss") + ".txt", test.ToArray());

286 Beiträge seit 2011
vor 6 Jahren

Entweder via StringBuilder oder wenn du es direkt in den String schreiben willst via Escape-Sequenzen

Edit:
Btw du erstellst ein Array, dass du mit ToList() in eine List umwandelst, warum nicht direkt so:


new List<string>(){"a", "b"};

Gleiches gilt für WriteAllLines, welches eine Überladung für Lists hat. Das ToArray() kannst du dir also auch sparen.

2+2=5( (für extrem große Werte von 2)

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

mit Environment.NewLine bekommst du einen String, der einen Zeilenumbruch hervorruft.

LG

M
marv90 Themenstarter:in
3 Beiträge seit 2017
vor 6 Jahren

@emuuu Danke für den Hinweis, habe ich so geändert

@Taipi88 Wenn ich in den Teil in der Schleife zu

test.Add((*(p1 + p2[x].XEntry.ToInt64())).ToString() + " " + Environment.NewLine);

ändere, hat das leider keine Auswirkungen auf den Text in der Textdatei. Mit "\n" hab ich das auch schon ausprobiert...

286 Beiträge seit 2011
vor 6 Jahren

Mit "\n" hab ich das auch schon ausprobiert.

"\r\n"

Den Ansatz brauchst du aber eigentlich für WriteAllLines nicht. Die Escapesequenzen/StringBuilder benötigst du, wenn du z.B. File.WriteAllText nehmen würdest.


            int y;
            if (int.TryParse(textbox1.Text, out y))
            {
                for (int x = 0; x < y - 1; x++)
                {
                    test.Add((*(p1 + p2[x].XEntry.ToInt64())).ToString()+" ");
                }
                File.WriteAllLines(@"C:\" + System.DateTime.Now.ToString("HHmmss") + ".txt", test);
            }

Funktioniert problemlos

2+2=5( (für extrem große Werte von 2)

M
marv90 Themenstarter:in
3 Beiträge seit 2017
vor 6 Jahren

Funktioniert jetzt auch bei mir, hatte vorher noch eine Lappalie versteckt gehabt.
Besten Dank 😃

C
2.121 Beiträge seit 2010
vor 6 Jahren

hatte vorher noch eine Lappalie versteckt gehabt.

Daher wäre es hilfreich nicht irgendeinen Code zu zeigen sondern deinen 😉