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:
[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