Problem mit sscanf2 Splitfunktion

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 zusammen,


    ich habe ein Problem mit der sscanf Split Funktion. Mein Problem ist, dass eine Variable nicht richtig gesplittet wird!
    Ich benutze die Funktion bei einer MySQL Abfrage. Eigentlich müsste alles so stimmen, dennoch wird eine Variable falsch gesplittet!


    Mein Pawn Code:



    new data[550];
    mysql_query("SELECT * FROM Shops");
    mysql_store_result();
    shop_count = 0; //Ja habe ich Global definiert..
    while(mysql_fetch_row(data))
    {
    printf("Raw Shop Data: \"%s\"", data);
    sscanf(data, "e<p<|>iis[32]s[64]fffii>", Shop[shop_count]);
    printf("sscanf Shop Data: \nID: %i | Type: %i | Name: %s (%s) | Owner: %s \nXYZ: %f.%f.%f | Kasse: %i | Preis: %i",
    Shop[shop_count][sID], Shop[shop_count][sTyp], Shop[shop_count][sName], GetShopTypName(Shop[shop_count][sTyp]), Shop[shop_count][sOwner], Shop[shop_count][sX], Shop[shop_count][sY],
    Shop[shop_count][sZ], Shop[shop_count][sKasse], Shop[shop_count][sPreis]);
    if(strcmp(Shop[shop_count][sOwner], "Niemand", true))
    {
    format(data, 200, "\n%s \n%s \nBesitzer%s", GetShopTypName(Shop[shop_count][sTyp]), Shop[shop_count][sName], Shop[shop_count][sOwner]);
    Shop[shop_count][sPickup] = CreateDynamicPickup(19130, 0, Shop[shop_count][sX], Shop[shop_count][sY], Shop[shop_count][sZ], 0);
    Shop[shop_count][sLabel] = CreateDynamic3DTextLabel(data, 0xFFFFFF, Shop[shop_count][sX], Shop[shop_count][sY], Shop[shop_count][sZ], 15);
    }
    else
    {
    format(data, 200, "\n%s zu verkaufen! \nPreis: %i$", GetShopTypName(Shop[shop_count][sTyp]), Shop[shop_count][sPreis]);
    Shop[shop_count][sPickup] = CreateDynamicPickup(1274, 0, Shop[shop_count][sX], Shop[shop_count][sY], Shop[shop_count][sZ], 0);
    Shop[shop_count][sLabel] = CreateDynamic3DTextLabel(data, 0xFFFFFF, Shop[shop_count][sX], Shop[shop_count][sY], Shop[shop_count][sZ], 15);
    }
    shop_count++;
    }
    mysql_free_result();



    Ich habe bereits die Rohen Daten von der Abfrage, sowie die Gesplitteten Daten printen lassen. Das Ergebnis kommt mir aber echt spanisch vor.
    Auszug aus dem Log:


    Code
    [17:52:38] Raw Shop Data: "1|1|Buyable Shop|Niemand|1534.71|-1667.83|5.89062|0|122"
    [17:52:38] sscanf Shop Data: 
    ID: 1 | Type: 1 (Burger Shot) | Name: Buyable Shop | Owner: Niemand 
    XYZ: -0.000005.1534.709960.-1667.829956 | Kasse: 0 | Preis: 122



    Wie man sieht, wird der X Wert falsch geplittet, obwohl er richtig ausgelesen wurde! Weiß jemand weiter?


    Achso, ich benutze die neueste sscanf Version.


    Mfg,
    UncleSub