Einfaches Erstellen von Arrays

    • Skript

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

    • Einfaches Erstellen von Arrays

      Aufgrund diesen Themas habe ich folgende Scripts erstellt:

      [hide=array_create_numbers]

      GML-Quellcode

      1. /*
      2. ** Usage:
      3. ** array_create_numbers(name,values);
      4. **
      5. ** Arguments:
      6. ** name name of the array (string)
      7. ** values values which have to be saved in the array (string with comma seperation)
      8. **
      9. ** Returns:
      10. ** length of the created array
      11. **
      12. ** Example:
      13. ** array_create_numbers("test_array","0,1,1,2,3,5,8,13");
      14. **
      15. ** By Trixt0r
      16. */
      17. var name,values,i,j,temp;
      18. name = argument0;
      19. values = argument1;
      20. j = 0;
      21. for(i = 1; i <= string_length(values); i+=1){
      22. temp = "";
      23. while(string_char_at(values,i) != "," && i <= string_length(values)){
      24. temp += string_char_at(values,i);
      25. i += 1;
      26. }
      27. if(temp != ""){
      28. variable_local_array_set(name,j,real(temp));
      29. j += 1;
      30. }
      31. }
      32. return j;
      Alles anzeigen
      [/hide]

      [hide=array_create_strings]

      GML-Quellcode

      1. /*
      2. ** Usage:
      3. ** array_create_strings(name,values,seperator);
      4. **
      5. ** Arguments:
      6. ** name name of the array (string)
      7. ** values values which have to be saved in the array (string with comma seperation)
      8. ** seperator character which seperates the values (optional) default is ','
      9. **
      10. ** Returns:
      11. ** length of the created array
      12. **
      13. ** Example:
      14. ** array_create_strings("test_array","a,b,c,d,E,FGH,I,JK");
      15. **
      16. ** By Trixt0r
      17. */
      18. var name,values,i,j,temp,sep;
      19. name = argument0;
      20. values = argument1;
      21. if(string(argument2) != '0') sep = argument2;
      22. else sep = ',';
      23. j = 0;
      24. for(i = 1; i <= string_length(values); i+=1){
      25. temp = "";
      26. while(string_char_at(values,i) != sep && i <= string_length(values)){
      27. temp += string_char_at(values,i);
      28. i += 1;
      29. }
      30. if(temp != ""){
      31. variable_local_array_set(name,j,temp);
      32. j += 1;
      33. }
      34. }
      35. return j;
      Alles anzeigen
      [/hide]

      Es funktioniert folgendermaßen:
      Als erstes Argument übergibt man den Namen des Arrays und als zweites Argument eine Folge von Zahlen bzw. Zeichenketten, die in einem String durch Kommata getrennt sind. Es wird ein Array mit dem gewählten Namen und den übergebenen Werten erstellt und man erhält die Länge des Arrays zurück.
      Achtung: array_create_numbers(...); funktioniert nur mit reellen Zahlen und array_create_strings(...) nur mit Strings. Ein weiteres Problem ist, dass man kein Komma als Wert übergeben kann. Vielleicht werde ich das Problem noch fixen.

      Hoffe jemand kann diese Scripts gebrauchen. ;)

      Edit: Vorschlag von Soul Reaver in die Tat umgesetzt.

      MfG Trixt0r

      Albert Einstein schrieb:

      Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.

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