[Tutorial] Uso de Format ,Strcmp ,Strmid y strcat
#1

Introduccion

El uso de estas 4 funciones son importante en nuestro aprendizaje ya que
son utilizadas en muchas cosas tal que el dominio de estas funciones
es Obligatorio.


Desarrollo

1°- Concepto y Explicacion de Format o Formato


Format: Le da formato a una cadena para incluir variables y otras cadenas en su interior.

format(output[], len, const format[], {Float,_}:...);

output:
la cadena para generar el resultado. (mejor conocido como Array)

len:
La longitud mбxima de salida. (mejor conocido como el tamaсo del Array)

format:
La cadena de formato.

Float:
Nъmero indefinido de argumentos de cualquier etiqueta.

Operador Significado

%b Inserta un numero Binario.
%c Inserta un solo carбcter.
%d Inserta un Numero entero (conjunto).
%f Inserta un Numero Floatante (float).
%i Inserta un entero.
%s Inserta una Cadena(string).
%x Inserta un Numero hexadecimal.
%% Inserta el literal '%'

Ejemplo De Uso:
pawn Код:
public OnPlayerSpawn(playerid)
{
    new Nombre[MAX_PLAYER_NAME]; // la variable que guardara el nombre del Jugador.
    new Str[128];   // la cadena que nos generara el resultado.
    GetPlayerName(playerid, Nombre, sizeof(Nombre));// la funcion que nos dira el nombre del jugador
    format(Str, sizeof(Str), "Has Spawneado %s[%d]", Nombre, playerid); // el format  que le dara un nuevo formato al texto obteniendo el nombre y el id del usuario.
    SendClientMessage(playerid, -1, Str);// el Mensaje donde se mostrara el nuevo formato de Str.
    return 1;
}


2°- Concepto y Explicacion de strcmp

Strcmp: Compara dos cadenas para ver si son iguales.

Nota Importante:
- Strcmp consiste en tomar cada uno de los caracteres de una cadena,
y restar su cуdigo ASCII con el cуdigo ASCII del carбcter en la otra serie.

-Asн que digamos que quieres comparar la cadena "hola" con la cadena "hola" (que es lo mismo).

Esto es lo que strcmp harб:
- Toma el primer carбcter ('h') y lo resta con el carбcter de la segunda cadena ('h').
- Si los caracteres son los mismos, el resultado de la sustracciуn serб 0 (null).
- Si las 2 cadenas no son iguales el uno al otro, strcmp devuelve el resultado de las restas.

strcmp(const string1[], const string2[], bool:ignorecase, length);

string1:
La primera cadena a comparar.

string2:
La segunda cadena a comparar.

ignorecase:
Cuando se establece en true, el caso no importa. - HolA es el mismo que Hola.
Cuando se establece en false, el caso importa. - HolA no es lo mismo que Hola.

length es (opcional):
Cuando esta longitud estб definida, los primeros x caracteres serбn comparados
- haciendo "Hola" y "Hola No" con una longitud de 4 a decir que es la misma cadena.

Ejemplo De Uso:
pawn Код:
/// en este caso lo usaremos de la siguiente manera
/// si un jugador se conecta con el nombre de Cesar_******
/// llama a OnPlayerConnect y strcmp verifica si es igual si es asi lo banea

public OnPlayerConnect(playerid)
{
    new Nombre[MAX_PLAYER_NAME];
    new Str[128];
    GetPlayerName(playerid, Nombre, sizeof(Nombre));
    if( strcmp("Cesar_******", Nombre, true ) == 0 )
    {
    format(Str, sizeof(Str), "%s[%d] Ha sido expulsado del servidor razon: Nombre Prohibido", Nombre, playerid);
    SendClientMessageToAll(-1, Str);
    Ban(playerid);
    return 1;
    }
    return 1;
}
Resultado:



3°- Concepto y Explicacion de Strmid

Strmid: Extrae un rango de caracteres de una cadena.


strmid( dest[], const source[], start, end, maxlength=sizeof dest);

dest:
La cadena para almacenar los caracteres extraнdos.

