txt. Datei an einer bestimmten Stelle lesen funktioniert nicht

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

  • txt. Datei an einer bestimmten Stelle lesen funktioniert nicht

    Hallo Leute.
    Bei meinem aktuellen Projekt plane ich ein Dialogsystem, dass auf .txt-Dateien basiert (Damit könnte jemand z.B. die Dialoge ohne viel Mühe übersetzen).
    Nun will ich aber natürlich, dass nicht der Text runter gerasselt wird, sondern das System auf bestimmte Stellen zugreifen kann.
    In der Textdatei steht dann z.B.
    |1|
    Forell: Guten Morgen, Soda.
    ...
    Das |1| läutet Dialog 1 ein.

    Dafür habe ich ein Öffnungsscript eingerichtet:

    GML-Quellcode

    1. if string(global.file) = "" // Hier wird überprüft, ob die Datei schon offen ist.
    2. {
    3. global.file = file_text_open_read(global.sprachpaket) //global.sprachpaket ist z.B. "deutsch.txt"
    4. dialog_text = file_text_read_string(global.file) //Hier wird die erstbeste Zeile gelesen
    5. while (dialog_text != "|" + string(argument0) + "|") // Das soll dafür sorgen, dass er solange Zeilen überspringt, bis er in der Zeile, in der z.B. |1| (Argument 0 = 1) steht
    6. {
    7. file_text_readln(global.file)
    8. dialog_text = file_text_read_string(global.file)
    9. }
    10. dialog_text = file_text_read_string(global.file) //Zeile lesen
    11. show_message(dialog_text) //Zeile anzeigen, Testzweck
    12. }
    Alles anzeigen

    Und da müsste jetzt eigentlich "Forrell: Guten Morgen, Soda" kommen. Doch in der Message steht rein gar nichts!
    Seht ihr einen Fehler?
    woku
    Edit: != im While eingefügt.

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

  • woku schrieb:

    if string(global.file) = "" // Hier wird überprüft, ob die Datei schon offen ist. { global.file = file_text_open_read(global.sprachpaket) //global.sprachpaket ist z.B. "deutsch.txt" dialog_text = file_text_read_string(global.file) //Hier wird die erstbeste Zeile gelesen while (dialog_text = "|" + string(argument0) + "|") // Das soll dafür sorgen, dass er solange Zeilen überspringt, bis er in der Zeile, in der z.B. |1| (Argument 0 = 1) steht { file_text_readln(global.file) dialog_text = file_text_read_string(global.file) } dialog_text = file_text_read_string(global.file) //Zeile lesen show_message(dialog_text) //Zeile anzeigen, Testzweck }


    Hmm, ich kenn mich mit solchen Sachen zwar nicht besonders gut aus, aber versuchen kann ich's ja mal:
    Probiers mal damit:

    GML-Quellcode

    1. if string(global.file) = "" // Hier wird überprüft, ob die Datei schon offen ist.
    2. {
    3. global.file = file_text_open_read(global.sprachpaket) //global.sprachpaket ist z.B. "deutsch.txt"
    4. dialog_text = file_text_read_string(global.file) //Hier wird die erstbeste Zeile gelesen
    5. while (dialog_text = "|" + string(argument0) + "|") // Das soll dafür sorgen, dass er solange Zeilen überspringt, bis er in der Zeile, in der z.B. |1| (Argument 0 = 1) steht
    6. {
    7. file_text_readln(global.file)
    8. }
    9. dialog_text = file_text_read_string(global.file) //Zeile lesen
    10. file_text_close(global.file);
    11. show_message(dialog_text) //Zeile anzeigen, Testzweck
    Alles anzeigen

    }
  • Habe es jetzt nicht probiert, allerdings glaube ich, das hier kann nicht funktionieren:

    GML-Quellcode

    1. while (dialog_text = "|" + string(argument0) + "|") // Das soll dafür sorgen, dass er solange Zeilen überspringt, bis er in der Zeile, in der z.B. |1| (Argument 0 = 1) steht
    2. {
    3. file_text_readln(global.file)
    4. }

    Nicht gehen, weil dialog_text nicht aktualisiert wird, so dass file_text_readln(global.file) völlig ohne Funktion ist.
    Des weiteren würde ich den Dialog gerne aufbehalten, weil der ja noch weiter geht.
    Oder irre ich mich?
    Danke,
    woku

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