Göra en fil som kan läsas och "skrivas" på i c# xna

Permalänk

Göra en fil som kan läsas och "skrivas" på i c# xna

Någon som vet hur man gör en fil man kan skriva på och läsa ifrån i xna c# och att kunna spara variablar i filen och sedan sätta variablarnas värde i programmet till värdena i filen?

Visa signatur

Intel i5 3450 | MSI B75MA-p45 | MSI gtx 970 4gb | Cooler Master elite 430 | XFX ProSeries Core Edition 550W PSU | Corsair XMS3 1600MHz 8GB CL9 |

Permalänk
Permalänk

Testa det innan, fick det inte o funka :/ men hittar inget annat sätt eller något ställe där det står hur man skriver ner saker i en fil och sedan läser dom igen :/

Visa signatur

Intel i5 3450 | MSI B75MA-p45 | MSI gtx 970 4gb | Cooler Master elite 430 | XFX ProSeries Core Edition 550W PSU | Corsair XMS3 1600MHz 8GB CL9 |

Permalänk
Medlem
Skrivet av Simontaga:

Testa det innan, fick det inte o funka :/ men hittar inget annat sätt eller något ställe där det står hur man skriver ner saker i en fil och sedan läser dom igen :/

Jag tror du ska lägga programmerandet på hyllan innan du lärt dig hur man använder en sökmotor för det finns förmodligen tusentals exempel på hur man skriver något till en fil och sen läser det i valfritt programmeringsspråk.

Här är ett ännu lättare exempel än mitt förra : http://msdn.microsoft.com/en-us/library/ms143375(v=vs.110).as...

Permalänk
Skrivet av iXam:

Jag tror du ska lägga programmerandet på hyllan innan du lärt dig hur man använder en sökmotor för det finns förmodligen tusentals exempel på hur man skriver något till en fil och sen läser det i valfritt programmeringsspråk.

Här är ett ännu lättare exempel än mitt förra : http://msdn.microsoft.com/en-us/library/ms143375(v=vs.110).as...

... Det är bara att jag hittar inga exempel på internet.. jag har googlat och så om du inte tror det.. det är bara att exemplena på många hemsidor är inte "Klara" utan det är många saker som inte visas till ex: "Implementera" ett "Bibliotek" och många saker visar dom inte :/

Visa signatur

Intel i5 3450 | MSI B75MA-p45 | MSI gtx 970 4gb | Cooler Master elite 430 | XFX ProSeries Core Edition 550W PSU | Corsair XMS3 1600MHz 8GB CL9 |

Permalänk
Medlem
Skrivet av Simontaga:

... Det är bara att jag hittar inga exempel på internet.. jag har googlat och så om du inte tror det.. det är bara att exemplena på många hemsidor är inte "Klara" utan det är många saker som inte visas till ex: "Implementera" ett "Bibliotek" och många saker visar dom inte :/

Men den senaste länken är ju ett komplett program som skriver data och sen läser det. Och det är ju från MS själva och dess dokumentation över c#!

