Hola amigos.
Muchas gracias a los 2, ya conseguí lo que pretendía, luego voy a profundizar en los códigos de ambos para aprender cosas que seguramente desconozco.-
Una última ayudita, les pediría que recorran mi programita y me digan si está todo correcto o que debo corregir y que pasa si muevo el cursor más allá del último registro.-
Código:
#include <stdio.h>
typedef struct {
char marcado;
char ingles[30];
char espaniol[30];
} Traductor;
int main(void){
FILE *ptrFile;
Traductor trad;
long mark;
if( ( ptrFile = fopen( "archivo.txt", "r" ) ) == NULL ){
perror( "Error" );
return 1;
}
// el modo r posiciona el cursor al comienzo del archivo.
fseek (ptrFile, 1*sizeof(trad), SEEK_CUR); // mover el cursor 1 registro asía abajo.
mark = ftell ( ptrFile ); // guardar posición actual
fread (&trad, sizeof ( Traductor ), 1, ptrFile );
printf( "\n\n %s === %s\n\n", trad.ingles, trad.espaniol );
fseek (ptrFile, 3*sizeof(trad), SEEK_CUR); // mover el cursor 3 registro asía abajo.
fread (&trad, sizeof ( Traductor ), 1, ptrFile );
printf( "\n\n %s === %s\n\n", trad.ingles, trad.espaniol );
fseek ( ptrFile, mark, SEEK_SET ); // restaurar posición previa.
fread (&trad, sizeof ( Traductor ), 1, ptrFile );
printf( "\n\n %s === %s\n\n", trad.ingles, trad.espaniol );
fclose(ptrFile);
return 0;
}
Saludos y muchas gracias.
Daniel