PDA

Ver la versión completa : Problema con la funcion GpFileRead(...)



kmkzk
02/10/2004, 18:12
Hola!
Estoy intentando leer un fichero ascii desde un programilla en GP32, con el SDK de gamepark.
Tengo una SMC virtual con dicho fichero dentro, y las pruebas las hago desde el emulador Geepee, con la SMC virtual previamente cargada.
Os pongo lo que se supone que es el codigo que lee el fichero, mas o menos ;)


int ERR_CODE;
char *fichero = "gp:\fichero1.txt"
char buffer[8];
int read_count;
F_HANDLE *FILE;

ERR_CODE = GpFatInit();
ERR_CODE = GpFileOpen(fichero,OPEN_R,FILE);
ERR_CODE = GpFileRead ( *FILE, buffer, 8, &read_count );
ERR_CODE = GpFileClose (*FILE );


El problema me lo da en GpFileRead, ya que retorna el valor 11, que significa 'Parametro no valido' (algun parametro que le paso a la funcion debe de estar mal, pero no se cual ni porque).
Me he asegurado que el GpFatInit, y el GpFileOpen los hace bien, ya que retorna el valor 0 (OK).

A ver si alguien puede echarme una mano :)
Gracias de antemano.
Un saludo!!

mortimor
02/10/2004, 18:52
...
F_HANDLE *FILE;

ERR_CODE = GpFatInit();
ERR_CODE = GpFileOpen(fichero,OPEN_R,FILE);
ERR_CODE = GpFileRead ( *FILE, buffer, 8, &read_count );
ERR_CODE = GpFileClose (*FILE );

...




El problema esta en que pasas los parametros mal.


...
F_HANDLE *FILE; <<<--- Mal, debe ser F_HANDLE FILE;

ERR_CODE = GpFatInit();
ERR_CODE = GpFileOpen(fichero,OPEN_R,FILE);
> Mal -->>________________________ ^ debe ser &FILE
ERR_CODE = GpFileRead ( *FILE, buffer, 8, &read_count );
> Mal -->>_____________ ^ debe ser FILE sin *
ERR_CODE = GpFileClose (*FILE );
> Mal -->>_____________ ^ debe ser FILE sin *

...


A ver si es eso :)

Ups se me habia pasado una cosa. Ya ta.

kmkzk
02/10/2004, 19:11
Muchas gracias mortimor!
Llevaba un par de dias atascado con esta tonteria y ya me estaba estirando de los pelos.
Que fallo mas tonto, a veces soy un poco patan con los punteros. :cool:
Porlomenos ahora retorna el valor 'OK', asi que parece que funciona bien, de todas formas, el buffer me lo devuelve vacio. No se, esto lo tengo que mirar mejor, a ver que pasa.

Un saludo!!

mortimor
02/10/2004, 19:20
Mira bien la documentacion del SDK y los ejemplos, vienen casi todas las funciones comentadas. Aun asi siempre puedes preguntar, que alguno sabra como solucionarlo :)