LPP, Ejercicio: escribir en archivos

Exploramos el primer paso en la manipulación de archivos: la escritura en archivos de texto. Aprenderemos a declarar tipos de archivo, abrirlos, escribir datos y cerrarlos correctamente.

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!

Ver este vídeo en YouTube.
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!

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

82 − = 75

ANUNCIOS Y PATROCINIOS