Lolzibob Member
Anmeldedatum: 09.03.2012 Beiträge: 33
|
Verfasst am: 26.04.2012, 22:04 Titel: WP - Score in Datei |
|
Hallo,
Ich möchte gern den Score von meinem App speichern - so das man den Highscore eben bei jedem Start wieder sehen kann.
Check jetzt nur nicht wo ich den Score speichern kann. Auf W7 würd ichs einfach in eine txt datei werfen aber auf dem Handy ist es ja iwie anders.
Habs jetzt mal so probiert das ich dort wo die ganzen Klassen stehen eine Text Datei hinzufüge. Aber kann mit StreamWriter usw. nicht wirklich darauf zugreifen - bekomm immer eine Fehler meldung (MethodAccessException -Attempt to access the method failed: System.IO.StreamReader..ctor(System.String)) Vielleicht ist auch nur der Path falsch mit dem ich es Aufrufe.
Also wenn man es so macht:
| Code: | using (StreamReader SR = new StreamReader("SaveIt.txt"))
{
Punkte = Convert.ToInt32(SR.ReadLine());
} |
Hab das noch nie gemacht wenn die txt Datei im Programm ist, vielleicht könnt ihr mir helfen. (:
mfg Georg. |
|
| Nach oben |
|

|
internetfreak Member
Anmeldedatum: 20.10.2011 Beiträge: 133
|
Verfasst am: 26.04.2012, 22:10 Titel: |
|
Das WP7 hat den IsolatedStorage für alle Apps. Jede App bekommt ihren eigenen Storage, auf den nur sie zugreifen kann.
Diesen Storage musst du laden, danach kannst du auf Dateien zugreifen.
Google mal nach IsolatedStorage, da steht drin, wie es geht, habs nicht im Kopf |
|
| Nach oben |
|

|
DiNoGames XNA.mag - Team
Anmeldedatum: 25.02.2008 Beiträge: 2700 Wohnort: Bremen
|
Verfasst am: 26.04.2012, 22:29 Titel: |
|
Ich würds binär speichern und laden....
bspw das erstellen eines Readers geht so:
| Code: | BinaryReader reader = new BinaryReader(TitleContainer.OpenStream("highscores.txt"));
score = reader.ReadInt32(); |
ganz easy... Writer funktioniert genauso... _________________
DiNoGames on Facebook - LIKE IT! |
|
| Nach oben |
|

|
Lolzibob Member
Anmeldedatum: 09.03.2012 Beiträge: 33
|
Verfasst am: 28.04.2012, 09:43 Titel: |
|
| DiNoGames hat Folgendes geschrieben: | Ich würds binär speichern und laden....
bspw das erstellen eines Readers geht so:
| Code: | BinaryReader reader = new BinaryReader(TitleContainer.OpenStream("highscores.txt"));
score = reader.ReadInt32(); |
ganz easy... Writer funktioniert genauso... |
Wie muss ich den Pfad dann angeben auf dem Handy? Wenn ich nur den namen.txt reinschreibe findet er die Datei nicht.
Das mit IsolatedStorage schau ich mir noch an!
Dank euch (: |
|
| Nach oben |
|

|
XMR1 Member
Anmeldedatum: 28.04.2010 Beiträge: 1209 Wohnort: Bayern
|
|
| Nach oben |
|

|
Lolzibob Member
Anmeldedatum: 09.03.2012 Beiträge: 33
|
Verfasst am: 28.04.2012, 10:10 Titel: |
|
IsolatedStorage kapier ich irgendwie nicht so ganz.
Hät zwar ein Tutorial auf YT gefunden das aber wieder nur für normale Apps funktioniert und nicht für XNA.
Hab zwar noch was anderes aber da muss ich irgendwas mit Bytes machen und des hab wiederum noch nie gemacht^^ |
|
| Nach oben |
|

|
DiNoGames XNA.mag - Team
Anmeldedatum: 25.02.2008 Beiträge: 2700 Wohnort: Bremen
|
Verfasst am: 28.04.2012, 12:30 Titel: |
|
Wo hab ich denn da nur wieder nachgesehen...
XMR1 hat natürlich Recht:
| Code: | IsolatedStorageFile myFileStorage = IsolatedStorageFile.GetUserStoreForApplication();
if(myFileStorage.FileExists("highscore.dat"))
{
IsolatedStorageFileStream file = myFileStorage.OpenFile("highscore.dat", FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(file);
IRGENDWAS = reader.ReadIRGENDWAS();
reader.Close();
} |
EDIT: Respektive für das Speichern:
| Code: | IsolatedStorageFile myFileStorage = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream file = myFileStorage.CreateFile("highscore.dat");
BinaryWriter writer = new BinaryWriter(file);
writer.Write(IRGENDWAS);
writer.Close(); |
Sorry für die Verwirrung... _________________
DiNoGames on Facebook - LIKE IT! |
|
| Nach oben |
|

|
Lolzibob Member
Anmeldedatum: 09.03.2012 Beiträge: 33
|
Verfasst am: 28.04.2012, 15:14 Titel: |
|
Hab noch bisschen rumprobiert und bin auf die Lösung gekommen.
Lesen:
| Code: | IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
if (storage.FileExists(FileName))
{
IsolatedStorageFileStream stream = storage.OpenFile(FileName, FileMode.Open);
byte[] b = new byte[20];
stream.Read(b, 0, 19);
Punkte = BitConverter.ToInt32(b, 0);
stream.Close();
stream.Dispose();
} |
Schreiben:
| Code: | IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream stream = storage.CreateFile(FileName);
byte[] b = null;
b = BitConverter.GetBytes(Punkte);
stream.Write(b, 0, b.Length);
stream.Close();
stream.Dispose(); |
Vielen Dank jedenfalls  |
|
| Nach oben |
|

|
Lolzibob Member
Anmeldedatum: 09.03.2012 Beiträge: 33
|
|
| Nach oben |
|

|
|