28.11.2013, 05:19
Aqui un esquema casi completo:
La idea es evitar el uso de strtok y a su vez poder tener opciones de textos con espacios si quisieramos, por este motivo, accedemos directamente al string desde la posicion que nos interesa, en este caso omitiriamos todo el texto en rojo: "/micomando {este texto que sigue a lo rojo es variable}"
PD: podrias tranquilamente crear un comando que sea: "/hola a todos" de la siguiente forma:
Esto se debe a que la funcion strcmp compara texto caracter a caracter y los espacios, son caracteres validos.
pawn Код:
if(!strcmp(cmdtext, "/micomando", true, strlen("/micomando")))//comparamos solo la primer parte del string => ver funcionamiento de strcmp
{
new
idx = strlen("/micomando") + 1;//Indicamos en una variable la posicion a partir de la cual leeremos
print(cmdtext[idx]);
if(!strcmp(cmdtext[idx], "opcion 1", true))
{
//accion 1
printf("opcion 1");
}
else if(!strcmp(cmdtext[idx], "opcion 2", true))
{
//accion 2
printf("opcion 2");
}
else
{
//accion 3
printf("error");
}
return 1;
}
PD: podrias tranquilamente crear un comando que sea: "/hola a todos" de la siguiente forma:
pawn Код:
if(!strcmp(cmdtext, "/hola a todos", true))