Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FUNDAMENTOS DE PROGRAMACIÓN
REPORTE: “ARCHIVOS”
Índice
Introducción………………………………………………………………………………03
Marco Teórico…………………………………………………………………………….05
Desarrollo…………………………………………………………………………………13
Conclusión………..………………………………………………………………………26
Bibliografía……………………………………………………………………………..…27
Introducción
Un archivo es un conjunto de datos almacenados en un dispositivo de
almacenamiento, como un disco duro o una memoria flash. Los archivos pueden
contener diferentes tipos de información, como texto, imágenes, audio, video, etc.
En programación, los archivos se pueden clasificar en dos tipos principales:
Archivos de texto: Contienen información legible para los humanos y suelen
almacenar datos en formato ASCII o UTF-8. Puedes abrir un archivo de texto con
un editor de texto y ver su contenido.
Archivos binarios: Almacenan datos de una manera que no está diseñada para ser
interpretada directamente por los humanos. Pueden contener imágenes, videos,
archivos ejecutables, entre otros.
Los archivos tienen las siguientes operaciones básicas:
Apertura de archivos: Para acceder a un archivo, primero debes abrirlo. Esto se
hace con una función o método específico que generalmente toma el nombre del
archivo y el modo de apertura (lectura, escritura, etc.).
Cierre de archivos: Después de realizar operaciones en un archivo, es importante
cerrarlo para liberar los recursos del sistema operativo asociados con él.
Lectura y escritura: Una vez que un archivo está abierto, puedes leer o escribir datos
en él. La lectura implica obtener información del archivo, mientras que la escritura
implica agregar o modificar datos en el archivo.
Un bucle do-while que presenta un menú interactivo hasta que el usuario selecciona
la opción '4' para salir.
Operaciones del Menú:
Bibliotecas Incluidas:
#include <stdio.h>: Incluye funciones para entrada/salida estándar.
#include <stdlib.h>: Incluye funciones estándar para gestión de memoria dinámica
y otras operaciones.
Definición de la Estructura: struct Datos, define una estructura llamada "Datos" que
contiene dos campos: un arreglo de caracteres llamado "nombre" para almacenar
el nombre y un entero llamado "edad" para almacenar la edad.
Declaración de Funciones:
void escribirArchivo(const char *nombreArchivo): Función para escribir datos en un
archivo binario.
void anadirArchivo(const char *nombreArchivo): Función para añadir datos a un
archivo binario.
void leerArchivo(const char *nombreArchivo): Función para leer datos de un archivo
binario.
Función Principal (main):
Declara una constante nombreArchivo que especifica el nombre del archivo binario
("datos.bin").
Utiliza un bucle do-while para presentar un menú de opciones al usuario hasta que
la opción seleccionada sea salir (4).
Las opciones del menú permiten al usuario escribir en el archivo, añadir al archivo,
leer el archivo o salir del programa.
Funciones de Manejo de Archivos:
escribirArchivo(const char *nombreArchivo): Abre un archivo en modo escritura
binaria, solicita al usuario ingresar datos y escribe la estructura Datos en el archivo.
anadirArchivo(const char *nombreArchivo): Abre un archivo en modo añadir binario,
solicita al usuario ingresar datos y añade la estructura Datos al archivo.
leerArchivo(const char *nombreArchivo): Abre un archivo en modo lectura binaria,
lee y muestra en la pantalla los datos almacenados en el archivo.
Desarrollo
Este es un programa simple en C que proporciona un menú de opciones para
manipular un archivo de texto llamado "datos.txt". Aquí está la explicación línea por
línea:
Incluye la biblioteca estándar de entrada/salida de C, que proporciona funciones
para leer y escribir datos.
Comienza la definición de la función principal.
Declara un puntero a un objeto de tipo FILE para manejar el archivo y una variable
opcion para almacenar la opción del menú.
Inicia un bucle do-while, que ejecutará al menos una vez y luego repetirá mientras
la condición especificada sea verdadera.
Muestra un menú de opciones y solicita al usuario que ingrese una opción.
Termina la función main y devuelve 0 para indicar que el programa se ejecutó con
éxito.
Ahora muestro la ejecución del código, y la manipulación de archivos de texto.
Ahora para la creación y manipulación de archivos binarios
Este código en lenguaje C es un programa simple que utiliza archivos binarios para
almacenar y recuperar datos de una estructura llamada datos.bin.
Esta la inclusión de las librerías estándar de entrada/salida (stdio) y de funciones
estándar de la biblioteca (stdlib) que se utilizan para entrada/salida y gestión de
memoria, respectivamente.
Se define la estructura llamada Datos que tiene dos miembros: un array de
caracteres llamado nombre para almacenar nombres de hasta 50 caracteres, y un
entero llamado edad para almacenar la edad.
Se declaran las funciones utilizadas en el programa.
En la función principal main, se declara una cadena de caracteres llamada
nombreArchivo que contiene el nombre del archivo binario datos.bin y una variable
entera llamada opcion para almacenar la elección del usuario en el menú.
Un bucle do-while que presenta un menú de opciones al usuario y solicita una
entrada para seleccionar una opción.
Un bloque switch que ejecuta diferentes funciones según la opción seleccionada por
el usuario. Las opciones 1, 2 y 3 llaman a las funciones escribirArchivo,
anadirArchivo y leerArchivo, respectivamente. La opción 4 imprime un mensaje de
salida y finaliza el programa. Si el usuario ingresa una opción no válida, se muestra
un mensaje de error.
La función main termina y devuelve 0, indicando que el programa se ejecutó
correctamente.
La función escribirArchivo comienza con la declaración de una variable de tipo struct
Datos llamada datos. Se abre un archivo binario en modo escritura ("wb") usando la
función fopen. El puntero de archivo (archivo) se utilizará para operaciones de
lectura y escritura en el archivo. Se verifica si la apertura del archivo fue exitosa. Si
hay un error, se imprime un mensaje de error usando perror y el programa se cierra
con exit(EXIT_FAILURE). Se solicita al usuario que ingrese datos (nombre y edad)
que se almacenarán en la estructura datos. Se utiliza la función fwrite para escribir
la estructura datos en el archivo binario. sizeof(struct Datos) indica el tamaño de la
estructura y 1 indica que se está escribiendo un solo conjunto de datos. Se cierra el
archivo con fclose después de escribir los datos.
La función anadirArchivo sigue la misma estructura que escribirArchivo. Se declara
una variable de tipo struct Datos llamada datos. Se abre el archivo en modo añadir
binario ("ab") para permitir la adición de datos al final del archivo existente. Se
verifica si la apertura del archivo fue exitosa. Si hay un error, se imprime un mensaje
de error y el programa se cierra. El usuario ingresa nuevos datos (nombre y edad)
que se almacenarán en la estructura datos. Se utiliza fwrite para añadir la estructura
datos al archivo binario. Se cierra el archivo después de añadir los datos.
La función leerArchivo sigue una estructura similar. Se declara una variable de tipo
struct Datos llamada datos. Se abre el archivo en modo lectura binaria ("rb") para
permitir la lectura de datos. Se verifica si la apertura del archivo fue exitosa. Si hay
un error, se imprime un mensaje de error y el programa se cierra. Se utiliza un bucle
while para leer y visualizar los datos almacenados en el archivo. La función fread
lee un conjunto de datos de tamaño sizeof(struct Datos) del archivo, y si la lectura
es exitosa (es igual a 1), se imprime el nombre y la edad. Se cierra el archivo
después de leer todos los datos.
Aquí esta la ejecución del programa de manipulación de archivos en binarios
Conclusión
En conclusión, la manipulación de archivos en lenguaje C constituye un componente
esencial en el desarrollo de aplicaciones que requieren la persistencia de datos. El
manejo efectivo de archivos permite a los programadores crear aplicaciones más
versátiles y potentes al ofrecer la capacidad de almacenar, recuperar y manipular
información de manera eficiente. En este contexto, dos categorías fundamentales
de archivos en lenguaje C son los archivos de texto y los archivos binarios, cada
uno con sus características distintivas y aplicaciones específicas.
Los archivos de texto desempeñan un papel crucial en el intercambio de información
entre programas y usuarios. Almacenar datos en formato legible por humanos,
utilizando caracteres sencillos y estructuras de líneas, facilita la comprensión y la
edición manual de los datos. Este tipo de archivo es ideal para almacenar
información simple, como configuraciones de aplicaciones, registros de eventos o
datos que puedan ser inspeccionados y modificados directamente por los usuarios.
Sin embargo, es importante tener en cuenta que los archivos de texto pueden
ocupar más espacio en comparación con los archivos binarios, ya que cada carácter
se representa utilizando un número específico de bytes.
Por otro lado, los archivos binarios son la elección preferida cuando se busca
eficiencia en el almacenamiento de datos. Al representar la información en formato
binario, los archivos binarios permiten almacenar datos de manera más compacta y
estructurada, siendo ideales para almacenar tipos de datos complejos, como
estructuras o matrices multidimensionales. Además, los archivos binarios son
especialmente útiles cuando se trata de preservar la integridad de los datos, ya que
no se ven afectados por los caracteres especiales o los saltos de línea que pueden
presentarse en los archivos de texto. Esto los convierte en la opción predilecta para
aplicaciones que requieren un rendimiento optimizado y una gestión eficiente de los
recursos.
La manipulación de archivos en lenguaje C se basa en el uso de funciones
específicas proporcionadas por la biblioteca estándar del lenguaje. Estas funciones,
como fopen(), fclose(), fread(), fwrite(), fseek(), entre otras, permiten a los
programadores abrir, cerrar, leer, escribir y posicionar el puntero de archivo según
sea necesario. El concepto de flujo de archivos es esencial para comprender cómo
se establece la comunicación entre el programa y el archivo, con la capacidad de
configurar flujos unidireccionales para lectura o escritura.
Es relevante destacar la importancia de manejar adecuadamente los errores
durante la manipulación de archivos. Las funciones de la biblioteca estándar suelen
devolver valores que indican el éxito o el fracaso de la operación, y no prestar
atención a estos valores puede llevar a resultados inesperados o incluso a la pérdida
de datos. La implementación de un manejo de errores robusto, mediante la
verificación de los códigos de retorno de las funciones, contribuye a la creación de
aplicaciones más confiables y seguras.
En la práctica, el manejo de archivos en lenguaje C se ve respaldado por la
flexibilidad y la potencia que ofrece el lenguaje. La capacidad de trabajar con
punteros facilita la manipulación directa de datos en la memoria, lo que puede ser
especialmente útil al leer o escribir grandes cantidades de información. Además, la
modularidad inherente al lenguaje C permite encapsular la manipulación de archivos
en funciones específicas, facilitando el mantenimiento y la comprensión del código.
En resumen, la manipulación de archivos en lenguaje C es una habilidad
fundamental para los programadores, ya que proporciona las herramientas
necesarias para gestionar datos de manera persistente. Los archivos de texto y los
archivos binarios representan dos enfoques distintos para almacenar información,
cada uno con sus ventajas y desventajas. La elección entre ellos dependerá de los
requisitos específicos de la aplicación y de la naturaleza de los datos que se
manipulan. Con una comprensión sólida de las funciones y conceptos relacionados
con los archivos en lenguaje C, los programadores pueden crear aplicaciones más
eficientes y versátiles que satisfagan las necesidades de almacenamiento y
recuperación de datos de manera efectiva.
Bibliografía
• Joyanes, L. 2013 Fundamentos generales de programación Mc Graw Hill
Interamericana. ISBN
• Kernighan, B. & Ritchie, D. 1991 El lenguaje de programación C Prentice-
Hall. ISBN
• Ariken, P. Jones, B, Aprendiendo C en 21 días, Pearson
• Javier Caballos, F, Enciclopedia de lenguaje C, Alfaomega