Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/06/2008, 12:45
Avatar de Mephisto
Mephisto
 
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 19 años
Puntos: 3
Respuesta: alta ordenada en ficheros

Como mencionas, el fseek que tienes en tu código te coloca el puntero al principio del archivo.

Para la lectura de cada registro y cargarlo en la estructura anexo un pequeño ejemplo:
Código:
fseek(File,0L,SEEK_SET);
while(fread(Dato,sizeof(Dato),1,File)){

                stReg = (Reg *) malloc(sizeof(Reg));//Reserva memoria para la estructura
	vdInitStReg(stReg); //En esta función limpio la estructura
		
	fseek(File,sizeof(char),SEEK_CUR);
	fread(&stReg->Estatus,sizeof(stReg->Estatus),1,File);

	fseek(File,sizeof(stReg->Estatus)-1,SEEK_CUR);
	fread(stReg->Fecha ,sizeof(stReg->Fecha)-1,1,File);

	fseek(File,sizeof(char) ,SEEK_CUR);
	fread(stReg->Hora, sizeof(stReg->Hora)-1,1,File);

}
Donde Dato es un char[] con la longitud del registro +1 para al final dejar un '\0'. File es el puntador a mi archivo. stReg es un apuntador a una estructura de tipo Reg. La estructura Reg esta compuesta por los elementos

char Estatus
char Fecha[]
char Hora[]


Quiza me diran que porque no cargo directamente del archivo a la estructura. El problema que encontre es que al tener Strings (char[]) si se carga directo del archivo, no deja el ultimo elemento del array en '\0' y las variables se desbordan

Espero te sirva.
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...