Eduardo
2006-09-04 13:45:25 UTC
Tengo el siguiente problema:
Debo llenar una estructura con formato arbitrario, los datos a llenar
estan como texto en un fichero y el tipo (float,int o char) se en un
string aparte.
Voy leyendo el tipo de dato en el string y selecciono la funciones
GetXXX() para que me devuelva el valor correspondiente (si era un
string, un puntero), pongo el valor en la estructura e incremento el
puntero con el valor correspondientre al tipo de dato.
Pos bien, no me sale ni a palos el cast (sin mentir el tipo)
Alguno tendria la gentileza de decirme deberia ser?
Este es un pedazo de codigo que tal vez se explique mejor
//--------------------------------------------------
void *Funciones ;
int GetInt(void);
float GetFloat(void);
char *GetString(void);
void Ini_Struct(void *var , char *key , char *datatype ){
char *dtype;
//............
//............
dtype = datatype;
do{
switch(*dtype){
case 'i': *(int*)var = GetInt() ;
((int*)var)++;
dtype++; break ;
case 'f': *(float*)var = GetFloat() ;
((float*)var)++;
dtype++; break ;
case 's': ????????? var = GetString() ;
(????? var)++;
dtype++; break ;
//..................
}
} while(Go2NextArg());
//...........
}
void main(void){
//....................
Ini_Struct(&Funciones , "Funciones" , "siff" );
//....................
}
//--------------------------------------------------
Debo llenar una estructura con formato arbitrario, los datos a llenar
estan como texto en un fichero y el tipo (float,int o char) se en un
string aparte.
Voy leyendo el tipo de dato en el string y selecciono la funciones
GetXXX() para que me devuelva el valor correspondiente (si era un
string, un puntero), pongo el valor en la estructura e incremento el
puntero con el valor correspondientre al tipo de dato.
Pos bien, no me sale ni a palos el cast (sin mentir el tipo)
Alguno tendria la gentileza de decirme deberia ser?
Este es un pedazo de codigo que tal vez se explique mejor
//--------------------------------------------------
void *Funciones ;
int GetInt(void);
float GetFloat(void);
char *GetString(void);
void Ini_Struct(void *var , char *key , char *datatype ){
char *dtype;
//............
//............
dtype = datatype;
do{
switch(*dtype){
case 'i': *(int*)var = GetInt() ;
((int*)var)++;
dtype++; break ;
case 'f': *(float*)var = GetFloat() ;
((float*)var)++;
dtype++; break ;
case 's': ????????? var = GetString() ;
(????? var)++;
dtype++; break ;
//..................
}
} while(Go2NextArg());
//...........
}
void main(void){
//....................
Ini_Struct(&Funciones , "Funciones" , "siff" );
//....................
}
//--------------------------------------------------