Shell   06-10-2022, 12:21
#1
Buenas!.

¿ A que os puede crear confusión diferenciarlas al principio ?.

Puede parecer lo mismo, pero no lo es. Según dice la ayuda de Gambas.

Application.Path. Devuelve la ruta de la aplicación, es decir, el directorio donde reside.
Application.Dir. Es el directorio de trabajo actual definido al inicio de la aplicación.

¿ Cuando se usa Application.Dir ?. Y es que dice que está definido al inicio de la aplicación.
Deberá ser definido por el propio desarrollador.

¿ Es necesario definirlo ?. Nunca se me ha dado el caso. Aunque lo he visto en Entornos de desarrollo,
que en el caso del editor de Gambas, debe ser el /tmp. Y en algunos emuladores.

Un directorio donde guardar resultados de procesos. Otra cosa.
¿ Lo han usado ustedes para algo concreto ?.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   06-10-2022, 13:17
#2
Nunca lo he usado, pero supongo que se refiere al directorio de trabajo desde el que se lanza la aplicación o algo así.. útil para las aplicaciones de consola, supongo.

Saludos.

No podemos regresar
Shell   06-10-2022, 15:50
#3
(06-10-2022, 13:17)Shordi escribió: útil para las aplicaciones de consola, supongo.

Y para las de formulario, ¿ no ?.

Es que como directorio una vez que se instale el paquete binario deberían estar en /usr/bin o /bin, para llamar a la aplicación.
Que también puede ser un script. Que no será el primero que has creado e instalado ahí.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
vuott   07-10-2022, 00:17
#4
Ave Romanorum Consul !
Te remito a la nota 2 en la parte inferior de la página siguiente (tendrás que traducirla):

   https://www.gambas-it.org/wiki/index.php...ation#Note

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
Shordi   07-10-2022, 10:27
#5
(07-10-2022, 00:17)vuott escribió: Ave Romanorum Consul !
Te remito a la nota 2 en la parte inferior de la página siguiente (tendrás que traducirla):

   https://www.gambas-it.org/wiki/index.php...ation#Note

Consul locuta, causa finita.

Big Grin Big Grin

No podemos regresar
Shell   08-10-2022, 10:24
#6
(07-10-2022, 00:17)vuott escribió: Te remito a la nota 2 en la parte inferior de la página siguiente (tendrás que traducirla):

Gratias ago tibi, legatus Vuott. Wink
 
(07-10-2022, 10:27)Shordi escribió: Consul locuta, causa finita.

En este caso, Vuott lo ha dejado bien claro. Big Grin
Adjunto la traducción que crea Google Translator. Espero que buena.
 
Cita: 
Un proyecto de Gambas tiene un "directorio de proyecto", que es donde se almacenan su código fuente, configuración y archivos de datos. Se puede acceder a él en tiempo de ejecución a través de "Application.Path", pero debe tenerse en cuenta que un script de Gambas está incrustado en un proyecto temporal sobre la marcha.

Por lo tanto, obtiene la ruta a ese proyecto en lugar de la ruta al archivo de script; y "Application.Path" de un ejecutable será otra cosa (solo / tmp). "Application.Path" es, según la documentación, la ruta al directorio del proyecto. Cuando crea un paquete de instalación, solo se instala un archivo ejecutable (file.gambas). Usar "Application.Path" no tiene sentido para dicho archivo. Así, por ejemplo, los archivos que ahora están en la carpeta del proyecto se ubican posteriormente en un archivo y no tienen ruta en el sistema de archivos. La solución es usar rutas "relativas".

El intérprete de Gambas resuelve automáticamente las rutas "relativas" en sus funciones, como "File.Load ()", en relación con el directorio base del archivo. Cuando se crea un paquete de instalación, solo obtiene un archivo ejecutable del proyecto (archivo * .gambas) dentro de él. Este archivo es un solo archivo que contiene todo el proyecto, pero obviamente no es posible usar rutas "absolutas" en el sistema de archivos para acceder a estos archivos. Si tiene la intención de acceder a un archivo ubicado en relación con el directorio del proyecto, debe usar rutas "relativas" simples.

Otra cosa es el directorio de trabajo actual (cwd), que es un concepto familiar para el shell y otros lenguajes de programación. El cwd al iniciar el programa está disponible a través de "Application.Dir". Sin embargo, el lenguaje Gambas no tiene un concepto de "directorio de trabajo actual", ya que las rutas "relativas" en el código siempre son interpretadas por los integrados de Gambas como "relativas" al directorio del proyecto, nunca al entorno cwd . En caso de que se inicie desde un ejecutable, Gambas accederá de forma transparente a los archivos en la estructura de archivos mapeados en memoria y proporcionará su contenido. Sin embargo, recuerde que las rutas "relativas" en los programas de Gambas no hacen lo que está acostumbrado con el shell. En breve: - No es necesario consultar "Application.Path" para los datos del proyecto; use rutas "relativas" en su lugar. - No debe usar rutas "relativas" para los archivos en el cwd: es recomendable hacerlas "absolutas" con "Application.Dir & / ...".

En el texto se habla del directorio de trabajo "cwd".  ¿ Por casualidad su traducción es "change work directory" ?.
Pero como comando no existe. O por lo menos en el sistema que estoy usando (Linux Mint Mate 20.3), en el manual no aparece.
Aunque lo busco y encuentro esto:

Cwd - get pathname of current working directory

En el código fuentes de Gambas al cargarlo, tenemos el módulo "Project". Encontré dos referencias a Application.Dir
Fijaros, de paso conocemos un método de la clase File, que es el método "IsRelative". Pero se necesita usar el componente gb.util
si se quiere usar.

Ejemplos de líneas que lo encontré en el modulo Project:

Código:
If Not sPath Then sPath = Application.Dir

Y la mejor. Por aclaratoria.

Código:
If File.IsRelative(sPath) Then sPath = Application.Dir &/ sPath

Gambas est magnus.  Shy

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
vuott   08-10-2022, 15:57
#7
(08-10-2022, 10:24)Shell escribió: "cwd".  ¿ Por casualidad su traducción es "change work directory" ?.

Excellentissime Consul, si bene vales ego valeo !

En el texto original en italiano, se muestran entre paréntesis exactamente las palabras:
« Current working directory - cwd »

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
  
Usuarios navegando en este tema: 4 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.