Buenos das, estoy iniciando a descubrir Xojo, de momento tengo una duda que no e logrado encontrar en la documentacin.
Estoy tratando de indicar que mi base de datos se encuentra en el directorio actual y dentro de la subcarpeta Datos, sin embargo no se logra la conexin, qu estoy haciendo mal ?
dim f as folderitem=SpecialFolder.CurrentWorkingDirectory.Child(“Datos”).child(“Bagenda.sqlite”)
Hola Esteban, yo tambin estoy aprendiendo, tratando de leer y practicar todo lo posible.
De acuerdo a la documentacin de SpecialFolder el valor de CurrentWorkingDirectory vara dependiendo de la ejecucin de la app. Inclusive dice que en Windows cambia si se ejecuta desde Xojo o si se crea una app.
Normalmente lo que yo hago es poner un MsgBox para saber qu valores est tomando Xojo, ya que normalmente son diferentes a los que yo quiero
dim f As FolderItem
f = SpecialFolder.CurrentWorkingDirectory
MsgBox f.ShellPath
Con eso puedes ver el valor que tiene. Ya cuando sepamos usar mas Xojo podremos encontrar mas informacin en el debug, pero para ir aprendiendo a mi me sirve esta forma.
Para un app que estoy haciendo, pienso poner el SpecialFolder con Documents y de ah los Child.
Espero te sirva esta informacin que entrego de buena voluntad con mi experiencia de ‘muy novato’.
Personalmente, no he utilizado SpecialFolder.CurrentWorkingDirectory, yo utilizo GetFolderItem("") me devuelve el actual directorio (puede cambiar si por ejemplo utilizo commandos shell para cambiar de directorio), y puede (dependiendo si esta en windows o mac) devolver el direcotio padre (por ejemplo para buscar en la carpeta “Resources”).
Tambien puede usar App.ExecutableFile por ejemplo App.ExecutableFile.Child("Datos").Child("Bagenda.sqlite")
La mayor utilidad de SpecialFolder es la de acceder a directorios bien conocidos en cada una de las diferentes plataformas de despliegue, lo que significa que nos aseguramos de que la app siempre va a acceder al directorio (o jerarqua de directorios) correcta en funcin de cual sea el SO sobre el que se est ejecutando (macOS, Windows, Linux).
Por ejemplo, es prctica muy habitual utilizar todos los archivos auxiliares de la aplicacin dentro de la carpeta “Application Support”, en el caso de macOS y que tambin tiene sus equivalencias en Windows y Linux. Mediante el uso de SpecialFolder nuestro cdigo se ahorra la necesidad de saber sobre qu sistema operativo se ejecuta y crear un path en un sentido u otro a la hora de acceder al archivo. Esto mismo tambin es vlido para acceder a la carpeta de archivos temporales, cach y otros
Muchas gracias por la informacin, aqui sigo descubriendo Xojo, ahorita tengo duda de como ponerle a un TextFiedl el formato, para que solo acepte datos numericos.
Por lo que entiendo se puede usar # o 9 para que el usuario slo pueda poner nmeros. Todava no capto cul es la diferencia entre ambos pero bueno seguimos probando y aprendiendo.