https://foro.gambas-es.org/viewtopic.php?f=1&t=4184
-----------------------------------
jsbsan
Lunes, 13 Octobre 2014, 20:44

Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Tengo un problema que me ha surgido hoy:

El programa ("Cortes"), cuando arranca, si no encuentra la base de datos en el directorio user.home, copia una base de datos "vacia" desde la carpeta "Datos".

Con este código:
[code linenumbers=false syntax=gambas]
  If Not Exist(User.home &/ "Cortes") Then
    Copy "Cortes" To User.home &/ "Cortes"
    Wait 1
endif
[/code]

Este código funciona perfectamente en el IDE de gambas, pero cuando creo el paquete DEB, y se instala en otro ordenador, falla, parace que no encuentra el archivo "Cortes"

¿sabeis como lo puedo indicar para que lo copie?

Nota:
Uso gambas3.5.4, y antes no se me habia presentado ese problema. No se si es que como siempre trabajo en el IDE, no me habia dado cuenta que con el DEB daba ese problema...


-----------------------------------
jguardon
Lunes, 13 Octobre 2014, 20:52

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Prueba así y nos cuentas:

[code linenumbers=false syntax=gambas]Copy "./Cortes" To User.home &/ "Cortes"[/code]

Saludos

P.D. Aunque debería de dar lo mismo, porque es una ruta relativa dentro del ejecutable...


-----------------------------------
jguardon
Lunes, 13 Octobre 2014, 21:08

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Sólo para aclarar un poco las cosas, cito de Benoît:

[quote user="Benoît Minisini"]
Project files that won't go into the executable must be stored in the 
Project (i.e. '.hidden') directory.

Project files that will go into the executable are stored in the Data 
directory (every other non-hidden directories).

...except the files matching the patterns referenced in the Preferences 
dialog.

[/quote]

O sea, que si está en Data, debe de ir dentro del ejecutable. 

O puede que el error no sea ese, sino algo relacionado con la copia al directorio del usuario. Yo pondría una cláusula try-catch para capturar el texto error y asegurarme.


Saludos


-----------------------------------
jsbsan
Lunes, 13 Octobre 2014, 21:22

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
jguardon:

No, no me funciona me sigue dando el mismo error:

 [img]http://foro.gambas-es.org/files/images/6/pantallazo_13.png[/img] 

La linea 28 es justamente la que hace la copia.

Si quieres echarle un vistaso al código esta alojado en:
https://drive.google.com/folderview?id=0B02Ro2CNt-OOZnhyeEJOUl95WXM&usp=sharing

Nota:
Si lo ejecuto en el IDE, sin problemas, incluso si luego ejecuto el icono que crea DEB (evidentemente es porque en la ejecución dentro del IDE hizo el copiado). Es muy extraño, porque he usados este mismo procedimiento en otros programas y no me dio problemas... (o por lo menos nadie me dijo nada)...


-----------------------------------
jsbsan
Lunes, 13 Octobre 2014, 21:31

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Nota:
He hecho otro cambio, el archivo le he puesto extensión , "Costes.sqlite", pero no, sique dando el mismo problema...


-----------------------------------
jguardon
Lunes, 13 Octobre 2014, 23:23

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Lo he bajado y a mi tampoco me da problemas corriéndolo desde el IDE. Mañana preparo una máquina virtual y pruebo la instalación del deb.

Es posible que sea un bug en la versión 3.5.4 de gambas, pero si es así, en unos días sale la 3.6.0.

Saludos


-----------------------------------
jsbsan
Martes, 14 Octobre 2014, 08:48

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
jguardon:

Tiene pinta de ser un bug, en concreto con este tipo de archivo (bases de datos sqlite), ya que he probado con otros archivos (.png) y funciona bien.

Saludos

Julio


-----------------------------------
shordi
Martes, 14 Octobre 2014, 09:38

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Yo no he tenido ese problema (aunque en los últimos días no lo he comprobado), pero yo siempre uso una carpeta interna, o sea, "Datos/cortes". Prueba a ver si eso pita...


-----------------------------------
jsbsan
Martes, 14 Octobre 2014, 10:20

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Shordi:

[quote]"Datos/cortes"[/quote]
¿a que te refieres?
a poner la ruta "Datos/cortes"  en la orden Copy (estando los datos en la zona "Datos" del proyecto)
o crear una carpeta en la zona de "Datos" del proyecto -> esto lo he probado y no funciona...


