Archivos de Datos en C exDebian

Archivos de Datos en C

Solapas principales

El lenguaje C ofrece un amplio conjunto de funciones de librerías para crear y utilizar archivos de datos.

Lo primero que debemos hacer con los archivos de datos orientados a flujo es crear un área de buffer o de almacenamiento. Un área de buffer es un lugar de memoria que se usa para transferir datos desde la memoria a los dispositivos de almacenamiento secundario y viceversa.

Para crear el área de Buffer se puede utilizar la siguiente sintaxis:

FILE *buffer_ptr;

Donde FILE es un tipo de estructura que permite la definición de un área de buffer, y buffer_ptr es un puntero que apunta al inicio del área de buffer.

FILE debe escribirse siempre en mayúsculas, FILE esta definida en la librería stdio.h.

Para ser procesado un archivo, primero debe de abrirse, al abrir un archivo se hace una asociación entre un nombre de archivo y el área del buffer.

También debe especificarse como los archivos de datos serán usados como : Solo lectura, Solo escritura o ambos.

Función de librería para abrir archivos ( fopen ) :

buffer_ptr= fopen (nombre_archivo,tipo_de_archivo)

nombre_archivo puede ser creado, por ejemplo en Gnu/linux, mkdir nombre_archivo.txt

Cuando la función fopen se utiliza, retorna un puntero al inicio de la posición del área de buffer asociada con el archivo, si por algún motivo, razón o circunstancia, el archivo no puede ser abierto, se retorna un valor NULL o cero.
Al final de cada programa, un archivo de dato que ha sido abierto debe cerrarse al final, la función fclose
permite cerrar el archivo:

fclose(buffer_ptr;)

Ahora se puede especificar como se debe usar el archivo:

Tipo de archivo                                   Significado

"r"                                                                Abre un archivo que existe, solo lectura

"w"                                                                Abre a un nuevo Archivo para solo escritura

"a"                                                                 Abre un archivo que existe para agregar al final.
                                                                    Si el archivo no existe, uno nuevo sera creado.

"r+"                                                                Abre un archivo existente para ambos lectura y escritura

"w+"                                                                Abre un nuevo archivo para escritura/lectura. Si un
                                                                    archivo con el mismo nombre existe, éste será borrado y
                                                                    un nuevo archivo será creado.

"a+"                                                                Abre un archivo que existe para lectura/escritura. Si el
                                                                    archivo no existe un nuevo archivo será creado
                                                                    

Ahora vamos al grano un código en c para abrir y cerrar un archivo:

/* Archivo de cabecera */

# include <stdio.h>

/* Aquí comienza la función principal main */

  main(){

/*abrir el archivo*/
FILE * buffer_prt;
buffer_prt = fopen ("ejemplo.txt","r");

//apertura del archivo de ejemplo

/* cerrar el archivo*/

fclose(buffer_ptr);

}

Bueno nada de otro mundo se abrio el archivo con la función fopen y se cerro con fclose, noten que el buffer_ptr, se utilizo para cerrar el archivo.

Manejar un fopen NULL:

/* archivo de cabecera */

#include<stido.h>
#define NULL 0

  /* aqui comienza la funcion principal main */
main(){
/*abrir el archivo*/

FILE * ptr;
ptr= fopen("ejemplo.txt","r+");

if (ptr==NULL)

printf("Error de apertura de archivo \n");

else{
 
------

-------

------

/* cerrar archivo */

fclose(ptr);

    }

}

Bueno alli un ejemplo de como manejar la apertura de un archivo no exitoso, se el archivo no abre se imprime un mensaje de error apropiado.

Leer archivos de texto e Imprimirlo

#inlcude<stdio.h>
/* la funcion main comienza aqui*/

main(){

FILE *buff; /*area de buffer*/
char ch;

/* Abrir el archivo */
  buff= fopen("ejemplo.txt","r");
 
  if(buff==NULL)
   
     printf("Error al abrir archivo \n"),
 
   else{

   /*leer un carácter a la vez hasta alcanzar EOF */
  
  ch= getc (buff);
  while(ch != EOF){

   putchar(ch);
   ch= getc(buff);

   }
/*cerrar archivo*/
fclose(buff);
}

}

Bueno en la primear parte del código se abre un área de buffer llamado "buff", luego se verifica si el archivo fue abierto exitosamente o no. Mas adelante es para leer desde el archivo hasta que se encuentre el carácter de EOF.

También se usa la funcion getc para leer un carácter desde el archivo que esta abierto. La funcion getc(buff) lee desde el archivo de texto y retorna el carácter a leerse.

La función putchar se usa para mostrar el carácter leído.