Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Application.Path y Application.Dir
#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 buen perfume en frasco pequeño se vende"
    ¡Gracias!
#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
    ¡Gracias!
#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 buen perfume en frasco pequeño se vende"
    ¡Gracias!
#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, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
[-] Los siguientes 2 usuarios dicen gracias a vuott por este post:
  • Shell, Shordi
    ¡Gracias!
#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
    ¡Gracias!
#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:

GAMBAS
  1. If Not sPath Then sPath = Application.Dir



Y la mejor. Por aclaratoria.

GAMBAS
  1. If File.IsRelative(sPath) Then sPath = Application.Dir &/ sPath



Gambas est magnus.  Shy

Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#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, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)