5.8k 0

Programar con Xojo desde cero: Persistencia de datos

Continuamos avanzando en la creación de nuestra aplicación multiplataforma con Xojo para la gestión de gastos personales; y en este capítulo vamos a encargarnos de solucionar uno de los problemas más importantes que teníamos hasta ahora: guardar los datos introducidos a disco de forma que podamos recuperarlos posteriormente en cada nueva ejecución del programa.

Esto nos permite presentar otra de las capacidades que nos facilita enormemente Xojo: el acceso, lectura y escritura a cualquiera de los archivos ubicados en nuestros dispositivos de almacenamiento.

Para ello utilizaremos tres nuevas Clases del Framework de Xojo (es decir, el conjunto de “herramientas” listas para usar que nos proporciona el entorno de desarrollo): FolderItem (https://docs.xojo.com/FolderItem), TextOutputStream (https://docs.xojo.com/TextOutputStream) y TextInputStream (https://docs.xojo.com/TextInputStream).

Piensa en FolderItem como en la clase que, a través de sus propiedades y métodos nos permite acceder a cualquier archivo, tanto si ya existe como si es un nuevo archivo que deseamos crear… así como las carpetas y/o directorios.

De hecho, a través de las propiedades disponibles en dicha clase podemos realizar comprobaciones tan comunes como verificar si ya existe el archivo en la ruta proporcionada, si se trata de una carpeta, la fecha de modificación o creación, si se puede leer o escribir sobre el destino apuntado por la ruta, cambiar sus permisos… y un largo etcétera.

Por otra parte, algunos de los métodos disponibles en la clase FolderItem son los encargados de facilitarnos la copia del archivo referenciado sobre una nueva ubicación, abrirlo, borrarlo, moverlo… o bien crear carpetas/directorios nuevos en la ruta especificada.

En cuanto al par de clases TextInputStream/TextOutputStream, estas son las encargadas de trabajar con un archivo concreto (una instancia u objeto de FolderItem), de modo que podamos acceder a sus contenidos como si se tratase de un flujo de datos.

Eso sí, fíjate en que ambas clases comienzan su nombre con la palabra “Text”, lo que significa que los datos a los que se vaya a acceder se tratarán como texto en oposición a su formato “binario”.

En nuestro caso, es lo que queremos y nos viene de perlas porque toda la información que vamos a guardar y (posteriormente) recuperar está en formato textual: nombre del gasto, la fecha de la compra, el importe, etc.

¿En qué se diferencia un “flujo de datos” o “stream” de un archivo? Piensa en el archivo como en el contenedor de los datos, mientras que la clase encargada de acceder a los datos almacenados por el archivo actuaría sobre el propio contenido.

A través de sus propiedades y métodos puedes moverte a una posición determinada (en bytes) dentro del archivo, siempre y cuando esta no supere su longitud, claro está. También puedes ir leyendo el contenido del archivo de “texto” línea a línea, todo a la vez, o bien el fragmento que desees desde la posición actual hasta la longitud indicada.

Por su parte, la clase que hace las funciones opuestas es TextOutputStream. Con ella podrás abrir un archivo (o crearlo, siempre que pases una referencia a un FolderItem en cualquier caso) para volcar sobre él el contenido que desees como texto: línea a línea, un fragmento determinado o todo de golpe.

En la práctica

En el desarrollo de nuestra aplicación de ejemplo utilizaremos precisamente estas tres clases para guardar tanto las categorías como todos los elementos de compras que hayamos ido introduciendo.

A lo largo del vídeo nos centramos en los detalles sobre cómo guardar dicha información y recuperarla posteriormente utilizando dos archivos: uno encargado de contener el nombre de las categorías y otro en el que se encuentran los gastos asociados por cada una de las categorías.

Es interesante porque también ponemos en práctica mucho de lo que hemos ido viendo hasta ahora: variables simples, y también las colecciones de datos (Arrays y Diccionarios); así que es un buen momento para refrescar los conocimientos de los dos anteriores capítulos… y también para ver un poco más en profundidad cómo utilizarlos en la práctica.

Nombre de aplicación y otros detalles

Al inicio del vídeo también podemos ver algo realmente importante a la hora de crear cualquiera de nuestras aplicaciones: cómo indicar desde el IDE de Xojo el nombre que queremos dar a nuestra aplicación… ¡y también decidir para qué arquitectura queremos compilarla!

Ya sabes que, con Xojo, decidir si quieres que tu aplicación se compile para Macs basados en procesadores Intel, M1 o como aplicación Universal es tan simple como seleccionar la opción desde un menú.

Twitter: @xojoes

Facebook: http://facebook.com/xojoes/

Descarga la última versión desde www.xojo.com

Recursos Xojo en Español: https://docs.xojo.com/spanish

Alf

Propietario de www.faq-mac.com.

Deja una respuesta