Ukládání score WP

Vše okolo vývoje aplikací pro platformy Windows Phone a Windows 10 Mobile
Post Reply
Sandak
nováček
nováček
Posts: 39
Joined: Sun Jan 31, 2010 19:12
Zařízení: Samsung Omnia 7, Nokia Lumia 800 Black
Contact:

Ukládání score WP

Post by Sandak »

Ahoj, marně se snažím dohledat na netu jak co nejlépe a nejjednodušeji ukládat score a potom ho přečíst a zobrazit na displeji. Prozatím pomýšlím jen na offline score přímo v zařízení a pouze jméno a dosažený LVL. Stále se nemůžu dopátrat nějakého rozumného návodu, který by fungoval na WP... Předem díky zda má s tím někdo zkušenosti

snažím se použít něco jako následující kód:

Code: Select all

            IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();

            //Open existing file
            IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("text.txt", FileMode.Open, FileAccess.Write);
            using (StreamWriter writer = new StreamWriter(fileStream))
            {
                string someTextData = "Some More TEXT Added:  !";
                writer.Write(someTextData);
                writer.Close();
            }

            IsolatedStorageFile myIsolatedStorage2 = IsolatedStorageFile.GetUserStoreForApplication();
            IsolatedStorageFileStream fileStream2 = myIsolatedStorage2.OpenFile("text.txt", FileMode.Open, FileAccess.Read);
            using (StreamReader reader = new StreamReader(fileStream2))
            {    //Visualize the text data in a TextBlock text
                this.text = reader.ReadLine();
            }
na emulátoru to funguje bez problemu.. a pokud to chci zkusit na mobilu pise to: Operation not permitted on IsolatedStorageFileStream.
matoman
smartmaniak
smartmaniak
Posts: 1163
Joined: Sat Nov 10, 2007 11:56
Zařízení: Nokia Lumia 920

Ukládání score WP

Post by matoman »

ulozit do isolated storage settings je asi najjednoduchsia cesta.
Sandak
nováček
nováček
Posts: 39
Joined: Sun Jan 31, 2010 19:12
Zařízení: Samsung Omnia 7, Nokia Lumia 800 Black
Contact:

Ukládání score WP

Post by Sandak »

Ano o to se snažím, jak jsem vložil v mém prvním příspěvku. Bohužel na mobilu mi to nejde vyzkoušet přitom v emulatoru to jde bez problemu. Jak je to mozne?
matoman
smartmaniak
smartmaniak
Posts: 1163
Joined: Sat Nov 10, 2007 11:56
Zařízení: Nokia Lumia 920

Ukládání score WP

Post by matoman »

skorej som myslel toto: http://msdn.microsoft.com/en-us/library ... 95%29.aspx" onclick="window.open(this.href);return false;

A aku chybu ti pise ked to pustis na mobile?
matoman
smartmaniak
smartmaniak
Posts: 1163
Joined: Sat Nov 10, 2007 11:56
Zařízení: Nokia Lumia 920

Ukládání score WP

Post by matoman »

Sorry, pre oci nevidim :) tu chybu si tam pisal vyssie. Tak to potom netusim, mas dost miesta v mobile?
Sandak
nováček
nováček
Posts: 39
Joined: Sun Jan 31, 2010 19:12
Zařízení: Samsung Omnia 7, Nokia Lumia 800 Black
Contact:

Ukládání score WP

Post by Sandak »

Jojo, mobil je úplně čistej nic na něm není..
matoman
smartmaniak
smartmaniak
Posts: 1163
Joined: Sat Nov 10, 2007 11:56
Zařízení: Nokia Lumia 920

Ukládání score WP

Post by matoman »

a subor vytvoreny mas, ked z neho citas?

Code: Select all

IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
 
//create new file
using (StreamWriter writeFile = new StreamWriter(new IsolatedStorageFileStream("myFile.txt", FileMode.Create, FileAccess.Write, myIsolatedStorage)))
{
    string someTextData = "This is some text data to be saved in a new text file in the IsolatedStorage!";
    writeFile.WriteLine(someTextData);
    writeFile.Close();
}
Sandak
nováček
nováček
Posts: 39
Joined: Sun Jan 31, 2010 19:12
Zařízení: Samsung Omnia 7, Nokia Lumia 800 Black
Contact:

Ukládání score WP

Post by Sandak »

noo vytvořil jsem normálně text.txt a přidal do Content nastavil compile: none a copy newer .. jak řikám na emulátoru to funguje do mobilu to nenahraju

//: tak jsem to udělal jak píšeš vytvořil jsem to jak si napsal a uala funguje to.. ale co když nechci po každém spuštění vytvářet nový soubor? to by se mi přeci předchozí uložené score smazalo ne? funguje tam něco jako .OpenOrCreate
matoman
smartmaniak
smartmaniak
Posts: 1163
Joined: Sat Nov 10, 2007 11:56
Zařízení: Nokia Lumia 920

Ukládání score WP

Post by matoman »

no ked nastavis na content, tak sa to isolated storage nenahra a preto ta chyba (Mozno na emulatoru to funguje ale obecne nie), musis ho tam presunut (vid odkaz), alebo vytvorit az v aplikacii...

http://technodave.wordpress.com/2010/11 ... s-phone-7/" onclick="window.open(this.href);return false;
matoman
smartmaniak
smartmaniak
Posts: 1163
Joined: Sat Nov 10, 2007 11:56
Zařízení: Nokia Lumia 920

Ukládání score WP

Post by matoman »

Mozes urobit

Code: Select all

if fileexists create 

open
Sandak
nováček
nováček
Posts: 39
Joined: Sun Jan 31, 2010 19:12
Zařízení: Samsung Omnia 7, Nokia Lumia 800 Black
Contact:

Ukládání score WP

Post by Sandak »

Jdu to vše vyzkoušet děkuju moc, konečně jsem se pohnul dál :-)
Tomáš Slavíček
častý přispěvatel
častý přispěvatel
Posts: 264
Joined: Wed Aug 19, 2009 7:09
Zařízení: Nexus 5, Galaxy S3, Nokia X, iPad mini

Ukládání score WP

Post by Tomáš Slavíček »

V tomhle případě bych se opravdu možná nezabýval ukládáním do souborů, ale využil bych takzvané IsolatedStorageSettings. To je kolekce klíč/hodnota, přistupuje se k ní jako k objektu typu Dictionary. Podle textového řetězce (klíče) se může uložit nějaká hodnota. Ta tam zůstane až do dalšího spuštění aplikace (jen pozor, když si v kódu té aplikace něco změníš a znovu si ji zkompiluješ, už to bude jiná aplikace - s jiným odděleným paměťovým prostorem, k původním hodnotám se nedostaneš).

Ukládání obsahu proměnné name (typu string), pod klíč username, by se tedy provádělo nějak takhle:

Code: Select all

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
string key = "username";
if (settings.Contains(key))
    settings[key] = name;
else
    settings.Add(key, name);
settings.Save();
A načítání zpět např. takhle:

Code: Select all

if (!settings.Contains(key))
    settings.Add(key, "vychozi");
name = (string)settings[key];
Do toho IsolatedStorageSettings by mělo jít uložit jakékoliv pole objektů (a pak ho z něj zpátky zase dostat), tj. můžeš zkusit např. něco takovéto:

Code: Select all

int[] values = new int[10];
values[0] = 123;
values[1] = 456;
settings.Add("rekordy", values);

int[] readValues = new int[10];
readValues = (int[])settings["rekordy"];
Post Reply

Return to “Programování a vývoj”

Who is online

Users browsing this forum: Semrush [Bot] and 1 guest