Autor Tema: Manejo de *.Txt  (Leído 2424 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado djim

  • PIC12
  • **
  • Mensajes: 75
Manejo de *.Txt
« en: 17 de Noviembre de 2013, 15:38:54 »
Buenas como les va? Estoy intentando manejar un *.txt que tiene la siguiente forma:

#id #codigo
1 6588123
2 9854358
3 9652147
4 9763564
5 2637853
6 3213212
7 5848116
8 1567912
9 5361142

**** El código que encontré es el siguiente, el problema es que funciona bien solo hasta "9", si le pido que muestre la fila "10" muestra el textbox vació. Como podria solucionar esto? Me gustaria luego hacer un *.txt con una "id" hasta 999 y luego el dato si es posible. Desde ya muchas gracias!

#id #codigo
100 6588123
200 9854358
300 9652147
400 9763564
500 2637853
600 3213212
700 5848116
800 1567912
999 5361142


        Dim leer As New IO.StreamReader("D:\Prueba.Txt", True)
        Dim cadena As String
        Dim id As Integer = 1
        Do
            cadena = leer.ReadLine()
            If cadena <> String.Empty Then
                If IsNumeric(cadena(0)) Then
                    If cadena(0).ToString() = id.ToString() Then
                        TextBox1.Text = cadena
                    End If
                End If
            End If
        Loop Until cadena Is Nothing
        leer.Close()


Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Manejo de *.Txt
« Respuesta #1 en: 17 de Noviembre de 2013, 18:37:03 »
Hola. Vas a tener que separar cada línea a partir del espacio y luego recién ahi comparar lo que está a la izquierda (ID) de lo que está a la derecha (código).

Algo así como (no he testeado el código)

Dim leer As New IO.StreamReader("D:\Prueba.Txt", True)
        Dim cadena As String()
        Dim id As Integer = 1
        Do
            cadena = leer.ReadLine().Split(New Char() {" "c})
            If cadena.Length > 0 Then
                If IsNumeric(cadena(0)) Then
                    If Convert.toInt32(cadena(0)) = id Then
                        TextBox1.Text = "ID: " & cadena(0) & " Código: " & cadena(1)
                    End If
                End If
            End If
        Loop Until cadena Is Nothing
        leer.Close()
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado djim

  • PIC12
  • **
  • Mensajes: 75
Re: Manejo de *.Txt
« Respuesta #2 en: 24 de Noviembre de 2013, 16:46:40 »
Muchas gracias BrunoF por responder, estuve con muchos contratiempos, recien me puse a ver el codigo pero no puedo lograr hacerlo funcionar. Por ahora lo que hice fue leer la cadena lineal con todos los datos y separarlos por un ";". Habra alguna forma de leer la primera linea y luego hacer un salto de linea para leer el siguiente dato? Me refiero algo asi como &Vbnewline& pero un salto de linea. Desde ya muchas gracias