Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Wadds
Člen
Avatar
Wadds:30.3.2014 0:05

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ý
Tvůrce
Avatar
Odpovídá na Wadds
Jan Vargovský:30.3.2014 0:24

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
rawen
Člen
Avatar
Odpovídá na Wadds
rawen:30.3.2014 0:32

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:30.3.2014 1:30

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ý
Tvůrce
Avatar
Odpovídá na Wadds
Jan Vargovský:30.3.2014 1:37

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:30.3.2014 1:58

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
Tvůrce
Avatar
Paradise:30.3.2014 10:45

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.