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í.

Diskuze: Mazání ze souboru po označení v listboxu

Aktivity
Avatar
standa.dolezal:11.12.2012 1:11

Ahoj, potřeboval bych poradit.
Mám soubor, kam zapisuji text ve tvaru : text-text
do listboxu si soubor vypíšu a potřeboval bych, aby když jeden řádek(text-text) v listboxu označím, pak kliknu na tlačítko tak aby se mi označený záznam smazal.Netušíte někdo jak na to?

 
Odpovědět
11.12.2012 1:11
Avatar
Luboš Běhounek Satik:11.12.2012 1:47

Budeš muset celý soubor uložit znova s úpravami, které jsi provedl, v souboru nejde vymazat jen kousek.
Takže nejspíš nejdřív normálně smazat řádek z ListBoxu a pak uložit obsah celého ListBoxu znova do souboru.

Editováno 11.12.2012 1:48
Nahoru Odpovědět
11.12.2012 1:47
https://www.facebook.com/peasantsandcastles/
Avatar
matesax
Tvůrce
Avatar
Odpovídá na standa.dolezal
matesax:11.12.2012 7:36

Preferuji - a nejsem sám - metodu - jednou načíst a jedenou uložit... Při spuštění souboru si načti data ze souboru - s parametrem OpenOrCreate a nejspíše v cyklu naplň ListBox. Pak se starej již jen o řádky v ListBoxu. A až ve FormClosing dej zápis s parametrem Create - takto přepíšeš původní soubor - dle řádků v ListBoxu. Pro tento účel bych si přetížil ToString s využitím LINQ - ale to je již na tobě... A soubor měj v AppData -

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
Editováno 11.12.2012 7:37
 
Nahoru Odpovědět
11.12.2012 7:36
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:11.12.2012 8:45

Možná nejsi sám, ale se mnou nepočítej. Preferuji databázi. Jinak nemáš jistotu, že se ti konfigurace neztratí.

Nahoru Odpovědět
11.12.2012 8:45
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:11.12.2012 8:50

Databázi? Tak jestli tam má jen menší textové položky, tak mi přijde jednnodušší ten soubor. Ovšem mě se tam nelíbí ani ten ListBox - ovšem to se tu neřešilo, tak jsem to ani já nepitval...

 
Nahoru Odpovědět
11.12.2012 8:50
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:11.12.2012 8:54

Používám i dvouřádkovou databázi. Na disku zabírá jen pár bytů a práce s ní je jednodušší a spolehlivější než se souborem.

Nahoru Odpovědět
11.12.2012 8:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
standa.dolezal:11.12.2012 11:01

Mockrát děkuji za tipy :)...Pro mě bude asi nejjednodušší smazat záznam z list boxu a pak přepsat celý soubor tím, co mi zůstane v listboxu, nemám tam tolik údajů.
Teď jsem nenapsal by mi někdo, jak by to mělo vypadat?Moje snahy jsou zatím stále marné a hází mi to trošku něco jiného :D

 
Nahoru Odpovědět
11.12.2012 11:01
Avatar
matesax
Tvůrce
Avatar
Odpovídá na standa.dolezal
matesax:11.12.2012 15:14

Už jsem to napsal - v konstruktoru přečti soubor s parametrem OpenOrCreate a vyplň jeho údaji příslušný ListBox. Ve FormClosing eventu pak zapiš s parametrem Create...

using (Stream(Writer/Reader) xxx = new Stream(Writer/Reader)(new FileStream("cesta", FileMode.(OpenOrCreate/Create))))
Editováno 11.12.2012 15:15
 
Nahoru Odpovědět
11.12.2012 15:14
Avatar
Eldest
Tvůrce
Avatar
Odpovídá na Kit
Eldest:11.12.2012 19:43

Kite mohl bys sem nějakou ukázku JEDNODUCHÉHO! :D programu, kde takovou DB používáš hodit? Díky (nebo napiš do zpráv, pokud bys mi to byl třeba ochotný poslat na e-mail)

 
Nahoru Odpovědět
11.12.2012 19:43
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Eldest
Kit:11.12.2012 20:07

Něco takového jsem se snažil popsat na
http://www.itnetwork.cz/…ni-jen-mysql
ale pokračování, ve kterém se čte i zapisuje, jsem ještě nedokončil.

V C# neprogramuji, budeš si to muset v knihovnách najít sám. Ale vím, že C# má také nějakou jednoduchou databázi, která se dá použít podobným způsobem.

Nahoru Odpovědět
11.12.2012 20:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na matesax
standa.dolezal:11.12.2012 23:27

super, mám to.Díky :)

 
Nahoru Odpovědět
11.12.2012 23:27
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:12.12.2012 7:17

Může použít i tu tvou - s MySQL není žádný problém... Ale já bych použil normální lokální DB - pěkně s LINQ...

http://www.codeproject.com/…al-with-MySQ

Editováno 12.12.2012 7:19
 
Nahoru Odpovědět
12.12.2012 7:17
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 12 zpráv z 12.