ds_list - Problem

  • GM 7
  • ds_list - Problem

    Hallo auch.
    Ein Freund von mir und ich haben ein kleines Problemchen mit ds_listen.
    Hier mal ein kleiner Test:

    GML-Quellcode

    1. list=ds_list_create();
    2. i=1;
    3. while (i!=1000)
    4. {
    5. ds_list_add(list,i);
    6. i+=1;
    7. }
    8. show_message(string(ds_list_size(list)));
    9. f=file_text_open_write("lol.txt");
    10. p=0;
    11. while (p!=i)
    12. {
    13. file_text_write_string(f,string(ds_list_find_value(list,p)));
    14. file_text_writeln(f);
    15. p+=1;
    16. }
    17. game_end();
    Alles anzeigen


    Es soll also bis 999 in die Textdatei reingeschrieben werden, aber die letzten Zeilen in der Textdatei sehen so aus :
    985
    986
    987
    988
    989
    990
    991
    992
    993
    994
    99

    Wisst ihr, wieso GM die Textdatei nicht bis 999 schreibt ?
    Übrigens wenn er bis "1337" schreiben soll sind die letzten Zeilen:
    1334
    1335
    1336
    133
    Übrigens bei der Zahl "1.000.000" oder so ähnlich klappt das wunderbar.

    Wo liegt jetzt das Problem ?

    -Speedy


    Edit : Problem gelöst es lag an der nicht verwendeten Funktion "file_text_close".
    Bitte schließen.
  • habs mal getestet und die variablen anzeigen lassen indem ich das ganze verlangsamt habe:

    GML-Quellcode

    1. list=ds_list_create();
    2. p=0;
    3. i=1;
    4. while (i!=1000)
    5. {
    6. ds_list_add(list,i);
    7. i+=1;
    8. sleep(20)
    9. screen_redraw()
    10. }
    11. show_message(string(ds_list_size(list)));
    12. f=file_text_open_write("lol.txt");
    13. execute_shell("lol.txt",0)
    14. while (p!=i)
    15. {
    16. file_text_write_string(f,string(ds_list_find_value(list,p)));
    17. file_text_writeln(f);
    18. p+=1;
    19. sleep(20)
    20. screen_redraw()
    21. }
    Alles anzeigen

    und dann halt einfach drawen... die beiden variablen gehen tatsächlich korrect bis 1000 durch... es liegt villeicht am schreiben in die datei?
    edit: dann ist es ja gelöst... du kannst es auch einfach mal als gelöst markieren