split, array, string, ...

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
  • Moin,


    ich bin nun total verwirrt und hänge immer bei vergleichen von arrays o.ä. fest.


    Wie bereits in einem anderen Thread erwähnt arbeite ich an einer Toplist, und steige später auf mysql über.


    Aber dennoch, zuvor will ich dieses Problem lösen, da ich es sehr oft habe und es dann entweder irgendwie doof umgehe, oder meine Ideen ganz außenvor lasse:


    Hier mal mein Code, mit vielen, ausgeklammerten & vergeblichen Versuchen:



    new string3[64], Sibbih[128], Sippih[10][128]; // Create the string to store the read text in
    new File:example = fopen("/Top10.ini", io_read); // Open the file
    while(fread(example, string3)) //reads the file line-by-line
    {
    printf("%s", string3);
    split(string3, Sippih, '=');
    //sscanf(string3, "s[128]i", Sibbih, Sippih);
    // if(Sippih < 5)
    printf("%i", Sippih[1]);
    //sscanf(string3, "
    //TopKillerName[] = Splits[0][];
    //printf("%s %i", Splits[0], Splits[1]);
    }
    fclose(example);


    new string3[64], Sippih[10][128];
    new File:example = fopen("/Top10.ini", io_read);
    while(fread(example, string3))
    {
    printf("%s", string3);
    split(string3, Sippih, '=');
    // if(Sippih < 5) // Hier, was bei "Sippih" hin?
    printf("%i", Sippih[1]);
    }
    fclose(example);


    Ich wollte halt überprüfen, ob Sippih, also der gelesene Killswert größer als der größte Kill ist, aber da ich dann 2 Arrays vergleichen muss, hab ich stattdessen erstmal "5" eingesetzt und versuche es so, nur: Bei Möglichkeit 1 (sscanf) kommt 0 raus, da er wohl das Format:
    Name=Kills
    nicht splittet ( hab ich aus dem Forum, aber wohl im falschen Kontext ), daher erneut mit split versucht, aber so ergeben die integerwerte einen ganz anderen Wert.


    Wie müsste ich denn Sippih vergleichen? habe schon ettliches versucht:


    if(Sippih < 5), if(Sippih[] < 5), if(Sippih[][] < 5), if(Sippih[0] < 5) ... sogar mit strval hab ich vergebens aus Verzweiflung rumexperimentiert, gar geraten, aber überall son doofer array Fehler, kann mir das jemand erklären? Das ist so ne Hürde, an der ich noch nie richtig vorbei gekommen bin, wahrscheinlich werde ich dies auch nicht ohne fremde Hilfe schaffen...


    MfG
    TehEbil


    Edit:
    Das Script mal ohne den ganzen Kommentaren und versuchen...

    2 Mal editiert, zuletzt von TehEbil ()