Ghd

Enviado por Programa Chuletas y clasificado en Matemáticas

Escrito el en español con un tamaño de 5,23 KB

 
Declarar el archivo
Ejemplo: FILE *a;
FILE *f;
Declarar el registro
struct regis
{
char nom[20];
int edad ;
char domicilio[30];
};
struct regis reg; // reg será el registro
Abrir el archivo
“w” Para crear un archivo, si existe lo borra y crea de nuevo.
“r” Solo se leerá el archivo
“a” Para agregar registros a un archivo existente.
“r+b” Para leer y grabar registros. (también “r+” )
Formato: nombre puntero tipo file = fopen(“ruta y nombre archivo”, “modo”);

Ejemplo 1: a=fopen(“datos.dat”,”w”); // se crea y permitirá grabar
Se asocia el nombre físico del archivo con el puntero. Las otras funciones harán referencia al archivo, a través, de la variable, en el ejemplo la variable
a.

Ejemplo 2:
f=fopen(“f:\\paso\\perso.dat”,”r”); // solo permitirá leer del archivo

Cerrar archivo: Al terminar su uso o abrirlo de otro modo debe cerrarlo previamente.
Formato: fclose(nombre variable archivo);

Ejemplo: fclose(a);
Leer registro: Al leer un registro, la información del registro debe quedar en una variable de tipo registro declarada.
Formato:
fread(&registro, tamaño de la estructura de registro, número de registro a leer, variable del archivo )
Ejemplo: fread(®, sizeof(reg),1,a);
Grabar registro: La información que se graba es la del registro declarada.
Formato:
fwrite(&registro, tamaño de la estructura de registro, número de registro a grabar, variable del archivo )
Ejemplo: fwrite(®, sizeof(reg),1,a);
La información se graba en el archivo asociado a la variable
a y está contenida en la variable de registro reg.

Preguntar si es fin del archivo: En algunas aplicaciones, por ejemplo cuando se está leyendo el archivo secuencialmente, es decir, registro a registro uno a continuación de otro, se debe chequear si hemos llegado a fin de archivo (EOF).
Todos los archivos tienen una marca de fin. Para chequear fin del archivo se usa función feof(archivo)
Ejemplo 1: if ( feof(a)) // se pregunta si es fin del archivo
{
…………..
};
Ejemplo 2: while (! feof(a)) // mientras no sea fin del archivo
{
………….
};
Detección de error    ferror(puntero del archivo)

Se usa para detectar si hubo un error en el manejo del archivo,

Ejemplo: if ferror(arch1)

Se devuelve el valor cero cuando no ha ocurrido error y valor entero distinto de cero en caso de error. El indicador permanece activado en el valor devuelto hasta que se ejecute la función
Clearerr(arch1);
Mover el indicador del archivo: Se puede mover el indicador del archivo a un byte específico. Este es el que indica en que parte del archivo estamos. Podemos ir a un Byte determinado, así como a un registro determinado.

Formato: fseek(archivo, n° desplazamiento, punto referencia);

Punto de referencia:
SEEK_SET : Inicio del archivo
SEEK_END : Fin del archivo
SEEK_CUR : Ubicación actual

Ejemplo 1: fseek(a, 2, SEEK_CUR); // avanza 2 bytes del lugar en que está.
Ejemplo 2: fseek(a, -3, SEEK_CUR); // retrocede 3 bytes del lugar en que está
Ejemplo 3: fseek(a, 0, SEEK_SET); // va al inicio del archivo (primer byte)
Ejemplo 4: fseek(a, -1 * sizeof(reg), SEEK_CUR); // retrocede 1 registro del lugar en que está, si es que está al comienzo de otro registro.
O bien:
n=(-1) * sizeof(reg);
fseek(a, n, SEEK_CUR);
Ejemplo 5: fseek(a, 0, SEEK_END); //va al final del archivo




Entradas relacionadas: