String umdrehen

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

  • bestizt der gm eine explode() funktion, wie php? Damit kann man strings in array packen und dabei an einem trennzeichen trennen (hier wäre das |). also aus

    23|75
    wird
    [0] -> 23
    [1] -> 75
    usw...

    dann mit ner schleife diesen array umdrehen und wieder zusammensetzten. frag mich nich wie das in gml geht^^

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

  • um an boxxars beispiel anzuknüpfen wäre die lösung die ihm nich einviel folgende: wenn du weißt, wie viele stellen dieser array dan hat, machst du einfach ne schleife:

    GML-Quellcode

    1. for (i=1; i<=/*länge des arrays*/; i+=1)
    2. {
    3. neuer_array[i]=alter_array[/*länge des arrays*/-i];
    4. }


    für unbekannte längen müsste da aber noch jemand posten, wie man die anzahl der belegten stellen in einem array ermittelt. diese zahl dann in eine variable speichern, und dann an stelle von /*länge des arrays*/ einsetzen. und dann, falls mit diesem array noch gearbeitet werden soll, einfach noch folgende schleife hinterher:

    GML-Quellcode

    1. for (i=1; i<=/*länge des arrays*/; i+=1)
    2. {
    3. alter_array[i]=neuer_array[i];
    4. }

    damit du dann die umgedrehten werte im originalarray hast.
  • Wird nicht funktionieren. Du machst aus

    75|23|36 -> 63|32|57, das ergebnis sollte aber 36|23|75 sein.

    Quellcode

    1. oldPosition=0;
    2. STR_NewString = '';
    3. for( i = 0; i < string_length(STR_BaseString); i+=1)
    4. {
    5. //Den string nach dem nächstbesten '|' durchsuchen
    6. if(string_char_at(STR_BaseString,i) == '|')
    7. {
    8. // Dann den Teil vor dem '|' kopieren und in einen neuen String einfügen
    9. STR_tmp = string_copy(STR_BaseString,oldPosition,i-oldPosition);
    10. STR_NewString = string_insert('|' + STR_tmp, STR_NewString, 0);
    11. oldPosition = i + 1;
    12. }
    13. }
    14. //okay, zum schluß noch das erste '|' löschen
    15. STR_NewString = string_delete(STR_NewString,0,1)
    Alles anzeigen


    STR_BaseString ist der Orginalstring, in STR_NewString steht der "umgedrehte String".

    ich bin mir gerade nicht sicher ob der code so funktioniert, da ich grade keinen Gamemaker zur hand habe.
    ...
  • Oh... okay, das hab ich dann übersehn.

    Anyway, soweit ich das bis jetzt gesehen habe besitzt GML keine funktion wie explode. Man kann jedoch meinen Ansatz benutzen oder eine kombination zwischen string_search (fragt mich jetzt bitte nicht wie die funktion genau heißt, sie gibt auf jedenfall die Position eines Substrings innerhalb eines Strings zurück ~ in dem fall das Trennzeichen) und string_delete lösen. Also im endeffeckt erstes Trennzeichen suchen, zahlen davor in ein Array schubsen, alles vor dem Trennzeichen (inklusive Trennzeichen löschen), das ganze solange wiederholen bis kein Trennzeichen mehr übrig ist.
    ...