Szerző Téma: SSCANF kérdés, darabolás szóköznél?  (Megtekintve 1310 alkalommal)

SSCANF kérdés, darabolás szóköznél?
« Dátum: 2014. május 18. - 20:09:21 »
0 Show voters
sziasztok!
hogyan tudom megtenni, hogy a parancs bemeneti értékeit a szóköznél darabolom?!
példa: /gyereide Jóska Pista Béla
ennek visszatérése:
Jóska ->1. változó
Pista ->2.változóba
Béla ->3.változóban
így oldottam meg.. ez rendben van? :o
U, S
U->User ID vagy névnél való elválasztás
I -> számnál való elválasztás
S-> ebben nem vagyok biztos, de egy szónál való elválasztás?!
 

CMD:parancs(playerid, params[])
{
sscanf(params,\"uis\", userid, ido, ok))  // return SendClientMessage. . .
}
« Utoljára szerkesztve: 2014. május 18. - 20:11:07 írta Bloody44 »

SSCANF kérdés, darabolás szóköznél?
« Válasz #1 Dátum: 2014. május 19. - 16:31:21 »
0 Show voters
ha játékosokat akarsz akk igy
 

sscanf(params,\"s[30]s[30]s[30]\",nev1,nev2,nev3))  // return SendClientMessage. . .

 
de ha id-nél
 

sscanf(params,\"uuu\",id1,id2,id3))  // return SendClientMessage. . .

 
ha fájlból akarod elválasztani a szóközeknél
 

sscanf(params,\"p< >s[30]s[30]s[30]\",nev1,nev2,nev3))  // return SendClientMessage. . .
//tod és akk ide:
//nev1id = ReturnPlayerID(nev1); // szedd le a stock-ot! :)
//és így tovább
//és gettelésnél:
//GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
//SetPlayerPos(nev1id,pos[0],pos[1],pos[2]+2);
//SetPlayerPos(nev2id,pos[0],pos[1],pos[2]+2);
//SetPlayerPos(nev3id,pos[0],pos[1],pos[2]+2);

 
ha fájlból de id-knél
 

sscanf(params,\"p< >uuu\",id1,id2,id3))  // return SendClientMessage. . .
//getnél ugyanez, csak nem kell a player id lekérdezése, mert ezt adod meg.

 
U.I:nem irtam le, de név szétválasztásánál lekérdezheted azt is, hogy létezik-e a név(játékos)
Jah meg lehet hogy nem jól irtam, mert az SSCANF érzékeny a szóközre.
Üdv.
U.I2: nem teszteltem.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
SSCANF kérdés, darabolás szóköznél?
« Válasz #2 Dátum: 2014. május 20. - 14:48:58 »
0 Show voters
Y Less írta:
 

Format               Use
L(true/false)            Optional logical truthity
l               Logical truthity
B(binary)            Optional binary number
b               Binary number
N(any format number)         Optional number
n               Number
C(character)            Optional character
c               Character
I(integer)            Optional integer
i               Integer
D(integer)            Optional integer
d               Integer
H(hex value)            Optional hex number
h               Hex number
O(octal value)            Optional octal value
o               Octal value
F(float)            Optional floating point number
f               Floating point number
G(float/INFINITY/-INFINITY/NAN/NAN_E)   Optional float with IEEE definitions
g               Float with IEEE definitions
{               Open quiet section
}               Close quiet section
P<delimiter>            Invalid delimiter change
p<delimiter>            Delimiter change
Z(string)[length]         Invalid optional string
z(string)[length]         Deprecated optional string
S(string)[length]         Optional string
s[length]            String
U(name/id)            Optional user (bot/player)
u               User (bot/player)
Q(name/id)            Optional bot (bot)
q               Bot (bot)
R(name/id)            Optional player (player)
r               Player (player)
A<type>(default)[length]      Optional array of given type
a<type>[length]            Array of given type
E<specification>(default)      Optional enumeration of given layout
e<specification>         Enumeration of given layout
\'string\'            Search string
%               Deprecated optional specifier prefix

SSCANF kérdés, darabolás szóköznél?
« Válasz #3 Dátum: 2014. május 18. - 20:09:21 »
0 Show voters
sziasztok!
hogyan tudom megtenni, hogy a parancs bemeneti értékeit a szóköznél darabolom?!
példa: /gyereide Jóska Pista Béla
ennek visszatérése:
Jóska ->1. változó
Pista ->2.változóba
Béla ->3.változóban
így oldottam meg.. ez rendben van? :o
U, S
U->User ID vagy névnél való elválasztás
I -> számnál való elválasztás
S-> ebben nem vagyok biztos, de egy szónál való elválasztás?!
 

CMD:parancs(playerid, params[])
{
sscanf(params,\"uis\", userid, ido, ok))  // return SendClientMessage. . .
}
« Utoljára szerkesztve: 2014. május 18. - 20:11:07 írta Bloody44 »

SSCANF kérdés, darabolás szóköznél?
« Válasz #4 Dátum: 2014. május 19. - 16:31:21 »
0 Show voters
ha játékosokat akarsz akk igy
 

sscanf(params,\"s[30]s[30]s[30]\",nev1,nev2,nev3))  // return SendClientMessage. . .

 
de ha id-nél
 

sscanf(params,\"uuu\",id1,id2,id3))  // return SendClientMessage. . .

 
ha fájlból akarod elválasztani a szóközeknél
 

sscanf(params,\"p< >s[30]s[30]s[30]\",nev1,nev2,nev3))  // return SendClientMessage. . .
//tod és akk ide:
//nev1id = ReturnPlayerID(nev1); // szedd le a stock-ot! :)
//és így tovább
//és gettelésnél:
//GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
//SetPlayerPos(nev1id,pos[0],pos[1],pos[2]+2);
//SetPlayerPos(nev2id,pos[0],pos[1],pos[2]+2);
//SetPlayerPos(nev3id,pos[0],pos[1],pos[2]+2);

 
ha fájlból de id-knél
 

sscanf(params,\"p< >uuu\",id1,id2,id3))  // return SendClientMessage. . .
//getnél ugyanez, csak nem kell a player id lekérdezése, mert ezt adod meg.

 
U.I:nem irtam le, de név szétválasztásánál lekérdezheted azt is, hogy létezik-e a név(játékos)
Jah meg lehet hogy nem jól irtam, mert az SSCANF érzékeny a szóközre.
Üdv.
U.I2: nem teszteltem.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
SSCANF kérdés, darabolás szóköznél?
« Válasz #5 Dátum: 2014. május 20. - 14:48:58 »
0 Show voters
Y Less írta:
 

Format               Use
L(true/false)            Optional logical truthity
l               Logical truthity
B(binary)            Optional binary number
b               Binary number
N(any format number)         Optional number
n               Number
C(character)            Optional character
c               Character
I(integer)            Optional integer
i               Integer
D(integer)            Optional integer
d               Integer
H(hex value)            Optional hex number
h               Hex number
O(octal value)            Optional octal value
o               Octal value
F(float)            Optional floating point number
f               Floating point number
G(float/INFINITY/-INFINITY/NAN/NAN_E)   Optional float with IEEE definitions
g               Float with IEEE definitions
{               Open quiet section
}               Close quiet section
P<delimiter>            Invalid delimiter change
p<delimiter>            Delimiter change
Z(string)[length]         Invalid optional string
z(string)[length]         Deprecated optional string
S(string)[length]         Optional string
s[length]            String
U(name/id)            Optional user (bot/player)
u               User (bot/player)
Q(name/id)            Optional bot (bot)
q               Bot (bot)
R(name/id)            Optional player (player)
r               Player (player)
A<type>(default)[length]      Optional array of given type
a<type>[length]            Array of given type
E<specification>(default)      Optional enumeration of given layout
e<specification>         Enumeration of given layout
\'string\'            Search string
%               Deprecated optional specifier prefix

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal