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:
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?.-cRegistros = ftell( ptrFile ) / sizeof( traductor );
Saludos y un abrazo.
Daniel