sábado, 12 de junio de 2021

P5-Archivos

 Archivos de datos 

Un archivo es un conjunto de datos estructurados en una colección de entidades elementales o básicas denominadas registros que son de igual tipo y constan a su vez de diferentes entidades de nivel más bajos denominadas campos.

Hay dos tipos de archivos, archivos de texto y archivos binarios. Un archivo de texto es una secuencia de caracteres organizadas en líneas terminadas por un carácter de nueva línea. En estos archivos se pueden almacenar canciones, fuentes de programas, base de datos simples, etc. Los archivos de texto se caracterizan por ser planos, es decir, todas las letras tienen el mismo formato y no hay palabras subrayadas, en negrita, o letras de distinto tamaño o ancho.

Un archivo binario es una secuencia de bytes que tienen una correspondencia uno a uno con un dispositivo externo. Así que no tendrá lugar ninguna traducción de caracteres. Además, el número de bytes escritos (leídos)será el mismo que los encontrados en el dispositivo externo. Ejemplos de estos archivos son Fotografías, imágenes, texto con formatos, archivos ejecutables (aplicaciones), etc.

En c, un archivo es un concepto lógico que puede aplicarse a muchas cosas desde archivos de disco hasta terminales o una impresora. Se asocia una secuencia con un archivo especifico realizando una operación de apertura. Una vez que el archivo está abierto, la información puede ser intercambiada entre este y el programa.

Se puede conseguir la entrada y la salida de datos a un archivo a través del uso de la biblioteca de funciones; C no tiene palabras claves que realicen las operaciones de E/S. La siguiente tabla da un breve resumen de las funciones que se pueden utilizar. Se debe incluir la librería STDIO.H. Observe que la mayoría de las funciones comienzan con la letra “F”, esto es un vestigio del estándar C de Unix

Nombre                 Función

fopen() Abre un archivo.

fclose() Cierra un archivo.

fgets() Lee una cadena de un archivo.

fputs() Escribe una cadena en un archivo

fseek() Busca un byte especifico de un archivo.

fprintf() Escribe una salida con formato en el archivo.

fscanf() Lee una entrada con formato desde el archivo.

feof() Devuelve cierto si se llega al final del archivo.

ferror() Devuelve cierto si se produce un error.

rewind() Coloca el localizador de posición del archivo al principio del mismo.

remove() Borra un archivo.

fflush() Vacía un archivo.

 El puntero a un archivo.
El puntero a un archivo es el hilo común que unifica el sistema de E/S con buffer. Un puntero a un archivo es un puntero a una información que define varias cosas sobre él, incluyendo el nombre, el estado y la posición actual del archivo. En esencia identifica un archivo especifico y utiliza la secuencia asociada para dirigir el funcionamiento
de las funciones de E/S con buffer. Un puntero a un archivo es una variable de tipo puntero al tipo FILE que se define en STDIO.H. Un programa necesita utilizar punteros a archivos para leer o escribir en los mismos. Para
obtener una variable de este tipo se utiliza una secuencia como esta:


FILE *F;

Apertura de un archivo.
La función fopen() abre una secuencia para que pueda ser utilizada y la asocia a un archivo. Su prototipo es:

FILE *fopen(const char nombre_archivo, cost charmodo);

 Donde nombre_archivo es un puntero a una cadena de caracteres que representan un nombre valido del archivo y puede incluir una especificación del directorio. La cadena a la que apunta modo determina como se abre el archivo. La siguiente tabla muestra los valores permitidos para modo.

Modo                 Significado

r            Abre un archivo de texto para lectura.

w          Crea un archivo de texto para escritura.

a           Abre un archivo de texto para añadir.

rb          Abre un archivo binario para lectura.

wb        Crea un archivo binario para escritura.

ab         Abre un archivo binario para añadir.

r+         Abre un archivo de texto para lectura / escritura.

w+       Crea un archivo de texto para lectura / escritura.

a+         Añade o crea un archivo de texto para lectura / escritura.

r+b       Abre un archivo binario para lectura / escritura.

w+b     Crea un archivo binario para lectura / escritura.

a+b      Añade o crea un archivo binario para lectura / escritura.

Lectura

Un archivo generalmente debe verse como un string (una cadena de caracteres) que esta guardado en el disco duro. Para trabajar con los archivos existen diferentes formas y diferentes funciones. Las funciones que podríamos usar para leer un archivo son:

char fgetc(FILE *archivo)

char *fgets(char *buffer, int tamano, FILE *archivo)

size_t fread(void *puntero, size_t tamano, size_t cantidad, FILE *archivo);

int fscanf(FILE *fichero, const char *formato, argumento, ...);

Las primeras dos de estas funciones son muy parecidas entre si. Pero la tercera, por el numero y el tipo de parámetros, nos podemos dar cuenta de que es muy diferente, por eso la trataremos aparte junto al fwrite que es su contraparte para escritura.

Escritura

Así como podemos leer datos desde un fichero, también se pueden crear y escribir ficheros con la información que deseamos almacenar, Para trabajar con los archivos existen diferentes formas y diferentes funciones. Las funciones que podríamos usar para escribir dentro de un archivo son:

int fputc(int caracter, FILE *archivo)

int fputs(const char *buffer, FILE *archivo)

size_t fwrite(void *puntero, size_t tamano, size_t cantidad, FILE *archivo);

int fprintf(FILE *archivo, const char *formato, argumento, ...);


 

No hay comentarios.:

Publicar un comentario

P6-Estructuras

 Estructuras en C Las estructuras son colecciones de variables relacionadas bajo un nombre. Pueden contener variables de muchos tipos difere...