Per Gm Textdateien erstellen und aufrufen

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Per Gm Textdateien erstellen und aufrufen

    Hi,
    Ich hab da mal ne frage, hab leider nix gefunden (wusste auch net recht was ich eingeben sollte),
    ich würde gerne Variablen in einer Textdatei abspeichern die der GM direkt erstellt (Name von einer Variable).
    und ich suche die Funktion womit ich diese Variablen dann wieder einlesen kann.

    Währe dankbar für eine Antwort :).

    mfg. C5_Booster
  • Ah das wollte ich auch schon Fragen wenn man ein neues erstellt wo wird dieses Textdokument dann erstellt?
    Bei mir funktioniert es nicht so lautet mein Code:

    GML-Quellcode

    1. file_text_open_write(Hallo.txt)
    2. file_text_write_string(Hallo.txt,"Guten Tag!")
  • Die Textdatei wird genau dort erstellt wo sich die Anwendung oder die Game Maker Datei befindet und von dort aus ein weiterer part erstellt. Will man die Textdatei genau an einem bestimmten Ort haben dan gibt man den kompletten Part ein. Ich arbeite an einem Script die das speichern mit Variablen ermöglicht, da eine Datei nur bytes besitzt. In diesem Script werden Variablen und dazu einen Zeiger der die position beinhaltet erstellt. Es wird schritt für schritt den Code durchgegangen bis die angegebene Variable erkennt wird un dann liest es den darauf folgenden Zeiger und springt zur position der Data. Es wird zwei Arten geben. Einmal den Automatik Mode, der prüft alles Automatisch ob es ein Integer oder String ist. Gibt Speicher frei für den String was dauern kann da es nur überschreiben kann. Dann gib es den Save Mode welcher am schnellsten und sichersten ist. Es muss dazu angegeben werden wie viel Speicher für den String reserviert werden soll und um welche Art sich die Variable handelt. Was alles so kompletziert klingt ist nur für mich kompletziert, die Anwendung ist extrem Einfach. Es kann jede Datei sein. Die Endung ist nur ein Bezeichner der Datei was bedeutet dass alle Datein gleich aufgebaut sind, sei es eine Exe oder ein Bild, eine Wave Datei oder sonst was. Sie haben bytes was eine zahl zwischen 0 und 255 also 32 bit entspricht. Weswegen man eine Datei mit einem Textprogramm öffnet nur wirres zeug für diese Datei steht. Das einzige was man vieleicht lesen kann sind mögliche enthaltende Strings. Dabei werden nur die Ascii Zeichen angezeigt welche für eine byte steht. Das wird also ein programm das sich auf der Festplatte abspielt. Was ich meine sind wo die Zeiger und Variablen auf den Arbeitsspeicher zugreifen greifen sie hier auf den Festplattenspeicher zu, wodurch diese Funktion langsam und deswegen nicht ständig aufgerufen werden sollte. Ok ich übertreibe es gerne mit meinen Antworten... :S

    Edit: Und das der Code nicht funktioniert ist mir klar. Probiere es so:

    GML-Quellcode

    1. file = file_text_open_write("Hallo.txt")
    2. file_text_write_string(file,"Guten Tag!")
    3. file_text_close(file)

    Wen man es ausführt wird eine Textdatei mit den Namen Hallo in dem Ordner des Spiels mit den inhalt Guten Tag! erstellt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Chris987 ()

  • Wenn man es erstellen möchte, falls es nicht vorhanden ist, dann:

    GML-Quellcode

    1. file = file_text_open_append(working_directory+"/"+"Hallo.txt")
    2. file_text_write_string(file,"Guten Tag!")
    3. file_text_close(file)


    working_directory muss nicht dabei sein, aber ohne Ordnerangabe geht gar nichts.
    Das Slash wurde nur zur verdeutlichung extra geschrieben.

    Mfg
    Diesel
  • Nein es geht beides zum erstellen wenn es nicht vorhanden ist. Und bei dem Game Maker geht es auch ohne Ordner Angabe. Nur bei file_text_open_append(fname) wird alles zur Datei angehängt und nicht komplett neu geschrieben wird wie bei file_text_open_write(fname) .

    Aus der Hilfe:
    file_text_open_write(fname) Öffnet die angegebene Datei zum Schreiben, erstellt sie, falls sie nicht existiert. Die Funktion gibt die ID der Datei zurück, welche für die anderen Funktionen gebraucht wird.
    file_text_open_append(fname) Öffnet die angegebene Datei zum Anfügen von Daten am Ende, erstellt sie, falls sie nicht existiert. Die Funktion gibt die ID der Datei zurück, welche für die anderen Funktionen gebraucht wird.

  • Danke für die Hilfe wie kann ich jezt machen das der Text der in der Datei steht gelesen wird und dann benutzt wird also in die Textdatei wird z.b Hallo=10 geschrieben und beim nächsten start soll er das lesen und die Variable Hallo auf 10 setzen.
  • Ja, das ist möglich. Die entsprechende Funktion heißt "execute_string" - und wenn ich micht recht entsinne, gibt's sogar auch eine "execute_file". Einfach mal die Hilfedatei danach durchstöbern. Ist vielleicht sogar auf der gleichen Seite wie die restlichen file-Funktionen.

    P.S Hab neue Körperzellen. Auch selbst gemacht ;)
  • Mit execute_file
    execute_string(str) Führt das Stück Code des Strings aus.

    So etwas verwende ich im meinem Spiel:

    GML-Quellcode

    1. wd_open_dialog_set_filter('*.100'); //Meine Cheatfiles haben die endung .100 kann aber auch .txt sein
    2. wd_open_dialog_set_caption('Wähle das Cheatfile (.100)')
    3. wd_open_dialog_show(); //Zeigt den Datei öffnen dialog an
    4. file = wd_open_dialog_get_file()
    5. execute_file(file) //hier wird das file 'file' ausgeführt

    und in die Datei kommt dann bei dir global.Hallo=10

    PS: Dafür muss die extension pack windows dialogs eingefügt sein