using System; using System.IO; using System.Text; class Test { public static void Main() { string path = @c:\temp\MyTest.txt; // This text is added only once to the file. if (!File.Exists(path)) { // Create a file to write to. string createText = "Hello and Welcome" + Environment.NewLine; File.WriteAllText(path, createText); } // This text is always added, making the file longer over time // if it is not deleted. string appendText = "This is extra text" + Environment.NewLine; File.AppendAllText(path, appendText); // Open the file to read from. string readText = File.ReadAllText(path); Console.WriteLine(readText); } }

Permalänk
Medlem

Hade sparat variablerna i en klass och sedan helt enkelt serialize:a den med JSON.NET. Sjukt lätt.

Här har jag slängt ihop ett exempel där jag har en klass Settings som har tre properties "name, xp och health" som jag spar till fil och kan läsa från fil.

class Settings { public int health { get; set; } public int xp { get; set; } public string name { get; set; } public Settings(int h, int xp, string n) { this.health = h; this.xp = xp; this.name = n; } public Settings(string filename) { if (!File.Exists(filename)) throw new Exception("File not found"); string text = File.ReadAllText(filename); if (string.IsNullOrEmpty(text)) throw new Exception("File was either blank or had errors"); Settings temp = JsonConvert.DeserializeObject<Settings>(text); this.name = temp.name; this.xp = temp.xp; this.health = temp.health; } public Settings() { } public void SaveToFile(string filename) { string serialized = JsonConvert.SerializeObject(this); File.WriteAllText(filename, serialized); } }

Och main:

static void Main(string[] args) { Settings s = new Settings(1, 1, "asd"); s.SaveToFile(@C:\Users\David\Desktop\asd.txt); // spar till fil Settings k = new Settings(@C:\Users\David\Desktop\asd.txt); // läs från fil Console.WriteLine(k.name); // skriv ut namn Console.ReadLine(); }

Kolla bara efter Newtonsoft.JSON så hittar du det.

Visa signatur

Corsair 750D | i5 4670k | ASUS Z87-a | 8GB Corsair Dominator | Asus GTX770-DC2OC | Samsung 840 EVO 250GB | WD 500GB X2

Permalänk
Skrivet av reflect:

Hade sparat variablerna i en klass och sedan helt enkelt serialize:a den med JSON.NET. Sjukt lätt.

Här har jag slängt ihop ett exempel där jag har en klass Settings som har tre properties "name, xp och health" som jag spar till fil och kan läsa från fil.

class Settings { public int health { get; set; } public int xp { get; set; } public string name { get; set; } public Settings(int h, int xp, string n) { this.health = h; this.xp = xp; this.name = n; } public Settings(string filename) { if (!File.Exists(filename)) throw new Exception("File not found"); string text = File.ReadAllText(filename); if (string.IsNullOrEmpty(text)) throw new Exception("File was either blank or had errors"); Settings temp = JsonConvert.DeserializeObject<Settings>(text); this.name = temp.name; this.xp = temp.xp; this.health = temp.health; } public Settings() { } public void SaveToFile(string filename) { string serialized = JsonConvert.SerializeObject(this); File.WriteAllText(filename, serialized); } }

Och main:

static void Main(string[] args) { Settings s = new Settings(1, 1, "asd"); s.SaveToFile(@C:\Users\David\Desktop\asd.txt); // spar till fil Settings k = new Settings(@C:\Users\David\Desktop\asd.txt); // läs från fil Console.WriteLine(k.name); // skriv ut namn Console.ReadLine(); }

Kolla bara efter Newtonsoft.JSON så hittar du det.

Tack! Ska spara detta någonstans, tack för ett bra exempel

Visa signatur

Intel i5 3450 | MSI B75MA-p45 | MSI gtx 970 4gb | Cooler Master elite 430 | XFX ProSeries Core Edition 550W PSU | Corsair XMS3 1600MHz 8GB CL9 |

Permalänk
Skrivet av reflect:

Hade sparat variablerna i en klass och sedan helt enkelt serialize:a den med JSON.NET. Sjukt lätt.

Här har jag slängt ihop ett exempel där jag har en klass Settings som har tre properties "name, xp och health" som jag spar till fil och kan läsa från fil.

class Settings { public int health { get; set; } public int xp { get; set; } public string name { get; set; } public Settings(int h, int xp, string n) { this.health = h; this.xp = xp; this.name = n; } public Settings(string filename) { if (!File.Exists(filename)) throw new Exception("File not found"); string text = File.ReadAllText(filename); if (string.IsNullOrEmpty(text)) throw new Exception("File was either blank or had errors"); Settings temp = JsonConvert.DeserializeObject<Settings>(text); this.name = temp.name; this.xp = temp.xp; this.health = temp.health; } public Settings() { } public void SaveToFile(string filename) { string serialized = JsonConvert.SerializeObject(this); File.WriteAllText(filename, serialized); } }

Och main:

static void Main(string[] args) { Settings s = new Settings(1, 1, "asd"); s.SaveToFile(@C:\Users\David\Desktop\asd.txt); // spar till fil Settings k = new Settings(@C:\Users\David\Desktop\asd.txt); // läs från fil Console.WriteLine(k.name); // skriv ut namn Console.ReadLine(); }

Kolla bara efter Newtonsoft.JSON så hittar du det.

Kanske dum fråga men, hur installerar jag json.net? försökte att installera Nuget package grejs men den sa att det finns inga "produkter att installera det på.."? eller gör jag fel? stog inget i dokumentationen hur man installerar det :/

Visa signatur

Intel i5 3450 | MSI B75MA-p45 | MSI gtx 970 4gb | Cooler Master elite 430 | XFX ProSeries Core Edition 550W PSU | Corsair XMS3 1600MHz 8GB CL9 |

Permalänk
Medlem
Skrivet av Simontaga:

Kanske dum fråga men, hur installerar jag json.net? försökte att installera Nuget package grejs men den sa att det finns inga "produkter att installera det på.."? eller gör jag fel? stog inget i dokumentationen hur man installerar det :/

Prova https://json.codeplex.com/releases/view/135702 och sedan den högst upp. Sedan navigerar du med Winrar etc till Bin\ och sedan den .netversion du använder. Däri ska det ligga en dll som du helt enkelt kan lägga en referens till i ditt projekt.

Visa signatur

Corsair 750D | i5 4670k | ASUS Z87-a | 8GB Corsair Dominator | Asus GTX770-DC2OC | Samsung 840 EVO 250GB | WD 500GB X2