Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/04/2015, 12:25
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Mostrar los últimos 5 registros de un archivo [C]

Hola a todos.
El programa funciona como lo deseaba sólo que me carcome una duda, lareto sugirió leer y escribir en un archivo de la misma manera que yo utilizo en la lectura de este programa.-

Código:
#include <stdio.h>

typedef struct{
    char marcado;
	char ingles[30];
	char espaniol[30];
}Traductor;


int main(void){
	Traductor traductor;
	FILE *ptrFile;
	long cRegistros, l5u;
	
	if( ( ptrFile = fopen( "archivo.txt", "r" ) ) == NULL){
		perror("\n\n error..:");
		return 1;
	}

	fseek(ptrFile, 0, SEEK_END);
	cRegistros = ftell( ptrFile ) / sizeof( traductor );	
	
	for( l5u = cRegistros - 5 ; l5u < cRegistros; l5u++ ){
		fseek( ptrFile, l5u*sizeof(traductor), SEEK_SET );

		fread( &traductor.marcado, sizeof(char), 1, ptrFile );
		fread( &traductor.ingles, sizeof(char), 30, ptrFile );
		fread( &traductor.espaniol, sizeof(char), 30, ptrFile );

		printf( "\n\n %-10s ->  %-15s", traductor.ingles, traductor.espaniol);
	}
		
	printf( "\n\n Pulse [Enter] para finalizar..." ); getchar();
	return 0;
}
Código:
cRegistros = ftell( ptrFile ) / sizeof( traductor );
en este caso sizeof( traductor ) puede fallar en el conteo de los registros y si no es correcta esta sintaxis ¿cómo debería contar los bytes que tiene la estructura?.-


Saludos y un abrazo.
Daniel