Lectura en archivos – ficheros
En el video tutorial anterior, exploramos cómo realizar la escritura de datos en un archivo desde un programa en LPP. Hoy, daremos un paso más al aprender a abrir el archivo creado anteriormente, extraer los datos almacenados y presentarlos en pantalla. Este proceso de lectura de archivos es fundamental para acceder y utilizar información almacenada de manera persistente.
Acompáñanos en este ejercicio práctico mientras exploramos la lectura de archivos en LPP.
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!
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 sumergirnos en la lectura de archivos en LPP, es esencial comprender las instrucciones fundamentales que nos permitirán manejar y extraer información desde un archivo de texto. Aquí, desglosaremos paso a paso los comandos clave para esta tarea.
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í, declaramos una variable llamada vArchivo
del tipo tArchivo
, la cual utilizaremos para interactuar con nuestro archivo de texto.
Apertura del Archivo para Lectura
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 lectura */
abrir "inventario.txt" como vArchivo para lectura
Con esta instrucción, abrimos el archivo llamado «inventario.txt» en modo lectura, preparándonos para extraer información.
Lectura de Datos desde el Archivo
Una vez que hemos abierto el archivo, podemos escribir líneas de texto en él utilizando la siguiente instrucción:
/* leer [nombre_variable_de_tipo_archivo], [variable_para_almacenar] */
leer vArchivo, vData
La instrucción leer
nos permite extraer datos desde el archivo y almacenarlos en variables específicas. En este ejemplo, leemos la sigueinte línea del archivo y la asignamos a la variable vData
.
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
Finalmente, después de completar la lectura, cerramos el archivo para liberar recursos y permitir su uso posterior.
Estas instrucciones son la base para realizar operaciones de lectura de archivos en LPP. A continuación, aplicaremos estos conceptos en un ejercicio práctico para extraer datos del inventario almacenado en nuestro archivo «inventario.txt».
Ejercicio Propuesto
En este ejercicio práctico, daremos continuidad al tema de manejo de archivos en LPP. En el video anterior, aprendimos cómo realizar la escritura de datos en un archivo, y ahora nos enfocaremos en la lectura de estos datos para mostrarlos en pantalla.
La misión es abrir el archivo creado anteriormente, «inventario.txt», y extraer la información almacenada, que incluye la marca, línea, color, cantidad y valor unitario de un tipo de vehículo.
Es crucial recordar la estructura del archivo «inventario.txt». Cada línea en el archivo representa un dato específico del vehículo, siguiendo el siguiente formato representado en el siguiente ejemplo:
Ford (Marca)
Fiesta (Línea)
Gris (Color)
35 (Cantidad)
16700 (Valor Unitario)
Cada dato se encuentra en una línea separada, lo que facilita la lectura desde el programa en LPP.
Ahora si pasemos a resolver el ejercicio, Vamos a desglosar el programa paso a paso para entender cómo realizar la lectura de un archivo de texto en LPP.
1. Declaración de Tipos y Registros
En este segmento, estamos definiendo un nuevo tipo tArchivo
, que nos permitirá manejar archivos secuenciales. Además, se declara un registro rVehiculo
para almacenar 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
2. 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
3. Procedimiento para Obtener el Inventario
En este procedimiento, abrimos el archivo «inventario.txt» en modo lectura y luego leemos cada línea del archivo para asignar los valores a las variables del registro vAuto
. Finalmente, cerramos el archivo.
/* encargado de extraer datos del txt y guardarlos en el registro */
procedimiento ObtenerInventario
inicio
/* abrir archivo en modo lectura */
abrir "inventario.txt" como vArchivo para lectura
/* lectura de datos */
leer vArchivo, vAuto.marca
leer vArchivo, vAuto.linea
leer vArchivo, vAuto.color
leer vArchivo, vAuto.cantidad
leer vArchivo, vAuto.valorUnidad
/* cerrar archivo */
cerrar vArchivo
fin
4. Procedimiento para Mostrar el Inventario
En este procedimiento, simplemente mostramos en pantalla los datos del inventario almacenados en el registro vAuto
.
/* encargado de mostrar en pantalla los datos del registro */
procedimiento MostrarInventario
inicio
llamar nueva_linea
escriba "********* Inventario Actual **********"
llamar nueva_linea
llamar nueva_linea
escriba "Marca: " + vAuto.marca
llamar nueva_linea
escriba "Linea: " + vAuto.linea
llamar nueva_linea
escriba "Color: " + vAuto.color
llamar nueva_linea
escriba "Cantidad: "
escriba vAuto.cantidad
llamar nueva_linea
escriba "Valor Unitario: "
escriba vAuto.valorUnidad
llamar nueva_linea
fin
5. Programa Principal
El programa principal invoca los procedimientos para obtener el inventario y mostrarlo en pantalla.
/* programa principal */
inicio
/* lectura de datos desde el archivo txt */
llamar ObtenerInventario()
/* mostrar inventario en pantalla */
llamar MostrarInventario()
fin
Siguiendo estos pasos, el programa abrirá el archivo, extraerá la información, la almacenará en el registro vAuto
y la mostrará en pantalla. Este proceso ilustra cómo realizar la lectura de archivos en LPP de manera efectiva.
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 */
rVehiculo vAuto
tArchivo vArchivo
/* procedimientos */
/* encargado de extraer datos del txt y guardarlos en el registro */
procedimiento ObtenerInventario
inicio
/* abrir archivo en modo lectura */
abrir "inventario.txt" como vArchivo para lectura
/* lectura de datos */
leer vArchivo, vAuto.marca
leer vArchivo, vAuto.linea
leer vArchivo, vAuto.color
leer vArchivo, vAuto.cantidad
leer vArchivo, vAuto.valorUnidad
/* cerrar archivo */
cerrar vArchivo
fin
/* encargado de mostrar en pantalla los datos del registro */
procedimiento MostrarInventario
inicio
llamar nueva_linea
escriba "********* Inventario Actual **********"
llamar nueva_linea
llamar nueva_linea
escriba "Marca: " + vAuto.marca
llamar nueva_linea
escriba "Linea: " + vAuto.linea
llamar nueva_linea
escriba "Color: " + vAuto.color
llamar nueva_linea
escriba "Cantidad: "
escriba vAuto.cantidad
llamar nueva_linea
escriba "Valor Unitario: "
escriba vAuto.valorUnidad
llamar nueva_linea
fin
/* programa principal */
inicio
/* lectura de datos desde el archivo txt */
llamar ObtenerInventario()
/* mostrar inventario en pantalla */
llamar MostrarInventario()
fin
Conclusión
En conclusión, hemos explorado la lectura de archivos en LPP, lo que nos permite acceder y utilizar información almacenada de manera persistente.
En el próximo artículo, llevaremos nuestras habilidades un paso más allá al desarrollar un programa integral que aplicará muchos de los conceptos aprendidos a lo largo del curso. Este ejercicio completo integrará tanto la escritura como la lectura de archivos, brindándonos una oportunidad emocionante para consolidar y aplicar nuestras habilidades en la manipulación de archivos en un escenario práctico y desafiante.
¡Prepárate para sumergirte en este último ejercicio que pondrá a prueba y fortalecerá tus conocimientos en 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!