out of range bei array

  • GM 8

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

  • out of range bei array

    Hi,
    habe das Splitt String Script hier aus dem Forum kopiert aber irgendwie läuft es nicht. Bekomme immer den Fehler "out of range", dabei sagt die erste message 7 und dann folgt der Fehler.
    Find es nicht, hat jemand einen Tipp für mich?

    GML-Quellcode

    1. var str,split,list,pos,line;
    2. split = ":";
    3. str = "1:2:3:4:5:6:7";
    4. list = ds_list_create();
    5. if (string_count(split,str)==0) {ds_list_add(list,str);}
    6. else {
    7. do {
    8. pos = string_pos(split,str);
    9. line = string_copy(str,0,pos-1);
    10. ds_list_add(list,line);
    11. str = string_replace(str,line+split,"");
    12. } until (string_count(split,str)==0);
    13. ds_list_add(list,str);
    14. }
    15. show_message(string(ds_list_size(list)));
    16. show_message(string(list[4])); <--- erzeugt den Fehler, out of range
    17. return list;
    Alles anzeigen


    Danke

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

  • Oh, man kann im GM "listen" nicht als Array sehen! Sowas geht nur in den C-Sprachen.
    Im Gm ist deine list eine Daten-struktur auf der du mit ds_list_find_value(list,index) zugreifen musst!
    list[x] ist unabhängig davon ein arrax den du nur per Zuweisung mit Werten füllen kannst!

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Bisschen Off-Topic Tipps zu dem Thema:
    Bei einem Array liegt jedoch der Unterschied das sich der Wert in der ID nicht ändern kann also statisch bleibst bis du es selbst nicht machst.
    Wenn irgendwas[4] = 20. Dann bleibt das auch so, bei Listen ist das ein bisschen anders und zwar hängen die wie eine Kette/Liste zusammen. Du kannst zb. eine In der Mitte rauslöschen und alle die danach kommen rutschen um eins. Hättest du jetzt in deiner liste unter ID 4 den wert 10 gespeichter und löscht zb. ID 2, dann wäre der Wert von ID 4 ( also 10) in der ID 3. Zumindestens glaube ich das jetzt so. ( Wenn ich falsch liege möge man mich am besten verbessern ) Wenn dir das zu ungenau ist schau dir die Game Maker Dokumentation an also sprich die Game Maker-Hilfe.