Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

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

Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
Artículo
Responder citando    Descargar mensaje  
Mensaje 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 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Domingo, 28 Agosto 2016, 07:43 ]
 


Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas
Comentarios
Responder citando    Descargar mensaje  
Mensaje 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 
Editado por jsbsan, Domingo, 28 Agosto 2016, 09:28: petición de permiso para incluir al blog de curso de gambas
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Domingo, 28 Agosto 2016, 09:27 ]
Responder citando    Descargar mensaje  
Mensaje Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas 
 
Por supuesto. Todo lo que sea útil debe ser compartido.

Gracias.
     



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Domingo, 28 Agosto 2016, 09:33 ]
Responder citando    Descargar mensaje  
Mensaje 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.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Domingo, 28 Agosto 2016, 09:38 ]
Responder citando    Descargar mensaje  
Mensaje Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas 
 
¿Por qué aparecerá "Nota:" en el título de este post?
   



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Domingo, 28 Agosto 2016, 18:32 ]
Responder citando    Descargar mensaje  
Mensaje 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



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Domingo, 28 Agosto 2016, 20:05 ]
Responder citando    Descargar mensaje  
Mensaje Re: Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas 
 
¡Gracias Jesús!
¡Mola!     



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Domingo, 28 Agosto 2016, 20:21 ]
Responder citando    Descargar mensaje  
Mensaje 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



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Lunes, 29 Agosto 2016, 19:19 ]
Responder citando    Descargar mensaje  
Mensaje 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.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Lunes, 29 Agosto 2016, 19:41 ]
Responder citando    Descargar mensaje  
Mensaje 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



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Lunes, 29 Agosto 2016, 22:21 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 3
Ir a la página 1, 2, 3  Siguiente
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron