Array in Textdatei speichern und wieder auslesen und zu Array machen.

  • C#

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von ABC-man.

    Array in Textdatei speichern und wieder auslesen und zu Array machen.

    Hey Guys.

    Ich habe eine Frage. Ich bin zur Zeit dabei ein MapEditor für mein Jump and Run Spiel zu proggen. In c#.
    Und jetzt habe ich als Tilemap ein 2dimensionales Array aus chars, dass dann ausgelesen wird... Naja, und nun will ich dieses Array in einer Textdatei speichern,
    und auch wieder auslesen können, und diese Textdatei im Programm wieder zu einem Array lassen machen.
    Aber ich weiß nicht wie ich das mache. Das aus der Textdatei ein Array wieder wird.
    Und aus dem Array eine Textdatei....

    Es whäre seeeehr nett, wenn ihr mir helfen könntet....

    MfG, ich

    PS: Kleines Beispiel wie meine Map als Array aussieht :
    Spoiler anzeigen

    Quellcode

    1. private const int map_hoehe = 3;
    2. private const int map_breite = 6;
    3. private static char[,] tilemap = new char[map_hoehe, map_breite]
    4. {
    5. { ' ', ' ', ' ', ' ', ' ',' ' },
    6. { ' ', ' ', ' ', ' ', ' ',' ' },
    7. { '#', '#', '#', '#', ' ',' ' }
    8. }

    So nur eben viel größer ^^
    Diese Zeichen "#" sind dann Boden, und " " ist Luft etc.


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nikeee13“ ()

    VB.NET-Quellcode

    1. ' Schreiben:
    2. Dim stringToSave As New String(charArray)
    3. Dim writer As New System.IO.StreamWriter("Pfad", False)
    4. writer.Write(stringToSave)
    5. writer.Close()
    6. ' Lesen:
    7. Dim reader As New System.IO.StreamReader("Pfad")
    8. Dim savedString As String = reader.ReadToEnd()
    9. reader.Close()
    10. charArray = savedString.ToCharArray()
    Wenn ich dein Problem richtig verstanden habe ^^

    EDIT: Sehe gerade, du benötigst eine Lösung in C#. Naja sollte nicht wirklich schwer sein, das umzuschreiben
    ja, ihr könnt ruhich in VB posten... Jedenfalls was ist CSV und JSON ? Ich will einfach das Array so in eine Textdatei schreiben, dass ich es danach wieder auslesen kann....
    Und ja, das Array ist 2 dimensional... Ist ja eine tilemap für mein jump and Run Spiel.
    Stichwort Serialisierung. Ein kleines Tutorial dazu

    Wenn du was davon lernen willst lies dir das Tutorial durch, dann darfst du den Spoiler öffnen ; ).

    Spoiler anzeigen

    Quellcode

    1. using System;
    2. using System.IO;
    3. using System.Runtime.Serialization.Formatters.Binary;
    4. char[,] meinArray = new char[10,10];
    5. // In Datei schreiben
    6. Stream stream = File.Open("meineDatei.txt", FileMode.Create);
    7. BinaryFormatter formatter = new BinaryFormatter();
    8. formatter.Serialize(stream, meinArray);
    9. stream.Close();
    10. // Von Datei Lesen
    11. Stream stream = File.Open("meineDatei.txt", FileMode.Open);
    12. BinaryFormatter formatter = new BinaryFormatter();
    13. meinArray = (char[,])formatter.Deserialize(stream);
    14. stream.Close();

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Pinki“ ()

    Quellcode

    1. Serialization.Formatters.Binary


    Binär halt.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Super ! Danke ! Vielen vieeelen Dank ! Es geht .... Hab nochmal diese erstellte Datei geladen...
    Hatte mich nur gewundert, weil der Inhalt der Textdatei irgendwie gruselig aussah... ;D


    EDIT: Eine letzte Frage noch : Ich wollte einen SaveFileDialog machen, damit man sich aussuchen kann, wo man das hinhaben will,
    (ist der überhaupt gut, für meinen Verwendungszweck ?), aber mein VisualStudio weiß nicht was ein SaveFileDialog ist.
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    Ich habe schon versucht, da mit rechts raufzuklicken, um zu sehen ob ein using fehlt, aber anscheinend nicht...
    Was ist da los ?!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ABC-man“ ()

    Pinki schrieb:

    Verweis auf System.Windows.Forms


    Du musst erst einen Verweis auf System.Windows.Forms machen, Projekt -> Verweis hinzufügen -> .NET -> System.Windows.Forms -> OK
    Danach using System.Windows.Forms

    dead links/404 an dieser Stelle entfernt ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()