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());
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)
Hi,
mit Environment.NewLine bekommst du einen String, der einen Zeilenumbruch hervorruft.
LG
@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...
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)
Funktioniert jetzt auch bei mir, hatte vorher noch eine Lappalie versteckt gehabt.
Besten Dank 😃
hatte vorher noch eine Lappalie versteckt gehabt.
Daher wäre es hilfreich nicht irgendeinen Code zu zeigen sondern deinen 😉