Szerző Téma: sscanf  (Megtekintve 929 alkalommal)

sscanf
« Dátum: 2012. Szeptember 01. - 21:58:11 »
0
Üdv!
Megtudná mondani valaki, hogyha az alábbi kódot megcsinálom, és kipróbálom (beirom pl /bsz nyit),
 
CMD:bsz(playerid, params[])
{
new bString[9+1];
if(sscanf(params, \"s[9]\", bString))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
}
else
{
   if(!strcmp(bString, \"kivétel\", true))
   {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
   }
   if(!strcmp(bString, \"befizetés\", true))
   {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
   }
   if(!strcmp(bString, \"utalás\", true))
   {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
   }
      if(!strcmp(bString, \"nyit\", true))
   {
                SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
   }
}
return 1;
}

 
akkor miért mindegyikre \"Használat: /bsz <kivétel | befizetés | utalás>\"-t hoz ki?

Nem elérhető Gabor..

  • 1883
  • Gabor..
    • Profil megtekintése
sscanf
« Válasz #1 Dátum: 2012. Szeptember 01. - 22:03:55 »
0

CMD:bsz(playerid, params[])
{
new bString[9+1];
if(sscanf(params, \"s[9]\", bString)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
if(!strcmp(bString, \"kivétel\", true))
{
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
}
if(!strcmp(bString, \"befizetés\", true))
{
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
}
if(!strcmp(bString, \"utalás\", true))
{
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
}
   if(!strcmp(bString, \"nyit\", true))
{
                SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
}
                return 1;
}

sscanf
« Válasz #2 Dátum: 2012. Szeptember 01. - 22:11:04 »
0
Nem jó..

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
sscanf
« Válasz #3 Dátum: 2012. Szeptember 01. - 22:19:36 »
0
CMD:bsz(playerid, params[])
{
                if(isnull(params)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
       
                if(!strcmp(params, \"kivétel\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
                }
                else if(!strcmp(params, \"befizetés\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
                }
                else if(!strcmp(params, \"utalás\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
                }
                else if(!strcmp(params, \"nyit\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
                }
                else SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
                return 1;
}

Nem elérhető Gabor..

  • 1883
  • Gabor..
    • Profil megtekintése
sscanf
« Válasz #4 Dátum: 2012. Szeptember 01. - 22:20:28 »
0
Le is tesztelted úgy is?
Tessék, újra írtam, ha ez sem jó, akkor rossz a sscanf pluginod, avagy includeod.
 

CMD:bsz( playerid, params[] )
{
new
 szString[ 9 + 1 ];
if( sscanf( params, \"s[9]\", szString ) ) return SendClientMessage( playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivetel/befizetes/utalas/nyit>\" );
if( !strcmp( szString, \"kivetel\", true ) )
{
          SendClientMessage( playerid, COLOR_LIGHTBLUE, \"sör\" );
}
if( !strcmp( szString, \"befizetes\", true ) )
{
          SendClientMessage( playerid, COLOR_LIGHTBLUE, \"pálinka\" );
}
if( !strcmp( szString, \"utalas\", true ) )
{
           SendClientMessage( playerid, COLOR_LIGHTBLUE, \"bor\" );
}
if( !strcmp( szString, \"nyit\", true ) )
{
           SendClientMessage( playerid, COLOR_LIGHTBLUE, \"vodka\" );
}
return 1;
}

 
Az insull() fügvény használata azért nem elõnyös ilyen esetben, mert sscanf-nél megszabhatod, hogy a változónak( jelen esetben szString ) , amibe belekéred az adatot, mennyi cellája legyen, se több se kevesebb. De isnullnál nem. Ott beírhatok 300 karaktert is, és akkor annyi cella lesz foglalt a memóriában, és így memória pazarlás. Ellenkezõ esetben,  9 cella, + 1 az \\0 karakternek.
« Utoljára szerkesztve: 2012. Szeptember 01. - 22:28:17 írta Gabor.. »

sscanf
« Válasz #5 Dátum: 2012. Szeptember 01. - 22:24:47 »
0
Idézetet írta: Casamiro date=1346530776\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27254\" data-ipsquote-contentclass=\"forums_Topic

CMD:bsz(playerid, params[])
{
                if(isnull(params)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
       
                if(!strcmp(params, \"kivétel\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
                }
                else if(!strcmp(params, \"befizetés\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
                }
                else if(!strcmp(params, \"utalás\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
                }
                else if(!strcmp(params, \"nyit\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
                }
                else SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
                return 1;
}

 

AAAA mûködik, köszönöm! De akkor most az sscanfnak mi baja volt? Mit írtam meg benne rosszul?

Dupla hozzászólás automatikusan összefûzve. ( 2012. Szeptember 01. - 22:36:04 )


Le is tesztelted úgy is?
Tessék, újra írtam, ha ez sem jó, akkor rossz a sscanf pluginod, avagy includeod.
 

CMD:bsz( playerid, params[] )
{
new
 szString[ 9 + 1 ];
if( sscanf( params, \"s[9]\", szString ) ) return SendClientMessage( playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivetel/befizetes/utalas/nyit>\" );
if( !strcmp( szString, \"kivetel\", true ) )
{
          SendClientMessage( playerid, COLOR_LIGHTBLUE, \"sör\" );
}
if( !strcmp( szString, \"befizetes\", true ) )
{
          SendClientMessage( playerid, COLOR_LIGHTBLUE, \"pálinka\" );
}
if( !strcmp( szString, \"utalas\", true ) )
{
           SendClientMessage( playerid, COLOR_LIGHTBLUE, \"bor\" );
}
if( !strcmp( szString, \"nyit\", true ) )
{
           SendClientMessage( playerid, COLOR_LIGHTBLUE, \"vodka\" );
}
return 1;
}

 
Az insull() fügvény használata azért nem elõnyös ilyen esetben, mert sscanf-nél megszabhatod, hogy a változónak( jelen esetben szString ) , amibe belekéred az adatot, mennyi cellája legyen, se több se kevesebb. De isnullnál nem. Ott beírhatok 300 karaktert is, és akkor annyi cella lesz foglalt a memóriában, és így memória pazarlás. Ellenkezõ esetben,  9 cella, + 1 az \\0 karakternek.
 
[/quote]
a tied még mindig nemmûködik GaborXD
« Utoljára szerkesztve: 2012. Szeptember 01. - 22:36:04 írta Extasy449 »

Nem elérhető Gabor..

  • 1883
  • Gabor..
    • Profil megtekintése
sscanf
« Válasz #6 Dátum: 2012. Szeptember 02. - 18:52:19 »
0
Idézetet írta: Extasy449 date=1346531087\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27254\" data-ipsquote-contentclass=\"forums_Topic


 
CMD:bsz(playerid, params[])
{
                if(isnull(params)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
       
                if(!strcmp(params, \"kivétel\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
                }
                else if(!strcmp(params, \"befizetés\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
                }
                else if(!strcmp(params, \"utalás\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
                }
                else if(!strcmp(params, \"nyit\", true))
                {
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
                }
                else SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
                return 1;
}

 

AAAA mûködik, köszönöm! De akkor most az sscanfnak mi baja volt? Mit írtam meg benne rosszul?

Dupla hozzászólás automatikusan összefûzve. ( 2012. Szeptember 01. - 22:36:04 )


Le is tesztelted úgy is?
Tessék, újra írtam, ha ez sem jó, akkor rossz a sscanf pluginod, avagy includeod.
 

CMD:bsz( playerid, params[] )
{
new
 szString[ 9 + 1 ];
if( sscanf( params, \"s[9]\", szString ) ) return SendClientMessage( playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivetel/befizetes/utalas/nyit>\" );
if( !strcmp( szString, \"kivetel\", true ) )
{
          SendClientMessage( playerid, COLOR_LIGHTBLUE, \"sör\" );
}
if( !strcmp( szString, \"befizetes\", true ) )
{
          SendClientMessage( playerid, COLOR_LIGHTBLUE, \"pálinka\" );
}
if( !strcmp( szString, \"utalas\", true ) )
{
           SendClientMessage( playerid, COLOR_LIGHTBLUE, \"bor\" );
}
if( !strcmp( szString, \"nyit\", true ) )
{
           SendClientMessage( playerid, COLOR_LIGHTBLUE, \"vodka\" );
}
return 1;
}

 
Az insull() fügvény használata azért nem elõnyös ilyen esetben, mert sscanf-nél megszabhatod, hogy a változónak( jelen esetben szString ) , amibe belekéred az adatot, mennyi cellája legyen, se több se kevesebb. De isnullnál nem. Ott beírhatok 300 karaktert is, és akkor annyi cella lesz foglalt a memóriában, és így memória pazarlás. Ellenkezõ esetben,  9 cella, + 1 az \\0 karakternek.
 
[/quote]
a tied még mindig nemmûködik GaborXD
 
[/quote]
Akkor a sscanf pluginod, vagy includeod hibás.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal