Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas


Ir a la página 1, 2, 3  Siguiente

Objetivo: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
No es buena idea utilizar el IDE para "usar" nuestros programas de gambas. La ejecución es más lenta y tendremos nuestro código "expuesto" a cualquier error inadvertido. Un programa de gambas hay que instalarlo para usarlo, aunque sea en la propia máquina dónde se diseñó.
Para ello gambas nos facilita su creador de paquetes de instalación y todo solucionado.
Ahora bien: Una vez instalado nuestro programa no residirá más en la carpeta de nuestro proyecto y nos surge el problema de saber dónde están todos los archivos que en tal carpeta guardábamos y de dónde ubicar los archivos en los que se apoye nuestra aplicación.
Esto, a tenor de muchas dudas que se han subido en el foro, no siempre lo tenemos claro. Aquí tenéis un resumen incompleto pero elemental de la ubicación y el manejo de los archivos en un proyecto de gambas.

Lo primero que has de saber es que todo lo que coloques en la carpeta del proyecto en tiempo de diseño se comprime e incluye en el ejecutable compilado, salvo lo que coloques dentro de la carpeta Miproyecto/.hidden.

Eso quiere decir que en tiempo de ejecución lo tienes siempre disponible llamándolo sin especificar path alguno. Así si tienes en tu proyecto una carpeta llamada, por ejemplo "Iconos" y metes en ella las imágenes de los botones, por ejemplo, en tu código sólo tienes que especificar algo así para cargar la imagen en un botón:
miboton.picture=picture.load("Iconos/miicono.png")


Ahora bien, como es lógico, al estar "dentro" del ejecutable todos esos recursos son de sólo lectura y sólo en caso de que necesitases modificarlos en tiempo de ejecución hay que "sacarlos" fuera para su manipulación. En tal caso /bin (o cualquier carpeta específica del sistema) no es el lugar para guardar dichos recursos. Estas carpetas están para lo que están, y todas las actualizaciones, purgas, y demás tejemanejes del sistema "suponen" que lo que hay ahí es lo que se espera. Puedes llevarte desagradables sorpresas si te dedicas a almacenar tus ficheros carpetas del sistema que no están pensadas para ello.

Si nuestro programa sólo va a ser ejecutado por un usuario o, debido a su naturaleza (una agenda, por ejemplo), cada usuario tiene sus propias bases de datos, etc. o si hay archivos que nuestro programa necesitará para ejecutarse y que sí deben poder ser modificados por el usuario según sus preferencias: (plantillas de listados, plantillas xml, firmas escaneadas, etc). Estos deben estar bajo su home. Lo más habitual es ubicarlas en una carpeta oculta (que empiece por un punto) con el mismo nombre que nuestro programa y dentro del home del usuario.

Además, si nuestro programa puede ser utilizado por varios usuarios distintos dentro de la misma máquina puede haber ficheros, bases de datos por ejemplo, que deban ser comunes a todos los usuarios. En tal caso sí deben estar en una ubicación conocida e independiente de cada usuario. Estos archivos deben ir a una carpeta fuera del home del usuario (En Debian y derivados (Ubuntu, Mint, etc.), por ejemplo, dispones de la carpeta /opt (por optional) que es ideal para ubicar los recursos colectivos de la aplicación.) gambas nos permite incluir tales ficheros en el paquete de instalación, lo que es muy cómodo (la instalación se hace como root, y eso nos permite grabar en esas carpetas del sistema) o nos deberemos encargar nosotros en tiempo de ejecución de crearlos.

Resumiendo:


|-----------------------------|-------------------------------|--------|------------------------|
| TIPOS DE ARCHIVO | UBICACIÓN |CREADOR | CUÁNDO |
|-----------------------------|-------------------------------|--------|------------------------|
| Archivos "fijos" que utiliza| Dentro del propio ejecutable | gambas | Al crear el paquete |
| el Ejecutable (iconos, etc.)| | | |
|-----------------------------|-------------------------------|--------|------------------------|
| Ejecutable | /usr/bin/ | gambas | Al instalar el paquete |
|-----------------------------|-------------------------------|--------|------------------------|
| Archivos de configuración | ~/.config/gambas3/miprograma | gambas | En ejecución |
| (Settings) | | | |
|-----------------------------|-------------------------------|--------|------------------------|
| Archivos de entorno de | /home/usuario/.miprograma/ | Tú | En ejecución |
| usuario: Bases de datos, | | |(Normalmente en la |
| logotipos, firmas escaneadas| | |la primera ejecución) |
| plantillas html, xml, etc. | | | |
|-----------------------------|-------------------------------|--------|------------------------|
| Bases de datos o carpetas | /opt/miprograma/ | Tú | En ejecución o en |
| y ficheros comunes a varios | | o | instalación según |
| usuarios del ordenador | | gambas | según construyas |
| | | | el paquete. |
|-----------------------------|-------------------------------|--------|------------------------|
| Archivos temporales | /tmp/gambas.iddeusuario/ | Tú | En ejecución (usando |
| | | | la función tmp() ) |
|-----------------------------|-------------------------------|--------|------------------------|



Siguiendo estas sencillas directrices desarrollaréis aplicaciones profesionales y perfectamente integradas con el sistema operativo.

Saludos

*Nota: A partir de linuxmint 17.3 Rosa, /opt no viene creada por defecto. La debes crear tú, con permisos de root. Pero sigue siendo un lugar seguro para guardar nuestros ficheros comunes.

última edición por shordi el Martes, 30 Agosto 2016, 06:54; editado 9 veces
Perfil MP  
Objetivo: Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
Muy bueno Shordi: +1

Nota:
Si me das tu permiso, lo añado al blog de curso de gambas

última edición por jsbsan el Domingo, 28 Agosto 2016, 09:28; editado 1 vez
Objetivo: Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
Por supuesto. Todo lo que sea útil debe ser compartido.

Gracias.

Perfil MP  
Objetivo: Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
Por cierto, he intentado colocar el resumen final en un tipo de letra monospace, para hacerlo a modo de columnas... pero el foro no me ha dejado. Si en tu blog se puede hacer, mejor que mejor, que queda más clarito.

Perfil MP  
Objetivo: Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
¿Por qué aparecerá "Nota:" en el título de este post?

Perfil MP  
Objetivo: Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
Porque así lo he marcado yo, para que aparezca como nota importante en la parte superior del foro, cuando ves la lista de temas del foro concreto. Además el título queda resaltado en verde, para que sirva de referencia.

Saludos

Perfil MP  
Objetivo: Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
¡Gracias Jesús!
¡Mola!

Perfil MP  
Objetivo: Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
Shordi:

He publicado tu entrada en el curso de gambas:
http://cursogambas.blogspot.com.es/...0&max-results=1


Citar:
he intentado colocar el resumen final en un tipo de letra monospace, para hacerlo a modo de columnas... pero el foro no me ha dejado. Si en tu blog se puede hacer, mejor que mejor, que queda más clarito.
Si quieres añadir algo, me lo pasas por correo del foro o por mi correo personal y lo añado al blog

Objetivo: Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
Perfecto.

Ya te digo que mi idea original era hacer una especie de tabla con el resumen de los ficheros, con las columnas

Fichero Dónde ponerlo Quién se encarga
---------------------------------------------------------------------------------------------------------------
Ejecutable /usr/bin gambas solito al instalar

etc. etc.

Pero el foro no tiene (o yo no he sabido verlo) fuentes monospaces... y no sé si vale la pena.

Así no queda mal, tampoco.

Saludos.

Perfil MP  
Objetivo: Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
¿Algo así, shordi?


Ficheros Dónde ponerlo Quién se encarga
====================================================================
Fijos s/lectura Ejecutable Gambas
--------------------------------------------------------------------
Configuraciones Settings() Gambas
--------------------------------------------------------------------
Config.modificables User.Home &/.miprograma/ El programador
--------------------------------------------------------------------
BD y fich. multiuser /opt/miprograma/ El programador
--------------------------------------------------------------------
BD y ficheros usuario User.Home &/.miprograma/ El programador
--------------------------------------------------------------------
Fich. temporales /tmp/gambas/.userid El programador
--------------------------------------------------------------------



Tienes que editar el texto en un editor de texto como el de gambas y usar espacios en vez de tabulaciones para alinear.
Usa el tipo de letra 'Courier New' del desplegable del editor del foro y aumenta un poco el tamaño de fuente, colores, etc. Mola que te cagas, es muy retro-terminal

La única pega es que la vista previa del foro no respeta los espacios ni las indentaciones, etc...


Saludos

Perfil MP  
Ir a la página 1, 2, 3  Siguiente

Página 1 de 3


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1825s (PHP: -42% SQL: 142%)
Consultas SQL: 48 - Debug off - GZIP Activado