Esta tarde voy a probar una cosa:
- Comprimir el archivo "cortes" en un tar.gz
- Cuando se ejecute el programa, que compruebe si existe el "cortes" y si no es asi, lo copie (el tar.gz)  y descomprima. 

Con los tar.gz, no he tenido problemas, a ver si el problema es el binario "cortes" :?: .... ya os cuento...


-----------------------------------
shordi
Martes, 14 Octobre 2014, 11:41

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
[quote]¿a que te refieres?[/quote]
Me refiero a que creo una carpeta dentro del proyecto que llamo "Datos" y en ella meto todo lo que quiero pasar a la carpeta /home/usuario/.nombredelproyecto. 
Es más fácil usar la rutina recursiva copia_dir (que ya comentamos en algún que otro hilo) y copiar el contenido de lla carpeta Datos entera al home del usuario.

copia_dir("Datos", user.home &/ "." & application.name)

No sé si me explico


Saludos


-----------------------------------
jsbsan
Martes, 14 Octobre 2014, 12:12

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Shordi:

[quote]Me refiero a que creo una carpeta dentro del proyecto que llamo "Datos" y en ella meto todo lo que quiero pasar[/quote]
Eso lo probé ayer, y no función con este archivo "cortes" en concreto.  :cry: 


Saludos...


-----------------------------------
shordi
Martes, 14 Octobre 2014, 12:17

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Pero la carpeta datos ¿contiene algún archivo más? ¿has comprobado los permisos (si la has copiado a pelo en el proyecto pueden ser erróneos)?
No creo que tenga nada que ver en absoluto con el tipo de fichero, a mí me copia bases sqlite sin ningún problema.


-----------------------------------
jsbsan
Martes, 14 Octobre 2014, 14:22

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Shordi:

[quote]Pero la carpeta datos ¿contiene algún archivo más?[/quote]
Si, tiene más archivos. Solo me interesa copiar el de la base de datos "cortes"

[quote] ¿has comprobado los permisos (si la has copiado a pelo en el proyecto pueden ser erróneos)?[/quote]
No, no he comprobado eso... De todos modos, siempre trabajo con el mismo usuario.

[quote]No creo que tenga nada que ver en absoluto con el tipo de fichero, a mí me copia bases sqlite sin ningún problema.[/quote]
Prueba mi programa (ejecutando el .DEB), a ver si te da error.  ( http://tpvpeluqueria.blogspot.com.es/p/descarga.html ), y puedes averiguar algo (si son permisos, o lo que sea...)

Nota:
Ya he probado lo del tar.gz, y funciona bien... esta tarde lo añado a la version 0.1.6, por lo menos que no le de problemas a la gente que lo instala, a menos que de con otra solucion.


-----------------------------------
shordi
Martes, 14 Octobre 2014, 17:34

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
El cortes 0.1.6-1 funciona perfecto en mi sistema. Genera su .config/gambas3/Cortes.conf y la base cortes en el user.home sin problemas.

Algo tienes en la máquina, pues...

[quote]No, no he comprobado eso... De todos modos, siempre trabajo con el mismo usuario.[/quote]

Te sorprenderías, te sorprenderías... basta con haberlo trasteado con un pendrive o compartido en la red local o vaya usted a saber...

De todas formar, repito: Funciona.


-----------------------------------
jsbsan
Martes, 14 Octobre 2014, 19:03

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Shordi:

[quote]El cortes 0.1.6-1 funciona perfecto en mi sistema.[/quote]
Si, ese el codigo que he subido esta tarde, con la "técnica" del tar.gz

[quote]basta con haberlo trasteado con un pendrive [/quote]
Pues ahora que lo dices.... ese programa lo he realizado en varios ordenadores, con un pendrive de aqui para allá  :roll:  :roll: , al final va ha ser el tema de los permisos.... bueno ya lo he resuelto con lo de comprimir y descomprimir en tar.gz... por ahora lo dejo asi.

Gracias!!!

Saludos


-----------------------------------
shordi
Miercoles, 15 Octobre 2014, 06:30

Re: Copia De Archivos Internos Cuando Usamos DEB
-----------------------------------
Por si te vale de consejito: El hecho de trabajar en redes locales continuamente, con recursos compartidos vía nfs, hace que los conflictos con los permisos sean el pan de cada día. Desde hace muchos años tengo la costumbre de añadir al nautilus (o equivalente) de manera predeterminada que muestre los permisos (en octal o con letras, como quieras) en la última columna.
Repito lo que te dije: te sorprenderías de lo que a veces te encuentras tengas o no una red.


