Skriva över en list till .txt C# (Nybörjare)

Permalänk
Medlem

Skriva över en list till .txt C# (Nybörjare)

Hejsan!

För enkelhetens skull, säg att jag har skrivit ett program där man kan handla mat. När jag klickar på en vara så läggs varan till i en list.

När jag är klar, lagt till de varor jag vill ha och har tagit bort de varor jag inte vill ha, hur skriver jag över listen till ett txt-dokument?

Det som jag är förstår är att det ska vara i stil med:

StreamWriter matlista = new StreamWriter("matlista.txt") int x = 0; while (Det fortfarande står saker i listen) { writer.Writeline(Position x i listen); x++ }

Mina frågor är alltså:
Vad är det man ska skriva för att loopen ska fortsätta tills det inte längre står något i listen?
Funkar min lösning för att ta nästa steg i listen eller finns det en smidigare lösning?
Tänker jag rätt överhuvudtaget?

Visa signatur

CITERA OM DU VILL HA SVAR! :)

Permalänk
Inaktiv

Kolla på foreach.

Permalänk
Medlem
Skrivet av anon150287:

Kolla på foreach.

Jag har kollat på det men jag fick inte till det utan att ha bestämt ett antal, det blev fel eftersom listen kan ha 2 värden ena gången och 2000 andra gången.

Visa signatur

CITERA OM DU VILL HA SVAR! :)

Permalänk
Medlem

Så här ser min kod ut vid sparning av text från en listview dock har jag kolumner men jag är lite slut i huvudet just nu men du listar nog ut det samt att min kod är inte städad ännu då det är pågående hobby projekt men med detta borde du få till ditt

string st1 = string.Empty;
FileStream file = new FileStream("xmMediaLibrary.ini", FileMode.Create, FileAccess.Write);

StreamWriter sw = new StreamWriter(file);
for (int col = 0; col < listFilm.Columns.Count; col++)
{
st1 += (" " + listFilm.Columns[col].Text.ToString() + "\t");
}
sw.WriteLine(st1);
st1 = string.Empty;
for (int row = 0; row < listFilm.Items.Count; row++)
{
st1 = string.Empty;
for (int col = 0; col < listFilm.Columns.Count; col++)
{
st1 += string.Format("{0},\t", listFilm.Items[row].SubItems[col].Text.ToString());
}
st1 = st1.Substring(0, st1.Length - 2);
sw.WriteLine(st1);

}
sw.Flush();
sw.Close();

Visa signatur

PS4: Xnetium (Street fighter V, Diablo 3 etc...)
Citera för svar

Permalänk
Medlem
Skrivet av Eriksson(X):

Så här ser min kod ut vid sparning av text från en listview dock har jag kolumner men jag är lite slut i huvudet just nu men du listar nog ut det samt att min kod är inte städad ännu då det är pågående hobby projekt men med detta borde du få till ditt

string st1 = string.Empty;
FileStream file = new FileStream("xmMediaLibrary.ini", FileMode.Create, FileAccess.Write);

StreamWriter sw = new StreamWriter(file);
for (int col = 0; col < listFilm.Columns.Count; col++)
{
st1 += (" " + listFilm.Columns[col].Text.ToString() + "\t");
}
sw.WriteLine(st1);
st1 = string.Empty;
for (int row = 0; row < listFilm.Items.Count; row++)
{
st1 = string.Empty;
for (int col = 0; col < listFilm.Columns.Count; col++)
{
st1 += string.Format("{0},\t", listFilm.Items[row].SubItems[col].Text.ToString());
}
st1 = st1.Substring(0, st1.Length - 2);
sw.WriteLine(st1);

}
sw.Flush();
sw.Close();

oj, fattar ingenting men jag fick till det med:

StreamWriter matlista = new StreamWriter("matlista.txt", true); foreach (valda p in program.Form1.varor) { bokskit.Write(p.Namn + " " + p.Pris + Environment.NewLine); } matlista.Close();

Alla varor ligger alltså i en annan form, det funkar bra så här

Tack dock för all hjälp

Visa signatur

CITERA OM DU VILL HA SVAR! :)

Permalänk
Medlem

ibland behöver man bara se nått helt annat och så klingar det till i huvudet på sitt riktiga problem så har man löst det lycka till med projektet ditt

Visa signatur

PS4: Xnetium (Street fighter V, Diablo 3 etc...)
Citera för svar