none
Dividir texto e imprimirlo en datagridview RRS feed

  • Pregunta

  • Hola a todos

    Soy nuevo en .net y estoy haciendo una aplicación en visual studio 2010 que divide las lineas de texto de un archivo .txt con la instrucción "mid" (lo delimito así ya que las lineas de texto no traen comas o delimitadores), para después poder mostrarlo en un datagridview y enviarlo a una base de datos.

    El problema esta en el momento de mostrar los datos en el datagridview, ya que al dar click en el botón que realiza dicho procedimiento, solamente me muestra la ultima fila del archivo .txt en el datagridview

    Este es el código:

    Module CargaSIRI
    
        Public x2 As Integer = 0
        Public tipEmp, curp, rfc, numSS, apePaterno, apeMaterno, nombres, claveRamo, claveSubramo, fechaNac, claveEstadoCurp,
            sx, estadoCivil, direccion, colonia, delegacion, codigoPostal, claveEstado, claveTipoEmpleado, claveEmpleado, claveRamo1,
            claveSubramo1, fechaIngreso, fechaIngresoM, claveSubramo2, diasTrab, diasImp,
            diasAus, amort, cesantvejez, fondoViv, ahorroSolid, importeAhorroSolid As String
    
    
        Sub importarTXT(ByVal ofd As OpenFileDialog, ByVal tabla As RichTextBox, ByVal dgv As DataGridView)
    
            Dim TodoTexto As String = ""
            Dim LineaDeTexto As String = ""
            Dim x As Integer = 1
    
    
            ofd.Filter = "Formato de archivo (*.TXT)|*.TXT"
            ofd.ShowDialog()
            If ofd.FileName <> "" Then
                Try
                    FileOpen(1, ofd.FileName, OpenMode.Input)
    
                    Do Until EOF(1)
                        LineaDeTexto = LineInput(1)
                        If x >= 0 Or x <= 400 Then
                            TodoTexto = TodoTexto & LineaDeTexto & vbCrLf
                        End If
                        x = x + 1
    
                        tipEmp = Mid(LineaDeTexto, 1, 1)
                        rfc = Mid(LineaDeTexto, 2, 18)
                        curp = Mid(LineaDeTexto, 20, 13)
                        numSS = Mid(LineaDeTexto, 33, 11)
                        apePaterno = Mid(LineaDeTexto, 44, 40)
                        apeMaterno = Mid(LineaDeTexto, 84, 40)
                        nombres = Mid(LineaDeTexto, 124, 40)
                        claveRamo = Mid(LineaDeTexto, 164, 5)
                        claveSubramo = Mid(LineaDeTexto, 169, 20)
                        fechaNac = Mid(LineaDeTexto, 189, 8)
                        claveEstadoCurp = Mid(LineaDeTexto, 197, 2)
                        sx = Mid(LineaDeTexto, 199, 1)
                        estadoCivil = Mid(LineaDeTexto, 200, 1)
                        direccion = Mid(LineaDeTexto, 201, 60)
                        colonia = Mid(LineaDeTexto, 261, 30)
                        delegacion = Mid(LineaDeTexto, 291, 30)
                        codigoPostal = Mid(LineaDeTexto, 321, 5)
                        claveEstado = Mid(LineaDeTexto, 326, 2)
                        claveTipoEmpleado = Mid(LineaDeTexto, 328, 1)
                        claveEmpleado = Mid(LineaDeTexto, 329, 10)
                        claveRamo1 = Mid(LineaDeTexto, 339, 3)
                        claveSubramo1 = Mid(LineaDeTexto, 342, 1)
                        fechaIngreso = Mid(LineaDeTexto, 343, 8)
                        fechaIngresoM = Mid(LineaDeTexto, 351, 8)
                        claveSubramo2 = Mid(LineaDeTexto, 359, 1)
                        diasTrab = Mid(LineaDeTexto, 360, 3)
                        diasImp = Mid(LineaDeTexto, 363, 3)
                        diasAus = Mid(LineaDeTexto, 366, 3)
                        amort = Mid(LineaDeTexto, 369, 7)
                        cesantvejez = Mid(LineaDeTexto, 376, 7)
                        fondoViv = Mid(LineaDeTexto, 383, 7)
                        ahorroSolid = Mid(LineaDeTexto, 390, 1)
                        importeAhorroSolid = Mid(LineaDeTexto, 391, 7)
    
    
    
                    Loop
    
    
    
                    VentanaSiri.DataGridView1.Rows(x2).Cells(0).Value = tipEmp
                    VentanaSiri.DataGridView1.Rows(x2).Cells(2).Value = rfc
                    VentanaSiri.DataGridView1.Rows(x2).Cells(1).Value = curp
                    VentanaSiri.DataGridView1.Rows(x2).Cells(3).Value = numSS
                    VentanaSiri.DataGridView1.Rows(x2).Cells(4).Value = apePaterno
                    VentanaSiri.DataGridView1.Rows(x2).Cells(5).Value = apeMaterno
                    VentanaSiri.DataGridView1.Rows(x2).Cells(6).Value = nombres
                    VentanaSiri.DataGridView1.Rows(x2).Cells(7).Value = claveRamo
                    VentanaSiri.DataGridView1.Rows(x2).Cells(8).Value = claveSubramo
                    VentanaSiri.DataGridView1.Rows(x2).Cells(9).Value = fechaNac
                    VentanaSiri.DataGridView1.Rows(x2).Cells(10).Value = claveEstadoCurp
                    VentanaSiri.DataGridView1.Rows(x2).Cells(11).Value = sx
                    VentanaSiri.DataGridView1.Rows(x2).Cells(12).Value = estadoCivil
                    VentanaSiri.DataGridView1.Rows(x2).Cells(13).Value = direccion
                    VentanaSiri.DataGridView1.Rows(x2).Cells(14).Value = colonia
                    VentanaSiri.DataGridView1.Rows(x2).Cells(15).Value = delegacion
                    VentanaSiri.DataGridView1.Rows(x2).Cells(16).Value = codigoPostal
                    VentanaSiri.DataGridView1.Rows(x2).Cells(17).Value = claveEstado
                    VentanaSiri.DataGridView1.Rows(x2).Cells(18).Value = claveTipoEmpleado
                    VentanaSiri.DataGridView1.Rows(x2).Cells(19).Value = claveEmpleado
                    VentanaSiri.DataGridView1.Rows(x2).Cells(20).Value = claveRamo1
                    VentanaSiri.DataGridView1.Rows(x2).Cells(21).Value = claveSubramo1
                    VentanaSiri.DataGridView1.Rows(x2).Cells(22).Value = fechaIngreso
                    VentanaSiri.DataGridView1.Rows(x2).Cells(23).Value = fechaIngresoM
                    VentanaSiri.DataGridView1.Rows(x2).Cells(24).Value = claveSubramo2
                    VentanaSiri.DataGridView1.Rows(x2).Cells(25).Value = diasTrab
                    VentanaSiri.DataGridView1.Rows(x2).Cells(26).Value = diasImp
                    VentanaSiri.DataGridView1.Rows(x2).Cells(27).Value = diasAus
                    VentanaSiri.DataGridView1.Rows(x2).Cells(28).Value = amort
                    VentanaSiri.DataGridView1.Rows(x2).Cells(29).Value = cesantvejez
                    VentanaSiri.DataGridView1.Rows(x2).Cells(30).Value = fondoViv
                    VentanaSiri.DataGridView1.Rows(x2).Cells(31).Value = ahorroSolid
                    VentanaSiri.DataGridView1.Rows(x2).Cells(32).Value = importeAhorroSolid
    
                    x2 = x2 + 1
    
                    tabla.Text = TodoTexto
                    tabla.Enabled = True
    
    
    
    
                Catch
                    MsgBox("No ha seleccionado ningún archivo")
                Finally
                    FileClose(1)
                End Try
            End If
    
         
    
    
    
        End Sub
    
    
       
    
        Function SaltosDeLinea(ByVal rtb As RichTextBox)
    
            Return rtb.Lines.Count
        End Function
    
    
    
    End Module
    

    Utilizo X2 en el index de los Rows, para que se incremente. También se que lo lógico sería que estas instrucciones:

    VentanaSiri.DataGridView1.Rows(x2).Cells(31).Value = ahorroSolid

    deberían ir dentro del do, pero ya lo he intentado y al ejecutar la aplicación me manda al error del catch y ni si quiera me muestra el archivo.txt.

    De antemano agradezco la ayuda que puedan brindarme.

    Saludos,

    

    • Cambiado Enrique M. Montejo viernes, 3 de octubre de 2014 15:30 Pregunta relacionada con controles de Windows Forms.
    jueves, 2 de octubre de 2014 2:13