Spanish Error al tratar de mostrar datos de un archivo CSV. SOLUCIONADO

carlos7000

Well-Known Member
Licensed User
Longtime User
Escribí un pequeño programa para probar si puedo leer y mostrar los datos contenidos en un archivo CSV. Todo parece funcionar hasta que la ejecución del programa llega a la línea

B4X:
Log("Fecha: " & subList.Get(0))

El error que arroja B4J es:

java.lang.ClassCastException: class [Ljava.lang.String; cannot be cast to class java.util.List ([Ljava.lang.String; and java.util.List are in module java.base of loader 'bootstrap')

He casteado los datos de la siguiente forma

B4X:
Log("Fecha: " & subList.Get(0).As(String))

No se cual puede ser el problema.

Adjunto el proyecto.
 

Attachments

  • CSV1.zip
    91.2 KB · Views: 170

josejad

Expert
Licensed User
Longtime User
Hola:

Si pones el ratón sobre LoadCSV te indica que almacena los datos en una lista con arrays de strings. Un array en B4X se comporta como una lista (o viceversa), por lo que no puedes tratarla directamente como un string.

1672760939498.png


Basado en este hilo, puedes mostrar los datos como:
B4X:
For Each Row() As String In su.LoadCSV (File.Dirassets,"XRPBUSD.TXT",",")
 For Each n As String in Row
   Log(n)
 Next
Next
 

carlos7000

Well-Known Member
Licensed User
Longtime User
Hola:

Si pones el ratón sobre LoadCSV te indica que almacena los datos en una lista con arrays de strings. Un array en B4X se comporta como una lista (o viceversa), por lo que no puedes tratarla directamente como un string.

View attachment 137665

Basado en este hilo, puedes mostrar los datos como:
B4X:
For Each Row() As String In su.LoadCSV (File.Dirassets,"XRPBUSD.TXT",",")
 For Each n As String in Row
   Log(n)
 Next
Next

Hola José

Con su ayuda he escrito este nuevo código:

B4X:
    Dim su As StringUtils
    Dim Data As List
    Dim row() As String
   
    Data = su.LoadCSV(File.DirAssets, "XRPBUSD.TXT", ",")
    For i = 0 To Data.Size - 1
        row = Data.Get(i)
       
        Log("Fecha: " & row(0))
        Log("Bid..: " & row(1))
        Log("Ask..: " & row(2))
    Next

Otra forma:

B4X:
    Dim su As StringUtils
    Dim row() As String
    
    For Each row() As String In su.LoadCSV (File.Dirassets,"XRPBUSD.TXT",",")
        Log("Fecha: " & row(0))
        Log("Bid..: " & row(1))
        Log("Ask..: " & row(2))
    Next


Muchas gracias.
 
Last edited:
Top