Huhu,
ich wollte meine Werte aus MySQL auslesen klappt alles wunderbar, will aber jetzt auf sscanf umsteigen. (Schneller besser etc)
Aber woher weis scanff das er jetzt der Variable X den wert Y geben soll.
an den parametern die man angibt in was er es splitten soll und beim delimiter wann er es soll
so um das näher zu verdeutlichen ein beispiel aus meinem autohaus
enum BuyCar
{
ID,
Model,
Float:X,
Float:Y,
Float:Z,
Float:R,
Color1,
Color2,
Preis,
Edit,
Autohaus,
}
sscanf(Query, "p<|>e<iiffffiiiii>", BuyInfo[i]);
Query ist hier ein definierter string der zum beispiel das beinhaltet.
0|560|1953.37|1325.35|8.92012|175.621|2|2|5000|0|1
So nun bearbeitet sscanf den string p<|> bedeutet das er den string splittet ab dem delimiter |
also
in
0
560
1953.37
1325.35
8.92012
175.621
2
2
5000
0
1
was danach den werten welche im enum aufgelistet sind zugeordnet werden.
BuyCar[i][ID]= 0
BuyCar[i][Model]= 560
BuyCar[i][X]= 1953.37
BuyCar[i][Y]= 1325.35
BuyCar[i][Z]= 8.92012
BuyCar[i][R]= 175.621
BuyCar[i][Color1]= 2
BuyCar[i][Color2]= 2
BuyCar[i][Preis]= 5000
BuyCar[i][Edit]= 0
BuyCar[i][Autohaus]= 1
Zu dem kannst du den delimiter beliebig ändern sei es ein | , / usw es ist alles möglich.
du musst das ganze nichtmal einem enum dann zuordnen normale werte gehen auch
sscanf(Query, "p<|>iiffffiiiii", BuyInfo[i][ID],BuyInfo[i][Model],BuyInfo[i][X],BuyInfo[i][Y]...);
du kannst auch das in arrays splitten ist auch möglich
new arr[5];
sscanf("1,2,3,4,5", "p<|>a<i>[5]", arr);
Ich hoffe mal deine Frage ist damit geklärt
weite infos findest auch hier
http://forum.sa-mp.com/showthread.php?t=120356
//edit
@ huGGy
dein code sagt eindeutig aus das
while(mysql_fetch_row(_string,"|"))
unnötig ist
"|"
oder sollte man es gleich über mysql_fetch_row splitten
so ist p<|> unnötig