[Duda] Sscanf
#1

Bien, pues leyendo el post del plugin Sscanf de ******, me doy cuenta que existe la posibilidad de asginar parametros a los componentes de un enumerador.
Bien, el ejemplo que da ****** es el siguiente:
pawn Код:
enum E_DATA
{
    E_DATE_C, Float:E_DATA_X, E_DATA_NAME[32], E_DATA_Z
}

main
{
    new var[E_DATA];
    sscanf("1 12.0 Bob c", "e<ifs[32]c>", var);
}
Bien, yo quise implementar esto para leer los parбmetros desde un Archivo X y asignarlos al enumerador.
El problema esta en que los parбmetros escritos dentro del archivo, estan separados por '|', por lo tanto no asigna los parбmetros a las variables del enumerador.
Aquн esta como lo hice yo...
pawn Код:
enum Enumerador
{
    EsInteger,
    EsString[25],
    Float:EsFloat
}
new Info[Numero][Enumerador];
forward LeerArchivo();
public LeerArchivo()
{
    new Data[256], Hash = 1, File: File = fopen("Archivo.cfg", io_read);
    if(File)
    {
        do
        {
            new ASD[Enumerador];
            fread(File, Data);
            sscanf(Data, "p<|>e<is[25]f>", ASD);
            printf("Integer:[%i], String:[%s], Float:[%f]", Info[Hash][EsInteger], Info[Hash][EsString], Info[Hash][EsFloat]);
        }
        while(Hash < Max_Var);
        fclose(File);
    }
}

//El Archivo esta asн: 1|String|123.123
//Y lo que imprime en la consola es asн: Integer:[0], String:[], Float:[0.00000]
їAlguna idea sobre como lograr que funcione y asigne los parametros correctamente?
Reply
#2

Estas obteniendo la info en la variable ASD y vos haces el print con la variable Info, seria de esta forma
pawn Код:
sscanf(Data, "p<|>e<is[25]f>", Info[Hash]);
 printf("Integer:[%i], String:[%s], Float:[%f]", Info[Hash][EsInteger], Info[Hash][EsString], Info[Hash][EsFloat]);
Reply
#3

Me sirviу a la perfecciуn. Gracias.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)