Spanish Error con file reader/select

Discussion in 'Spanish Forum' started by Daniel Alejandro, Sep 10, 2018.

  1. Daniel Alejandro

    Daniel Alejandro Member Licensed User

    Hola chicos del foro, tengo un problema con mi codigo, lo que quiero hacer es que el programa lea un archivo de .txt y este seccionarlos en distintas variables, el problema es que al momento de correr el programa pasa esto[​IMG]
    El codigo es:
    Code:
    Sub Process_Globals
        
    'These global variables will be declared once when the application starts.
        'These variables can be accessed from all modules.
        Dim Contenido As String
        
    Dim DosPuntos As Boolean
        
    Dim ContadorCaracter As Int
        
    Dim LetraTemporal As String
        
    Dim Seccion As Int
        
    Dim NombreEvento As String
        
    Dim FechaEvento As String
        
    Dim HoraEvento As String
        
    Dim NombreDocumento As String
        
    Dim Conferencista As String
        
    Dim TipoEvento As String
        
    Dim PrimeraVezEnGrupos As Boolean
        
    Dim InicioGrupos As Int
        
    Dim CantidadGrupos As Int
        
    Dim SeccionGrupo As Int
        
    Dim DespliegaGrupos As Int
    End Sub

    Sub Globals
        
    'These global variables will be redeclared each time the activity is created.
        'These variables can only be accessed from this module.

        
    Private EventosPanel As Panel
        
    Private DetallesEventos As Label
        
    Private Eventos As Label
        
    Private PlusEvento As Button
    End Sub

    Sub Activity_Create(FirstTime As Boolean)
        
    'Do not forget to load the layout file created with the visual designer. For example:
        Activity.LoadLayout("PrincipalLayout")
        DespliegaGrupos=
    0
        SeccionGrupo=
    0
        CantidadGrupos=
    0
        Seccion=
    0
        LetraTemporal=
    ""
        ContadorCaracter=-
    1
        DosPuntos=
    False
        NombreEvento=
    ""
        FechaEvento=
    ""
        HoraEvento=
    ""
        NombreDocumento=
    ""
        Conferencista=
    ""
        TipoEvento=
    ""
        InicioGrupos=
    0
        PrimeraVezEnGrupos=
    True
        Contenido=
    File.ReadString(File.DirAssets,"eventos.txt")
        
    If Contenido<>"" Then
            EventosPanel.Visible=
    True
            Eventos.Visible=
    False
        
    Do While DosPuntos=False
            ContadorCaracter=ContadorCaracter+
    1
            LetraTemporal=Contenido.SubString(ContadorCaracter)
            
    Select LetraTemporal
                
    Case "-"
                    Seccion=Seccion+
    1
                    
    Log(Seccion)
                   
                
    Case ":"
                    DosPuntos=
    True
                   
                
    Case Else
                    
    Select Seccion
                        
    Case 0
                            NombreEvento=NombreEvento&LetraTemporal
                           
                        
    Case 1
                            FechaEvento=FechaEvento&LetraTemporal
                           
                        
    Case 2
                            HoraEvento=HoraEvento&LetraTemporal
                           
                        
    Case 3
                            TipoEvento=TipoEvento&LetraTemporal
                           
                        
    Case 4
                            NombreDocumento=NombreDocumento&LetraTemporal
                           
                        
    Case 5
                            Conferencista=Conferencista&LetraTemporal
                       
                        
    Case 6
                            
    If PrimeraVezEnGrupos Then
                                InicioGrupos=ContadorCaracter
                                
    Do While PrimeraVezEnGrupos=True
                                    InicioGrupos=InicioGrupos+
    1
                                    LetraTemporal=Contenido.SubString(InicioGrupos)
                                    
    If LetraTemporal=";" Then
                                        CantidadGrupos=CantidadGrupos+
    1
                                    
    Else If LetraTemporal=":" Then
                                        PrimeraVezEnGrupos=
    False
                                    
    End If
                                
    Loop
                                
    Dim Grupos(CantidadGrupos) As String
                                
    Else
                                    
    If LetraTemporal<>";" Then
                                        Grupos(SeccionGrupo)=LetraTemporal
                                    
    Else
                                        SeccionGrupo=SeccionGrupo+
    1
                                    
    End If
                            
    End If
                           
                    
    End Select
                   
            
    End Select
        
    Loop
            DetallesEventos.Text=NombreEvento&
    CRLF&FechaEvento&CRLF&HoraEvento&CRLF&TipoEvento&CRLF&NombreDocumento&CRLF&Conferencista&CRLF
        
    Do While DespliegaGrupos<>CantidadGrupos
            DetallesEventos.Text=Eventos.Text&Grupos(DespliegaGrupos)
            DespliegaGrupos=DespliegaGrupos+
    1
        
    Loop
        
    Else
            Eventos.Visible=
    True
            EventosPanel.Visible=
    False
        
    End If
    End Sub
    Espero que me puedan ayudar;-;
     
  2. JordiCP

    JordiCP Well-Known Member Licensed User

    Cuando aparece un problema de estas características, deberías facilitar el máximo de información posible para que te puedan ayudar.
    En este caso, por ejemplo, deberías poder incluir un fichero de ejemplo para poder reproducirlo, así como el resultado esperado...así tendrás más posibilidades de recibir respuestas.

    Lo que parece erróneo viendo el código es el uso de 'SubString' --> parece que lo utilizas para seleccionar un carácter concreto de la cadena, cuando lo que hace la función es devolver una "subcadena" empezando desde el indice proporcionado. Deberías cambiarlo por:
    Code:
    'LetraTemporal=Contenido.SubString(ContadorCaracter)    '<-- error
    LetraTemporal = Contenido.CharAt(ContadorCaracter) '<-- opcion 1 
    LetraTemporal=Contenido.SubString2(ContadorCaracter,ContadorCaracter+1)    '<-- opción 2

    '...
    '... más adelante se vuelve a utilizar

    'LetraTemporal=Contenido.SubString(InicioGrupos)    '<--- error
    ' ... sustituir también por una de las 2 opciones
    Quizás haya más errores. Yo empezaría modificando lo anterior, y ver cuál es el resultado
     
    rscheel and Daniel Alejandro like this.
  3. Daniel Alejandro

    Daniel Alejandro Member Licensed User

    Gracias, con tu forma ya pude arreglarlo :D
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice