IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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
Energy
Člen
Avatar
Energy:12.6.2012 12:30

Jak lze udělat, aby si program pamatoval třeba proměnnou i po vypnutí programu?

 
Odpovědět
12.6.2012 12:30
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Energy
David Jančík:12.6.2012 12:58

Uložit do souboru. A pak ji z něj zase načíst.

using (StreamWriter sw = new StreamWriter(new FileStream(@"soubor.txt", FileMode.Create)))
{
  sw.WriteLine("Text");
  sw.Flush();
}
// u načítání se nemusí dávat stream dovnitř, stačí jen cesta k souboru
using (StreamReader sr = new StreamReader(new FileStream(@"soubor.txt", FileMode.Create)))
{
  string s;
  while ((s = sr.ReadLine()) != null) // tato podmínka musí být přesně
  {...}
}
Nahoru Odpovědět
12.6.2012 12:58
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Energy
Kit:12.6.2012 13:56

Nejlépe uložením hodnoty do databáze. Vymýšlet nový formát souboru dnes už nemá význam.

Nahoru Odpovědět
12.6.2012 13:56
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Energy
Neregistrovaný
Avatar
Energy:12.6.2012 14:12

A jak vytvořím a zapisuji databáze?

 
Nahoru Odpovědět
12.6.2012 14:12
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:12.6.2012 14:19

Pro práci s databázemi musíš umět velmi dobře kolekce a dotazy. Zatím použij co radí sczdavos.

Jinak databázím se tu budeme věnovat, ale myslím, že máš ještě čas, je k tomu samozřejmě potřeba znalost objektů a podobně, kterou si můžeš zatím číst a učit, je tu toho spoustu.

Nahoru Odpovědět
12.6.2012 14:19
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Kit:12.6.2012 14:22

Většina programovacích jazyků dnes má nějakou databázi přímo v sobě nebo se dá stáhnout hotová knihovna (často velmi malá), která se k aplikaci přilinkuje.

Ovšem do C# moc nevidím, v něm se převážně asi bude používat MS Access. Mělo by stačit nakouknout do manuálu.

Nahoru Odpovědět
12.6.2012 14:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:12.6.2012 14:25

To jsem netušil, že v C# jsou s tím takové obstrukce. V PHP mám s databázemi méně práce, než s obyčejnými soubory.

Nahoru Odpovědět
12.6.2012 14:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:12.6.2012 14:27

Ano, C# má velmi pěknou embedded databázi, ale bez znalosti OOP nepochopí ORM a bez toho asi nemá smysl s tím vůbec začínat. Asi tuším, na jaké je úrovni a ptá se jen na uložení jedné proměnné.

Máš samozřejmě s DB pravdu, ale prostě je to složitější a to hlavně pro začátečníka.

Nahoru Odpovědět
12.6.2012 14:27
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Kit:15.6.2012 16:37

Kolem ORM je hlavně mnoho řečí. Nejvíc zmatků do toho vkládají ti, kteří se snaží objekty napasovat na relační databáze.

Obráceně to jde mnohem jednodušeji. Stačí myslet relačně a použít k tomu objekty.

Nahoru Odpovědět
15.6.2012 16:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
HAPPY DAY
Člen
Avatar
HAPPY DAY:23.6.2012 11:56

já osobně používám soubory. například teď jsem řešil jednu zakázku pro tvorbu eknih, a moje řešení znělo:
vytvoření webové aplikace, kde jsou všechny textboxy, tlačítka, atd.
bude na webu, kde je tvoje pozadí (samozřejmě pokud máš rozmyšleno, jaké)
člověk si tam vyplní různé věci, jako název, obrázek obálky, životopis, o knize, atd
bude moci otevírat soubory s těmito věcmi. dále tam budou nástroje na zvýraznění textu,
tabulek, obrázků (pokusím se o načítání docx a doc formátů).
po stisknutí tlačítka uložit se zavolá metoda převeď a ulož, která přeloží text
a uloží do souboru (X)HTML. následně se zapíše do souboru, kde jsou odkazy na knihy.
odkaz na právě vytvořenou knihu.

PS: tady zrovna vidíš výhodu souborů.
navíc, když ti nějaký web spadne (teď mě omluv jestli řeknu blbost), tak se databáze vymaže.

zato soubory ne :D

Nahoru Odpovědět
23.6.2012 11:56
Kdo pozdě chodí, sám sobě škodí (AUTOR: já)
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na HAPPY DAY
David Hartinger:23.6.2012 12:07

Databáze je fyzicky uložena samozřejmě také v souborech (jak jinak), princip je tedy naprosto stejný. DB se tedy s pádem serveru nevymaže, protože je uložena na disku, pouze některé její části jsou v operační paměti jako cache. Výhodou DB je, že již nemusíš řešit věci jako vyhledávání nebo bezpečnost, protože je za tebe vykonává tzv. databázový stroj.

Ty budeš mít třeba problém s editací knih, protože je ukládáš již převedené do HTML. Kdybys měl hodnoty v DB a z nich knihu renderoval pomocí server-side jazyka, bylo by to mnohem snažší.

Nahoru Odpovědět
23.6.2012 12:07
New kid back on the block with a R.I.P
Avatar
HAPPY DAY
Člen
Avatar
Odpovídá na David Hartinger
HAPPY DAY:23.6.2012 12:17

no myslel jsem takhle:
1.převede se na HTML
2.uloží se do souboru
3.do dalšího souboru zapíšu odkaz na HTML soubor, kde je kniha
4.díky za objasnění databází.

Nahoru Odpovědět
23.6.2012 12:17
Kdo pozdě chodí, sám sobě škodí (AUTOR: já)
Avatar
Kit
Tvůrce
Avatar
Odpovídá na HAPPY DAY
Kit:23.6.2012 19:12

Také jsem kdysi preferoval ukládání do souborů, než jsem zjistil, že databáze je rychlejší a spolehlivější. Také za tebe vyřídí spoustu záležitostí (ACID), které musíš v souborech obstarat ručně a které určitě neřešíš.

Vyzkoušel jsem už 11 databází, na běžném hostingu jich je běžně dostupných 5-6 druhů s různými vlastnostmi. Výběr je velký, stačí se jen naučit je používat.

Tvůj přístup je dobrý, dokud nebudeš potřebovat fulltextové vyhledávání mezi články nebo nebudeš potřebovat řešit automatické vazby mezi nimi.

Databáze je také lépe zabezpečena proti útokům XSS. Schopní programátoři si však rádi udělají díry i do databáze :)

Nahoru Odpovědět
23.6.2012 19:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 13 zpráv z 13.