La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Archivos. fopen(...) Para comenzar a utilizar un archivo primero se debe abrir, invocando a la función fopen(...) FILE * fopen(char* nombre_arch, char*

Presentaciones similares


Presentación del tema: "Archivos. fopen(...) Para comenzar a utilizar un archivo primero se debe abrir, invocando a la función fopen(...) FILE * fopen(char* nombre_arch, char*"— Transcripción de la presentación:

1 Archivos

2 fopen(...) Para comenzar a utilizar un archivo primero se debe abrir, invocando a la función fopen(...) FILE * fopen(char* nombre_arch, char* modo) Donde: es una estructura que contiene toda la información necesaria para emplear el archivo. FILE

3 typedef struct { short level; /* nivel de ocupación del buffer */ unsigned flags;/* indicadores de control */ char fd;/* descriptor del fichero */ unsigned char hold; /* carácter de ungetch()*/ short bsize;/* tamaño de buffer */ unsigned char *buffer, *curp; /* puntero al buffer */ /* posición en curso */ unsigned istemp; short token;/* se emplea para control */ } FILE;/* tipo FILE */

4 Modo: Es una cadena de caracteres que indica la forma en que se va utilizar el archivo. “r” Abre un archivo de texto para leer. “w” Abre un archivo de texto para escribir.

5 “a”Abre un archivo de texto para añadir al final. “wb”Abre un archivo binario para escribir. “ab” Abre un archivo binario para añadir al final. “rb” Abre un archivo binario para leer.

6 “w+b”Crea un archivo binario para leer y escribir. “r+b” Abre un archivo binario para leer y escribir.

7 Si la función no tiene problemas al abrir el fichero devuelve un puntero a FILE que apunta al canal asociado. Si encuentra errores, por ejemplo una protección de escritura o disco lleno devuelve un puntero NULO.

8 fclose Para cerrar un archivo se utiliza la función fclose. int fclose(FILE * nombre_arch) Donde: nombre_arch Es un puntero al archivo que se quiere cerrar.

9 Devuelve 0 cuando no hay errores. Cualquier otro valor indica error.

10 feof(...) Para reconocer el fin de archivo se utiliza la función feof(...) int feof ( FILE * fp ) no Devuelve 0 si no ha llegado al final del archivo. En caso contrario devuelve un valor distinto de 0.

11 Escritura de caracteres int fputc(int ch, FILE * fp) Si no hay errores devuelven el carácter escrito. Si hay algún error devuelve EOF.

12 Escritura de caracteres int fgetc( FILE * fp) Si no hay errores devuelve el carácter leído. Si hay algún error devuelve EOF.

13 Escritura y lectura de cadena de caracteres int fputs(char* str, FILE * fp) Escribe una cadena de caracteres en un archivo. char fgets(char* str, FILE * fp) Lee una cadena de caracteres de un archivo hasta que encuentre fin de línea.

14 Archivos de acceso directo Los registros son de longitud fija. Se puede acceder a ellos directamente, sin tener que buscar a través de otros registros.

15 Los datos pueden ser insertados sin destruir otros datos en el archivo. Los datos almacenados anteriormente también pueden ser actualizados o borrados; sin tener que reescribir todo el archivo.

16 Lectura y escritura de un bloque de información Existen dos funciones que permiten leer y escribir bloques de información en un archivo.

17 La función fread Transfiere un número especificado de bytes de la posición en el archivo, especificado por el apuntador de posición de archivo, a un área en memoria empezando a partir de una dirección especificada.

18 int fread(void* buffer, intnum_bytes, int contador, FILE* fp) Donde: buffer:Es un puntero que señala a una zona de memoria que va a recibir los datos del archivo. num_bytes: Es el número de bytes que se van a leer.

19 contador: indica el número de veces que se efectua la lectura. fp: es el puntero al archivo.

20 La función fwrite Transfiere a un archivo un número especificado de bytes empezando en una posición especificada de memoria.

21 int fwrite(void* buffer, int num_bytes, int contador, FILE* fp) Donde: buffer: Es un puntero que apunta a la información que se escribirá en el archivo. num_bytes: Es el número de bytes que se escriben.

22 contador: indica el número de veces que se efectua la escritura. fp: es el puntero al archivo.

23 La función fseek Permite realizar accesos directos sobre un archivo.

24 num_bytes: Es el número de bytes necesarios, desde el orígen, para acceder a la posición deseada. int fseek(FILE* fp, long int num_bytes, int origen) Donde: fp: Es un puntero al archivo que se desea acceder.

25 Origen: Es una de estas macros: MACROORIGENVALOR SEEK_SETDesde el principio del archivo. 0 SEEK_CURDesde la posición actual. 1 SEEK_ENDDesde el final del archivo. 2

26 Estas macros corresponden a valores enteros e indican desde qué posición se comienza a sumar num_bytes para hallar la posición final.

27 fseek devuelve 0 cuando no hay errores, en caso contrario devuelve un valor diferente de cero Normalmente se utiliza fseek con archivos binarios.

28 Ejemplo: fseek(fp, (long) 5, SEEK_SET); Coloca el indicador de posición en el sexto byte del archivo apuntado por fp. fseek(fp, 5L, SEEK_SET);


Descargar ppt "Archivos. fopen(...) Para comenzar a utilizar un archivo primero se debe abrir, invocando a la función fopen(...) FILE * fopen(char* nombre_arch, char*"

Presentaciones similares


Anuncios Google