Frage zu Random Funktion - Array

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,


    Gerade habe ich mir mal ein Beispiel Array erstellt, das sieht so aus:

    Nun möchte ich gerne die Hälfte der Einträge in dem Array (in diesem Fall 5) via Random in die MySQL Datenbank eintragen.
    Wie kann ich das am besten verwirklichen? :thumbup:


    Mit freundlichen Grüßen
    German_ScripterHD

  • Das Array so:
    enum arrayEnum {
    text[10],
    Float:x,
    integer
    };


    new array[10][arrayEnum] = {
    {"Das",234.012,111},
    {"ist",354.012,222},
    {"ein",213.012,333},
    {"Bespiel",221.012,444},
    {"Array.",861.012,555},
    {"...",55.012,666},
    {"xxx",36.012,777},
    {"aaa",4523.012,888},
    {"bbb",872.012,999},
    {"ccc",7.012,101}
    };


    Die Berechnung der Werte so:
    new tmp[sizeof(array)][arrayEnum];
    tmp = array;
    new rnd;
    for(new i = 0; i < sizeof(array) / 2; i++)
    {
    rnd = random(sizeof(array) - i);
    //--------------Ausgabe----------------------//
    //Hier in die Datenbank eintragen, anstatt
    //dem print.
    printf("%d: %s", i, tmp[rnd][text]);
    //---------------Ende------------------------//
    for(new j = rnd; j < sizeof(array)-1; j++)
    {
    format(tmp[j][text], 10, tmp[j+1][text]);
    }
    tmp[sizeof(array)-i-1][text][0] = '\0';
    }


    Zur Erklärung hier ein Log. Jeweils die erste Zeile ist das selektierte Item, und danach die 10 Zeilen, wie das "tmp" Array jetzt aussieht.
    Damit keine doppelten Treffer auftreten, wird das selektierte Item jeweils aus der Liste gelöscht, und die darüber stehenden Items um eins nach unten verschoben.
    Daher bilden sich hinten die null's.