Ficheros de C
¿Cómo puedo leer un fichero de una manera no secuencial?¿Hay alguna función que me permita ir moviendo un puntero a lo largo del fichero?
GRACIAS.
GRACIAS.
la fseek(), me parece qu ete deja moverte por el fichero:
este es el prototipo:
int fseek(FILE *stream, long offset, int whence);
este es el prototipo:
int fseek(FILE *stream, long offset, int whence);
Hola,
un oftream tiene las funciones seekp() y tellp() para eso.
Las versiones para un iftream son seekg() y tellg().
Acá va un ejemplo:
oftream elArchivo("archivo.xxx"); // abres el archivo
elArchivo << "cualquier cosa"; // le escribes cualquier cosa
ofstream::pos_type p = elArchivo.tellp(); // p guardas la posición
// actual.
elArchivo << "lo que se te ocurra"; // escribes algo más.
elArchivo.seekp(p); // vueta a la posición guardada.
elArchivo.seekp(-14,ios_base::cur); // te lleva a la primera 'c' de
// "cualquier cosa".
elArchivo.seekp(0, ios_base::beg); // va al inicio del archivo.
elArchivo.seekp(0, ios_base::end); // al final.
Y bueno, esta es la única forma de leer un archivo en una forma no secuencial.
Suerte,
Alejandro
un oftream tiene las funciones seekp() y tellp() para eso.
Las versiones para un iftream son seekg() y tellg().
Acá va un ejemplo:
oftream elArchivo("archivo.xxx"); // abres el archivo
elArchivo << "cualquier cosa"; // le escribes cualquier cosa
ofstream::pos_type p = elArchivo.tellp(); // p guardas la posición
// actual.
elArchivo << "lo que se te ocurra"; // escribes algo más.
elArchivo.seekp(p); // vueta a la posición guardada.
elArchivo.seekp(-14,ios_base::cur); // te lleva a la primera 'c' de
// "cualquier cosa".
elArchivo.seekp(0, ios_base::beg); // va al inicio del archivo.
elArchivo.seekp(0, ios_base::end); // al final.
Y bueno, esta es la única forma de leer un archivo en una forma no secuencial.
Suerte,
Alejandro
