Archivos Binarios De Acceso Directo
Los archivos de acceso directo pueden modificarse sin la necesidad de realizar todo el proceso de crear un nuevo fichero y modificar la copia.
Reposicionarun archivo mover el indicador de registro activo hacia cualquier parte de un archivo para acceder directamente a esa parte.
1) rewind (puntero <archivo>);
Regresa el indicador de registroactivo al principio del archivo. Es el equivalente a cerrar y volver a abrir un archivo.
2) fseek (puntero <archivo>, int <desplazamiento>, <punto de partida deldesplazamiento>);
El desplazamiento debe estar expresado en bytes y es el desplazamiento que va a hacer el indicador de registro activo en el fichero. Como se mueve en bytes y no todas mis variables tienen unbyte, es conveniente multiplicar el número de desplazamiento por sizeof de la variable que utilizo.
El punto de partida indica dese qué lugar se va a realizar el desplazamiento. Hay tres constantessimbólicas predefinidas para esto y son (en mayúscula):
SEEK_SET desde el comienzo del archivo
SEEK_CUR desde la posición actual del indicador de registro activo. En este caso se admiten tantodesplazamientos positivos como negativos. Si el desplazamiento es negativo, el sizeof hay que castearlo con un (int).
SEEK_END desde el final del archivo. Si se diera el siguiente caso:fseek(arch,3*sizeof(registro),SEEK_END) me estoy moviendo 3 lugares hacia la derecha a partir del final del archivo, lo que implica que mi lectura va a resultar fallida, ya que no hay nada del archivo allí.Pero bien, si mi función es para escribir, entonces se realizará una expansión del archivo, que implica que se guarde el último registro y en el medio me guarde basura.
3)ftell(puntero<archivo>): devuelve un entero, que es el lugar donde nos ubicamos dentro del archivo. El entero es el valor en bytes y para saber en qué registro estamos, se divide el ftell por el sizeof de mi...
Regístrate para leer el documento completo.