Escritura en archivos – ficheros
Bienvenidos al siguiente paso en nuestro viaje de programación en LPP. En esta lección, nos sumergiremos en el fascinante mundo de la manipulación de archivos, específicamente en la escritura en archivos de texto desde un programa en LPP.
Hasta ahora, hemos explorado cómo almacenar datos en variables y arreglos, pero hoy daremos el paso crucial para preservar esta información. Aprenderemos cómo solicitar datos al usuario y almacenarlos en archivos, abriendo el camino para futuros desarrollos donde podremos recuperar y utilizar estos datos incluso después de cerrar nuestro programa.
¡Comencemos nuestro viaje en el manejo de archivos!
Material Audiovisual
Te animamos a explorar nuestro video tutorial. En este material, profundizamos en cada concepto y ejercicio que abordamos en este artículo, ofreciendo una comprensión más detallada. Este video se presenta como un complemento valioso para consolidar tu aprendizaje. ¡No dudes en sumergirte en el contenido visual y fortalecer tus habilidades!
Amigo! Recuerda ver estos vídeos en PANTALLA COMPLETA y preferiblemente en formato HD para ver correctamente los detalles, Gracias.
Código Fuente
En el siguiente link podrás descargar el código de los ejemplos vistos en el vídeo.
Un poco de Teoría
Antes de plantear el ejercicio de hoy, veamos los comandos clave que debemos conocer para realizar procesos de escritura en archivos desde LPP.
Declaración del Tipo de Archivo
Antes de sumergirnos en la manipulación de archivos, es esencial declarar un tipo especial para el control de archivos. En LPP, esto se realiza mediante la instrucción:
/* Instrucción: tipo [nombre_del_tipo] es archivo secuencial */
tipo tArchivo es archivo secuencial
La instrucción se descompone de la siguiente manera:
1. tipo tArchivo
: Estamos definiendo un nuevo tipo de datos llamado tArchivo
. Este tipo será específico para manejar archivos en LPP.
2. es archivo secuencial
: Indica que nuestro nuevo tipo tArchivo
será de tipo archivo secuencial. Un archivo secuencial es aquel en el que la información se guarda y recupera en un orden específico, como un flujo continuo de datos.
En resumen, con esta instrucción creamos un tipo llamado tArchivo
que será utilizado para manejar archivos de manera secuencial, lo que será fundamental para el control de nuestro archivo de inventario de vehículos en el ejercicio que abordaremos.
Declaración de la Variable de Archivo
Una vez que hemos definido nuestro tipo de archivo, necesitamos declarar una variable asociada a ese tipo. Esta variable se crea como cualquier otra variable, lo uno es que la haremos del tipo creado anteriormente.
/* [nombre_del_tipo] [nombre_variable] */
tArchivo vArchivo
Aquí, vArchivo
es la variable que utilizaremos para manejar nuestro archivo específico.
Apertura del Archivo para Escritura
Para comenzar a escribir en nuestro archivo, debemos abrirlo en modo escritura. Esto se logra con la instrucción:
/* abrir "ruta_archivo" como [nombre_variable_tipo_archivo] para escritura */
abrir "inventario.txt" como vArchivo para escritura
Esta línea indica que queremos abrir el archivo "inventario.txt"
para escritura y asociarlo con nuestra variable vArchivo
.
Escritura en el Archivo
Una vez que hemos abierto el archivo, podemos escribir líneas de texto en él utilizando la siguiente instrucción:
/* escribir [nombre_variable_de_tipo_archivo], "[texto]" */
escribir vArchivo, "Hola Mundo"
Con esta línea, añadimos la cadena de texto «Hola Mundo» al archivo, permitiéndonos almacenar dicha información en el archivo.
Cierre del Archivo
Después de completar la escritura en el archivo, es crucial cerrarlo para liberar recursos y permitir su uso posterior. Esto se realiza con la instrucción:
/* cerrar [nombre_variable_de_tipo_archivo] */
cerrar vArchivo
Esta acción garantiza que nuestro archivo pueda ser manipulado nuevamente en futuras operaciones.
Estos comandos forman la base para la escritura en archivos en LPP, una habilidad esencial que exploraremos en el siguiente ejercicio práctico.
Ejercicio Propuesto
En este ejercicio práctico, vamos a aplicar los conceptos recién aprendidos sobre manipulación de archivos en LPP. La tarea consiste en desarrollar un programa que solicite al usuario información sobre un vehículo, como la marca, la línea, el color, la cantidad y el valor unitario. Luego, almacenaremos esta información en un archivo de texto (.txt), que actuará como un registro de inventario básico para la tienda de vehículos, que hemos venido trabajando en los últimos artículos de este curso.
Vemos una posible solución al ejercicio, vamos a desglosar el programa que permite almacenar la información del inventario en un archivo de texto (.txt). Aquí tienes cada segmento de código explicado:
Definición del Tipo de Archivo y Registros
En esta parte, definimos un nuevo tipo de archivo llamado tArchivo
y un registro rVehiculo
que representa los datos de un vehículo.
tipo tArchivo es archivo secuencial
registro rVehiculo
cadena[100] marca
cadena[100] linea
cadena[50] color
entero cantidad
real valorUnidad
fin registro
Declaración de Variables Globales
Aquí, declaramos las variables globales vAuto
y vArchivo
que se utilizarán para almacenar los datos del vehículo y manipular el archivo, respectivamente.
rVehiculo vAuto
tArchivo vArchivo
Procedimiento para Solicitar el Inventario al Usuario
Este procedimiento se encarga de solicitar al usuario los datos del inventario, como la marca, línea, color, cantidad y valor unitario.
procedimiento SolicitarInventario
inicio
llamar nueva_linea
escriba "Ingrese la marca: "
lea vAuto.marca
escriba "Ingrese la Linea: "
lea vAuto.linea
escriba "Ingrese el color: "
lea vAuto.color
escriba "ingrese la Cantidad: "
lea vAuto.cantidad
escriba "ingrese el Valor Unitario: "
lea vAuto.valorUnidad
llamar nueva_linea
fin
Procedimiento para Almacenar el Inventario en un Archivo
Aquí, el procedimiento AlmacenarInventario
abre el archivo «inventario.txt», escribe los datos del vehículo y luego cierra el archivo.
procedimiento AlmacenarInventario
inicio
/* abrir archivo */
abrir "inventario.txt" como vArchivo para escritura
/* escribimos en el archivo cada uno de los atributos del registro o inventario */
escribir vArchivo, vAuto.marca
escribir vArchivo, vAuto.linea
escribir vArchivo, vAuto.color
escribir vArchivo, vAuto.cantidad
escribir vArchivo, vAuto.valorUnidad
/* cerrar el archivo */
cerrar vArchivo
fin
Programa Principal
El programa principal llama a los procedimientos anteriores para realizar las operaciones necesarias.
inicio
/* solicitar información del inventario al usuario */
llamar SolicitarInventario()
/* guardar información en el archivo txt */
llamar AlmacenarInventario()
fin
Con este paso a paso, conseguimos un programa que cumple con el ejercicio propuesto, almacenando la información del inventario en un archivo de texto. Veamos el resultado final, es decir el programa en su totalidad.
Resultado Final
Habiendo analizado minuciosamente cada componente del programa es hora de ensamblarlo por completo. A continuación, te presentamos la estructura completa del programa, integrando cada una de las partes previamente explicadas.
/* tipos archivo */
tipo tArchivo es archivo secuencial
/* registros */
registro rVehiculo
cadena[100] marca
cadena[100] linea
cadena[50] color
entero cantidad
real valorUnidad
fin registro
/* variables globales */
rVehiculo vAuto
tArchivo vArchivo
/* procedimientos */
/*
encargado de solicitar el inventario inicial al usuario
y luego guardarlo en el registro
*/
procedimiento SolicitarInventario
inicio
llamar nueva_linea
escriba "Ingrese la marca: "
lea vAuto.marca
escriba "Ingrese la Linea: "
lea vAuto.linea
escriba "Ingrese el color: "
lea vAuto.color
escriba "ingrese la Cantidad: "
lea vAuto.cantidad
escriba "ingrese el Valor Unitario: "
lea vAuto.valorUnidad
llamar nueva_linea
fin
/*
encargado de guardar en el txt, los datos del registro
*/
procedimiento AlmacenarInventario
inicio
/* abrir archivo */
abrir "inventario.txt" como vArchivo para escritura
/* escribimos en el archivo cada uno de los atributos del registro o inventario */
escribir vArchivo, vAuto.marca
escribir vArchivo, vAuto.linea
escribir vArchivo, vAuto.color
escribir vArchivo, vAuto.cantidad
escribir vArchivo, vAuto.valorUnidad
/* cerrar el archivo */
cerrar vArchivo
fin
/* programa principal */
inicio
/* solicitar información del inventario al usuario */
llamar SolicitarInventario()
/* guardar información en el archivo txt */
llamar AlmacenarInventario()
fin
Conclusión
En este tutorial, hemos dado nuestros primeros pasos en la manipulación de archivos en LPP. Aprendimos cómo declarar un tipo de archivo, abrirlo para escritura, escribir datos en él y cerrarlo para asegurar su correcta manipulación.
El ejercicio práctico nos llevó a diseñar un programa que solicita al usuario información sobre el inventario de vehículos y almacena estos datos en un archivo de texto. Este proceso sienta las bases para comprender la importancia de la escritura en archivos, permitiendo que la información perdure más allá de la ejecución del programa.
En futuros artículos, exploraremos más funcionalidades relacionadas con la manipulación de archivos, profundizando en la lectura de datos y aplicando estos conceptos en situaciones prácticas. ¡Sigue explorando el fascinante mundo de la programación con LPP!
Para un mejor entendimiento, te recomiendo ver el video tutorial relacionado en este artículo. En este video, se explica de forma práctica cada uno de los conceptos y teoría explicada en este artículo. ¡Saludos!