Avatar
Wadds
Člen
Avatar
Wadds:

Zdravím. Potřeboval bych poradit nějaký příkaz s kterým načtu obsah listboxu (tedy veškeré data do něj dříve napsaná a zatím viditelná) do nějaké proměnné string. Děkuji za rady.

 
Odpovědět 30.3.2014 0:05
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Wadds
Jan Vargovský:

ListBox je kontrolka na kolekce, opravdu chceš vrátit všechny data v jednom jediném stringu? Btw získat data a nebo získat data viditelná je rozdíl, tak řekni kterou variantu chceš.

 
Nahoru Odpovědět 30.3.2014 0:24
Avatar
rwn
Člen
Avatar
Odpovídá na Wadds
rwn:

Tak pokud to chceš Tak, jak píšeš, tak si všechny položky do jednoho stringu můžeš zapsat třeba takto:

for (int i = 0; i < listBox1.Items.Count; i++)
{
    mojeData += listBox1.Items[i].ToString();
}

s tím, že mojeData bude nějaka privatni proměnná třeba, ale nevim k čemu by ti to bylo. :D Nebo si to chceš ukládat, aby se dalo s jednotlivýma položkama pracovat? :)

Nahoru Odpovědět 30.3.2014 0:32
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Wadds
Člen
Avatar
Wadds:

Potřeboval bych celej listBox (každou řádku na které je něco napsaného) přepsat do souboru pomoci .WriteLine() vlastně je uložit do souboru. Podle mě to je něco primitivního ale bohužel nevím jak se to zapisuje u mě velmi častý problém :D

zapsal jsem to takhle

string item = (string)this.listBox1.SelectedItem;

if (item != null)
{
    sw.WriteLine(item);
}

ale myslím, že my to zapisuje jen poslední řádek nebo vybraný řádek teď nevím. A nebo to nejde vůbec :D ještě bych mohl...

FileStream fs = new FileStream("score.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);


string item = (string)this.listBox1.SelectedItem;

if (item != null)
{
    sw.WriteLine(item);
}

sw.Close();

snad to napoví

Editováno 30.3.2014 1:31
 
Nahoru Odpovědět 30.3.2014 1:30
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Wadds
Jan Vargovský:

Tak buď chceš napsat označený řádek a nebo všechny...

using (StreamWriter sw = new StreamWriter("score.txt"))
    foreach (var item in listBox1.Items)
        sw.WriteLine(item);
Editováno 30.3.2014 1:37
 
Nahoru Odpovědět 30.3.2014 1:37
Avatar
Wadds
Člen
Avatar
Wadds:

Jo to je ono. :O
Jen bych potřeboval trochu vysvětlit kód a taky nevím proč tam nemusí být

sw.Close();

a co přesně je a co dělá

using

a kombinace

foreach (var item in listBox1.Items)

Jinak perfektní pomoc, už mi to běhá tak jak jsem chtěl.

Editováno 30.3.2014 1:58
 
Nahoru Odpovědět 30.3.2014 1:58
Avatar
Paradise
Redaktor
Avatar
Paradise:

using právě nahrazuje třeba to sw.Close(). Jakmile se příkazy v using bloku provedou, tak systém uvolní všechny použité zdroje z using bloku...

 
Nahoru Odpovědět 30.3.2014 10:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.