Spanish Problema al extraer datos de una lista. [Solucionado]

carlos7000

Well-Known Member
Licensed User
Longtime User
Hola a todos.

Estoy tratando de pasar parte del contenido de un archivo csv a una base de dato sqlite. Para ello escribí una funcion de prueba. Este es el código.

B4X:
Public Sub CargaDatos
    Dim SU As StringUtils
    Dim AirPorts As List = SU.LoadCSV(File.DirAssets, "ejemplo.csv", ",")
   
    Dim Renglon As List
    Renglon = AirPorts.Get(1) 'No lee la posicion 0 porque son los titulos
   
    Dim id, Tipo, Elevation_ft As Int
    Dim Ident, Name, Continent, iso_country, _
        iso_region, municipality, gps_code, iata_code, _
        local_code, keywords As String
    Dim Latitude_deg, Longitude_deg As Double
   
    id                = Renglon.Get(0)
    Ident            = Renglon.Get(1)
    Tipo            = Renglon.Get(2)
    Name            = Renglon.Get(3)
    Latitude_deg    = Renglon.Get(4)
    Longitude_deg    = Renglon.Get(5)
    Elevation_ft    = Renglon.Get(6)
    Continent        = Renglon.Get(7)
    iso_country        = Renglon.Get(8)
    iso_region        = Renglon.Get(9)
    municipality    = Renglon.Get(10)
    gps_code        = Renglon.Get(11)
    iata_code        = Renglon.Get(12)
    local_code        = Renglon.Get(13)
    keywords        = Renglon.Get(14)
End Sub

Al asignar cada dato a cada variable, el programa se quiebra.

Como se ve en la captura. Renglón es una lista, en cada posición de la lista un dato.



El compilador dice:

java.lang.ClassCastException: java.lang.String[] cannot be cast to java.util.List
 

carlos7000

Well-Known Member
Licensed User
Longtime User
Ya encontré el error.

No es

B4X:
Dim Renglon As List

La forma correcta en este caso es

B4X:
Dim Renglon() As String

El código completo corregido es este

B4X:
Public Sub CargaDatos
    Dim SU As StringUtils
    Dim AirPorts As List = SU.LoadCSV(File.DirAssets, "ejemplo.csv", ",")
    
    Dim Renglon() As String
    Renglon = AirPorts.Get(1) 'No lee la posicion 0 porque son los titulos
    
    Dim id, Elevation_ft As Int
    Dim Ident, Name, Continent, iso_country, Tipo, _
        iso_region, municipality, gps_code, iata_code, _
        local_code, keywords As String
    Dim Latitude_deg, Longitude_deg As Double
    
    id                = Renglon(0)
    Ident            = Renglon(1)
    Tipo            = Renglon(2)
    Name            = Renglon(3)
    Latitude_deg    = Renglon(4)
    Longitude_deg    = Renglon(5)
    Elevation_ft    = Renglon(6)
    Continent        = Renglon(7)
    iso_country        = Renglon(8)
    iso_region        = Renglon(9)
    municipality    = Renglon(10)
    gps_code        = Renglon(12)
    iata_code        = Renglon(13)
    local_code        = Renglon(14)
    keywords        = Renglon(17)
End Sub
 
Last edited:
Cookies are required to use this site. You must accept them to continue using the site. Learn more…