Eine Zahl in eine bestimmte Zeile einer Textdatei schreiben

  • GM 8

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

  • Eine Zahl in eine bestimmte Zeile einer Textdatei schreiben

    Hallo Experten!

    Nun habe ich schon wieder ein kleines Problem, das ich nicht zufriedenstellend selbst lösen kann.



    Ich habe eine Textdatei, in welcher in jeder Zeile eine bestimmte Zahl steht.

    Diese Textdatei lese ich beim Start des Spieles mit folgendem Skript ein:



    heft = file_text_open_read ('hefte_x.txt');
    zahl = file_text_read_real(heft);//aktuelle Zahl
    global.heft1 = zahl
    file_text_close(heft);

    heft = file_text_open_read ('hefte_x.txt');
    zahl = file_text_readln(heft);
    zahl = file_text_read_real(heft);//aktuelle Zahl
    global.heft2 = zahl
    file_text_close(heft); ;(

    heft = file_text_open_read ('hefte_x.txt');
    zahl = file_text_readln(heft);
    zahl = file_text_readln(heft);
    zahl = file_text_read_real(heft);//aktuelle Zahl
    global.heft3 = zahl
    file_text_close(heft);

    heft = file_text_open_read ('hefte_x.txt');
    zahl = file_text_readln(heft);
    zahl = file_text_readln(heft);
    zahl = file_text_readln(heft);
    zahl = file_text_read_real(heft);//aktuelle Zahl
    global.heft4 = zahl
    file_text_close(heft);

    heft = file_text_open_read ('hefte_x.txt');
    zahl = file_text_readln(heft);
    zahl = file_text_readln(heft);
    zahl = file_text_readln(heft);
    zahl = file_text_readln(heft);
    zahl = file_text_read_real(heft);//aktuelle Zahl
    global.heft5 = zahl
    file_text_close(heft);



    Während des Spieles werden die Zahlen der Variablen "global.heft1" bis "global.heft5" verändert.

    Nun möchte ich die neuen Zahlen wieder in gleicher Weise wie beim lesen in die richtige Zeile speichern.

    ;( Leider schaffe ich es nur bei einer Zeile, sobald ich es mit mehreren Zeilen versuche, wird in alle vorherigen Zeilen nichts eingetragen.



    Vielleicht hat jemand eine Idee.

    Ich bedanke mich schon im Voraus für eure Hilfe

    Es grüßst euch Hubsl, ein noch sehr unerfahener aber noch lernfähiger GM8 Programmierer.
  • Erstmal würd ich dir empfehlen ein array zu benutzen. damit kannst du jederzeit die anzahl der Zeilen verändern.
    also die zahlen werden später in diesem array drinn sein: global.heft[]


    Kurzerklärung zu Arrays.
    Sie sind sowas wie eine liste, also arrname[0] kann einen wert beinhalten und arrname[55] kann auch einen (anderen) Wert beinhalten.
    Und das mit allen zahlen von 0 bis 3000;

    Zum einlesen benutz so ein loop:

    var file, a;
    file = file_text_open_read('hefte_x.txt')
    a = 0;

    while(!file_text_eof())
    {
    global.heft[a] = file_text_read_real(file)
    file_text_readln(file);
    a += 1;
    }


    Dann zum schreiben einfach umgekehrt:

    var file, a;
    file = file_text_open_write('hefte_x.txt')
    a = 0;

    repeat(anzahl der Werte)
    {
    file_text_write_real(file,global.heft[a])
    file_text_writeln(file);
    a += 1;
    }



    Hoffe das hilft dir weiter :)

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Leider kommt beim Speichern der Fehler

    ERROR in
    action number 1
    of Mouse Event for Left Pressed
    for object Abbrechen:

    In script Hefte_speichern:
    Error in code at line 7:
    file_text_write_real(file,global.heft[a])
    ^
    at position 35: Unknown variable heft



    MfG Hubsl
  • Die variablen müssen initialissiert werden.
    Schreib mal am Anfang deines Spiels:

    var a;
    a = 0;
    repeat(5)
    {
    global.heft[a] = 0;
    a += 1;
    }



    EDIT: versuch pls Doppelposts zu vermeiden. Es gibt ja nicht umsonst die edit-Funktion :)

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Lol, das was ich vorhin geschrieben habe setzt die variablen ja auf Null.
    Du musst dann das Skript zum auslesen verwenden.
    Oder wie du sagtest "während dem Spiel verändern".
    Dann werden auch die neuen Werte abgespeichert.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)