source:
La cadena de la que se pueden extraer caracteres.

start:
La posiciуn del primer carбcter.

end:
La posiciуn del ultimo carбcter.

maxlength:
La longitud del destino. (Serб el tamaсo de dest por defecto)

Ejemplo De Uso:
pawn Код:
/// en este caso lo usaremos de la siguiente manera
/// si un jugador se conecta con parte del nombre "Cesar"
/// llama a OnPlayerConnect y strcmp verifica si es igual si es asi lo banea.

public OnPlayerConnect(playerid)
{
    new Nombre[MAX_PLAYER_NAME];
    new Str[128];
    GetPlayerName(playerid, Nombre, sizeof(Nombre));
    if( strmid( Nombre, "Cesar", 0, 24, 24))
    {
    format(Str, sizeof(Str), "%s[%d] Ha sido expulsado del servidor razon: Parte del Nombre Prohibido", Nombre, playerid);
    SendClientMessageToAll(-1, Str);
    Ban(playerid);
    }
    return 1;
}
Resultado:



4°- Concepto y Explicacion de strcat

strcat: Esta funciуn concatena (une) dos cadenas en la referencia de destino.

strcat(dest[],const source[],maxlength=sizeof string);

dest:
La cadena para almacenar las dos cadenas concatenadas pulg

source:
La cadena de origen.

maxlength:
La longitud mбxima del destino.

Ejemplo De Uso:
pawn Код:
public OnPlayerConnect(playerid)
{
    new strons[400];
    strcat(strons,"Hola Forums Samp Este es mi tutorial.\n");
    strcat(strons,"Hola Forums Samp Este es mi tutorial.\n");
    strcat(strons,"Hola Forums Samp Este es mi tutorial.");
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Tutorial", strons, "Aceptar", "");
    return 1;
}
Resultado:





5°- Concepto y Explicacion de Strdel

Strdel: Eliminar parte de una cadena.

Strdel(string[], start, end);

string: La parte de la cadena a borrar.

start: La posiciуn del Primer carбcter que desea eliminar.

end: La posiciуn del ъltimo carбcter que desea eliminar.

pawn Код:
CMD:test(playerid,params[])
{
new string[26] = "Hola Amigo De Forums Samp";// La Cadena con texto agregado.
strdel(string, 4, sizeof string);            // eliminare desde string 4 el ultimo string.
SendClientMessage(playerid, -1, string);     // Como resultado solo se mostrara "Hola".
return 1;
}

6°- Concepto y Explicacion de Strfind

Strfind: Bъsqueda de una subcadena en una cadena.

Comentario Parka:
A decir verdad no me habнa topado con esta funciуn
pero ahora que la leo y entiendo me parece muy ъtil
e Importante para muchas de mis ideas.


Strfind(const string[],const sub[],bool:ignorecase=false,pos=0);

string:
La cadena que desea buscar (El Pajar).

sub:
La cadena que desea buscar (La Aguja).

ignorecase (Opcional): Cuando se establece en true, el caso no importa - Hola es el mismo que HoLa. Cuando es false, no es lo mismo.

Position (Opcional): El desplazamiento para iniciar la bъsqueda.

pawn Код:
/*
En el pajar por asн decirlo buscaremos las Letras.
/text A
/text B
/text C
y con seguridad y testeado aparecerб el mensaje.
*/

CMD:text(playerid,params[])
{
    if(sscanf( params, "s[128]", params[0])) return 1;/// usare sscanf y zcmd para hacer funciуn de bъsqueda.

    if(strfind("A B C", params[0], true) != -1)/// -1 = "Porque" -1 = seria como 'no encontrado'
    {
    SendClientMessage(playerid, -1, "Se dio la funciуn strfind satisfactoriamente..!");/// si el text a buscar es valido nos dira esto.
    }
    else
    {
    SendClientMessage(playerid, -1, "No se dio la funciуn strfind..!");/// si el text a buscar es invalido nos dirб esto.
    }
    return 1;
}
Bueno ese fue todo mi tutorial aquel que no entienda o dude puede preguntar.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)