Do nového roku jako lepší programátoři? Znovu otevíráme večerní školu programování. Nette framework, návrhové vzory, testování nebo vůbec poprvé kurzy ASP.NET dostupné odkudkoli v republice.

Diskuze: Psaní do souborů

C# .NET .NET (C# a Visual Basic) Psaní do souborů American English version English version

Avatar
Paranormal
Redaktor
Avatar
Paranormal:

Zdravím, dělám si hru jen tak pro zábavu a chtěl bych nějak uvádět nejvyšší skóre. Vytvořil sem si soubor best_score.txt. A vždy při zapnutí programu nahraji do proměné best_score hodnotu co je v souboru. A během programu to aktualizuji a kontroluji jestli je nové nejvyšší score.

if ( score > best_score )
            {
                StreamWriter Filewriter = new StreamWriter("best_score.txt");
                Filewriter.WriteLine(score.ToString());
                Filewriter.Close();
            }

To funguje, ale když vypnu a zapnu program tak to jde od znova. Takže se mi to nové best score do toho souboru neuloží když zavírám program. Jak to mám tedy uložit. respektive nahradit starou hodnotu? :D aby se uložila? Díky moc

Odpovědět 3.12.2015 20:10
„Když toho moc neumíme tak jsme na nejlepší pozici se něčemu naučit.“
Avatar
David Hanina
Člen
Avatar
Odpovídá na Paranormal
David Hanina:

Jsi si jistý ? možná si to jen špatně zkoušel, protože kód by měl fungovat v pořádku..

 
Nahoru Odpovědět  +4 3.12.2015 20:34
Avatar
Odpovídá na Paranormal
Michal Žůrek (misaz):

a funguje ti to čtení z toho souboru?

Nahoru Odpovědět  +1 3.12.2015 20:47
Nesnáším {}, proto se jim vyhýbám.
Avatar
ostrozan
Redaktor
Avatar
Odpovídá na Paranormal
ostrozan:

Takže při spuštěné aplikaci když po každé změně otevřeš ten . txt tak tam tu změnu vidíš?
A při startu ti to načte co?

 
Nahoru Odpovědět  +1 3.12.2015 22:56
Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:

Souhlasím s pánama nademnou. Zkontroluj si jestli

  • vůbec dochází k načítání hodnot
  • pokud dochází, tak jestli dochází k přiřazení do best_score

Každopádně to oddebuguj a zkontroluj si řádek s tou podmínkou.

Je dobré takovéhle záležitosti oddělovat přinejmenším do samostatných metod. Má to co do témat jako "reuse" kódu a "do not repeat yourself"

 
Nahoru Odpovědět  +1 4.12.2015 6:11
Avatar
Paranormal
Redaktor
Avatar
Paranormal:

Takže, znovu jsem to vyzkoušel a je to takhle.

  • Napíšu do toho souboru best_score.txt třeba hodnotu 10.
  • Zapnu hru (přes VisualStudio) a je tam načtena hodnota 10 a v průběhu hry se normálně best_score aktualizuje.
  • Vypnu hru a podívám se normálně ve složce mimo Visual Studio to souboru best_score.txt tak je tam nová hodnota uložena. to je v pořádku.
  • Když ale znovu zapnu hru (ve Visual studiu) tak se mi do souboru opět načte hodnota 10 a jede to znova.

A proč všude píšu že to otevírám ve visual studiu a né normálně. protože mi to nejde :D Když to chci otevřít jako .exe soubor tak se to furt načítá, ale nespustí se to tak musím restartovat průzkumníka windows. To by taky nějak chtělo pořešit jestli by někdo věděl.

Opravdu už nevím :D

Nahoru Odpovědět 4.12.2015 16:13
„Když toho moc neumíme tak jsme na nejlepší pozici se něčemu naučit.“
Avatar
Odpovídá na Paranormal
Michal Štěpánek:

tak se mi do souboru opět načte hodnota 10

Tady je něco divného. Když to spustíš, mělo by se z toho souboru číst a ne do něj zapisovat, nebo jsem na jiný sjezdovce?

Nahoru Odpovědět  +1 4.12.2015 16:24
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Paranormal
Michal Žůrek (misaz):

aha, Visual Studio ti ten soubor přepisuje. Označ ten soubor v Solution Exploreru a vproperties tomu souboru nastav u vlastnosti Copy to Output Directory hodnotu Do not copy.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +2 4.12.2015 16:24
Nesnáším {}, proto se jim vyhýbám.
Avatar
Paranormal
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Paranormal:

Už to funguje.. Díky moc Háži ti řešení vlákna :) Samozřejmě ostatním také děkuji.

Nahoru Odpovědět 4.12.2015 16:29
„Když toho moc neumíme tak jsme na nejlepší pozici se něčemu naučit.“
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 9 zpráv z 9.