Está en la página 1de 27

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE COMPUTO

FUNDAMENTOS DE PROGRAMACIÓN

ALUMNO: DE LOS SANTOS GUZMÁN DANIEL


TONATIUH
2024630521

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.

Los archivos en programación en lenguaje C constituyen un elemento fundamental


para el manejo eficiente de datos, permitiendo a los programadores almacenar,
recuperar y manipular información de manera persistente. Estos archivos ofrecen
una forma estructurada de organizar datos en el sistema de archivos de una
computadora, posibilitando la creación de aplicaciones más poderosas y flexibles.
La gestión de archivos en C se basa en un conjunto de funciones y conceptos que
facilitan la interacción con datos almacenados en dispositivos de almacenamiento
secundario, como discos duros, unidades flash y otros medios.
En C, los archivos se clasifican en dos categorías principales: archivos de texto y
archivos binarios. Los archivos de texto almacenan datos en formato legible por
humanos, utilizando caracteres simples y estructuras de líneas. Por otro lado, los
archivos binarios almacenan información de forma más compacta y eficiente,
utilizando representaciones en binario que pueden incluir cualquier tipo de dato,
desde enteros hasta estructuras complejas.

La manipulación de archivos en C se lleva a cabo mediante el uso de punteros y


funciones específicas de la biblioteca estándar, como fopen(), fclose(), fread(),
fwrite(), fseek(), entre otras. Estas funciones proporcionan a los programadores un
control preciso sobre la lectura y escritura de datos en archivos, así como la
capacidad de navegar y posicionar el puntero de archivo según sea necesario.
El concepto de flujo de archivos en C es crucial para entender cómo se gestionan
los datos entre el programa y el sistema de archivos. Un flujo de archivo es
esencialmente un flujo unidireccional de datos entre el programa y el archivo, que
se puede abrir en modos específicos, como lectura, escritura o ambos. Esta
estructura de flujo facilita la implementación de operaciones de lectura y escritura
eficientes, así como la gestión adecuada de los recursos asociados a los archivos.
En resumen, la manipulación de archivos en programación en lenguaje C es una
habilidad esencial para cualquier desarrollador, ya que permite el almacenamiento
persistente de datos, facilita la implementación de aplicaciones más complejas y
ofrece un enfoque estructurado para el manejo de información en sistemas de
archivos. Con un conjunto robusto de funciones y conceptos, los programadores
pueden crear programas que interactúen de manera efectiva con datos
almacenados en diversos medios, contribuyendo así a la versatilidad y eficiencia de
sus aplicaciones.
Marco Teórico
Un archivo representa un conjunto de datos almacenados en un dispositivo de
almacenamiento, como un disco duro o una memoria flash. Puede contener diversa
información, como texto, imágenes, audio, video, y más.
En el ámbito de la programación, los archivos se dividen principalmente en dos
categorías:
Archivos de texto: Contienen información legible para los humanos y suelen
almacenar datos en formatos como ASCII o UTF-8. Estos archivos pueden ser
abiertos con un editor de texto para visualizar su contenido.
Archivos binarios: Almacenan datos de manera no destinada a ser interpretada
directamente por humanos. Pueden contener imágenes, videos, archivos
ejecutables, entre otros.
Las operaciones básicas que se pueden realizar en archivos son:
Apertura de archivos: Para acceder a un archivo, es necesario abrirlo utilizando una
función o método específico. Esto generalmente implica proporcionar el nombre del
archivo y el modo de apertura, como lectura o escritura.
Cierre de archivos: Después de llevar a cabo operaciones en un archivo, es crucial
cerrarlo para liberar los recursos del sistema operativo asociados con él.
Lectura y escritura: Una vez que un archivo está abierto, es posible realizar
operaciones de lectura para obtener información del mismo, así como operaciones
de escritura para agregar o modificar datos en el archivo.
Algunos ejemplos del uso de archivos en lenguaje C son:
1. Abrir Archivos
Este código en C se encarga de abrir un archivo llamado "archivo.txt" en modo
escritura ("w"), crearlo si no existe y, finalmente, cerrarlo. Este código abre un
archivo en modo escritura, verifica si la operación fue exitosa, realiza operaciones
de escritura (aunque esta sección está vacía en el código proporcionado) y luego
cierra el archivo. Si ocurre algún problema durante la apertura del archivo, imprime
un mensaje de error y termina el programa con un código de error.
2. Archivos binario
Este código en C realiza las siguientes operaciones: Abre un archivo binario llamado
"datos.bin" en modo escritura binaria ("wb"), escribe un array de enteros (datos) en
el archivo binario, cierra el archivo, abre el mismo archivo binario en modo lectura
binaria ("rb"), lee el contenido del archivo binario en un nuevo array (datos_leidos),
cierra el archivo nuevamente, imprime los datos leídos en la consola.
3. Lectura de archivo
Abre un archivo llamado "archivo.txt" en modo lectura ("r"). Si el archivo no se puede
abrir, imprime un mensaje de error y termina el programa con un código de error (1).
Utiliza un bucle while para leer cada caracter del archivo usando fgetc hasta llegar
al final del archivo (EOF). Dentro del bucle, puedes realizar operaciones de
procesamiento en cada caracter leído. Cierra el archivo después de leer todo su
contenido. Devuelve 0 para indicar que el programa se ejecutó correctamente.
Inclusión de Librerías:

Esta línea incluye la librería estándar de entrada/salida en C (stdio.h). La librería es


necesaria para funciones como printf, scanf, fopen, fclose, y otras operaciones de
entrada/salida.
Función Principal: El programa inicia con la función principal main. Esta es la función
que se ejecuta automáticamente cuando el programa se inicia.
Declaración de Variables:

archivo: Un puntero a la estructura FILE que se utiliza para representar el archivo.


opcion: Almacena la opción seleccionada por el usuario en el menú.
Bucle del Menú Principal:

Un bucle do-while que presenta un menú interactivo hasta que el usuario selecciona
la opción '4' para salir.
Operaciones del Menú:

Opción '1': Escribir en el Archivo


fopen: Abre el archivo "datos.txt" en modo de escritura ("w"), sobrescribiendo su
contenido existente si lo hubiera.
fprintf: Escribe datos en el archivo.
fclose: Cierra el archivo después de la escritura.

Opción '2': Añadir al Archivo


fopen: Abre el archivo en modo de escritura al final ("a"), conservando el contenido
existente.
fprintf: Añade datos al final del archivo.
fclose: Cierra el archivo después de la adición.

Opción '3': Leer el Archivo


fopen: Abre el archivo en modo de lectura ("r").
fgets: Lee el contenido del archivo línea por línea.
fclose: Cierra el archivo después de la lectura.

Opción '4': Salir


La opción '4' termina el bucle del menú, finalizando el programa.

Conclusión del Programa: La función main devuelve 0, indicando que el programa


se ejecutó correctamente.

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.

Inicia una declaración switch basada en el valor de opcion.


Si la opción es '1', el programa abre el archivo en modo escritura ("w"), solicita datos
al usuario, escribe los datos en el archivo y luego cierra el archivo.
Si la opción es '2', el programa abre el archivo en modo "a" (añadir al final), solicita
datos al usuario, añade los datos al final del archivo y luego cierra el archivo.
Si la opción es '3', el programa abre el archivo en modo lectura ("r"), muestra el
contenido del archivo línea por línea y luego cierra el archivo.
Si la opción es '4', el programa imprime un mensaje y sale del bucle.
Si la opción ingresada no es válida, el programa imprime un mensaje y repite el
bucle hasta que se ingresa la opción '4'.

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

También podría gustarte