Spanish Escoger archivo y cargar en Table

TheFalcon

Active Member
Licensed User
Longtime User
Buenas, acudo al foro de sabios desesperado(estoy de los cambios de gestión de archivos de google hasta los ...)

Yo cargo en un Table , un archivo CSV, sin problema. desde dirassets
Table1.LoadTableFromCSV2(File.DirAssets,"archivo.csv", True,separador, False):

El problema esta que cuando uso choosecontent , para buscar le archivo que cargar en el table, me da la típica ruta

content://com.android.providers.media.documents/document/document%3A1000030043:

como ese archivo no puedo cargarlo en el table (necesito ruta y nombre real del archivo)
Uso COPY para copiarlo

File.Copy(Dir, FileName, File.DirRootExternal, "archivo.csv"):

pero no puedo cargar ese archivo supongo que por las politicas de google.
¿en que ruta puedo ponerlo o copiarlo que me deje abrirlo, ? - ó ¿hay algún otro modo de buscar le archivo y que me de la ubicación real?

Por si alguien tiene duda, Uso Table, por que con B4xTable no se como decir que me devuelva por ejemplo el valor de la Fila 5 Celda 4 (Sin pinchar en la tabla).

Gracias y Feliz Puente
 

josejad

Expert
Licensed User
Longtime User
Hola TheFalcon.

Siempre es más fácil ayudar si pones un proyecto de ejemplo para que podamos trastearlo.

saludos,
 

TheFalcon

Active Member
Licensed User
Longtime User
Aquí lo adjunto Jose.
Tengo 3 botones, el 1º que carga automáticamente el csv del DIRASSETS, sin problema
el Botón 2 que busca un archivo csv (en mi caso tengo en el móvil el mismo que en dirassets ya que todos tendrán la misma composición)
una vez encontrado, lo copia en DirDefaultExternal , y con el botón 3, lo cargo en table, y hay da el error.

Espero te sirva, un saludo y gracias por tomarte tu tiempo como siempre

No me atacha el adjunto, te pongo enlace de google drive
 

josejad

Expert
Licensed User
Longtime User
Luego lo miro, pero sabes que ya no es tan fácil en nuevas versiones de Android acceder a dirdefaultexternal, no? Has leído sobre ello? ¿Has probado a copiarlo en XUI.DefaultFolder?

 
Last edited:

TheFalcon

Active Member
Licensed User
Longtime User
Prueba esta versión, veamos si te funciona correctamente.
Gracias por tu ayuda, no me funciona, no me llega a copiar el archivo en la carpeta, me da el mismo error que a mi.
java.lang.StringIndexOutOfBoundsException: begin 37877, end -1, length 38664:

si modifico poniendo el nombre del archivo que si se que existe en la carpeta Files
Table1.LoadTableFromCSV2(xui.DefaultFolder, "archivo.csv", True,separador, False):
con el xui.default, me da otro error qeu dice que no encuentra el archivo pero si esta en la carpeta.

B4X:
Error occurred on line: 1691 (Table)
java.io.FileNotFoundException: /data/user/0/com.testtable/files/archivo.csv: open failed: ENOENT (No such file or directory)

Diría que es por el modulo table, pero me sigue rayando que desde dirassets lo haga sin problema
 

TheFalcon

Active Member
Licensed User
Longtime User
Luego lo miro, pero sabes que ya no es tan fácil en nuevas versiones de Android acceder a dirdefaultexternal, no? Has leído sobre ello? ¿Has probado a copiarlo en XUI.DefaultFolder?

si jose , estoy seguro que es por eso pero ni con xui pude, el ejemplo que me paso mariano tan amablemente , esta con xui y me hace lo mismo, no se si probar con bxtable, a ver si es por eso, voy a darle otra vuelta al asunto.
gracias
 

angel_

Well-Known Member
Licensed User
Longtime User
Es extraño, yo lo he probado con Android 13 y funciona bien. Podría sugerir que alguien mas lo pruebe para ver si obtiene buenos resultados, o quizás aun probarlo en un teléfono diferente.
Lo he probado pero no tiene asignado el nombre del archivo y por eso falla, se soluciona fácilmente así:

B4X:
Private Sub btnCargaArchivoBuscado_Click
    Dim separador As String = ";"
    Table1.ClearAll
    Table1.LoadTableFromCSV2(xui.DefaultFolder, "archivo.csv", True,separador, False)
End Sub

También puedes declararlo el Process_Globals:

B4X:
Private archivoCSV As String = "archivo.csv"

Yo buscaría una solución con B4XTable.
 

TheFalcon

Active Member
Licensed User
Longtime User
Debe de ser algo de mi dispositivo por que a mi sigue sin buscármelo, en cambio con B4xTable no tengo problema en Buscarlo y Luego cargarlo, tendré que hacerlo con B4xtable , aunque a mi, aunque sea mas moderno, me era mas fácil usar Table por que ya lo he usado otras veces, pero nunca lo use con un Buscador, siempre use Table, sabiendo al ruta de los archivos.

Gracias a todos, lo hare con el b4x, por que vaya quebradero de cabeza para una tontearía
 
Top