Fecha y hora actual: Sab 19 May, 2012 20:10 pm
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Abrir archivo txt desde VB(2010) y luego recorrerlo

Responder al Tema

Índice del Foro > Visual Basic .NET > Abrir archivo txt desde VB(2010) y luego recorrerlo

Autor Mensaje
Papito



Registrado: 01 Ago 2011
Mensajes: 6

Mensaje Publicado: Lun 01 Ago, 2011 15:07 pm

Título del mensaje: Abrir archivo txt desde VB(2010) y luego recorrerlo

Responder citando

Hola migos, hoy vengo con una duda tremenda y quisiera que me ayudaran :
Resulta que necestio abrir un archivo txt desde visual y luego recorrerlo linea por linea a efecto de extraer solo la informacion que necesito.

la forma de mi txt es:

p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|
p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|
p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|
p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|
p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|

por ejemplo yo necesito extraer solo los datos de las columnas 2 y 3, por favor alguien que me ayude, pero super claro porfa porque soy un novato en VB ah......por cierto esto es en VB 2010
de antes les agradezco mucho.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2750
Ubicación: Valencia - España

Mensaje Publicado: Lun 01 Ago, 2011 19:00 pm

Título del mensaje: Re: Abrir archivo txt desde VB(2010) y luego recorrerlo

Responder citando

Hola Papito, tengo que tener un día tonto por que no es normal que conteste a un primer post por estas razones:

  1. Ni siquiera has dedicado 1min para presentarte.
  2. No has intentado hacerlo tu mismo y no hay código...
  3. Encima pides que lo expliquemos claro, para no perderte


Pero aún así, te he hecho lo que pides...

Código:
        Dim TodoTexto As String = "", LineaDeTexto As String = ""
        Dim x As Integer = 1

        OpenFileDialog1.Filter = "Formato de archivo (*.TXT)|*.TXT" 'Formatos permitidos en objeto
        OpenFileDialog1.ShowDialog() 'abre el cuadro de diálogo Abrir
        If OpenFileDialog1.FileName <> "" Then
            Try 'abre el archivo y detecta cualesquiera errores mediante un controlador
                FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)
                Do Until EOF(1) 'lee las líneas contenidas en el archivo
                    LineaDeTexto = LineInput(1) 'Lee la línea entera
                    If x = 2 Or x = 3 Then  'Como no has facilitado patrones de la línea 2 y 3 lo pongo a pelo :-)
                        'agrega cada línea a la variable TodoTexto
                        TodoTexto = TodoTexto & LineaDeTexto & vbCrLf
                    End If
                    x = x + 1   'Incrementa la variable
                Loop
                TextBox1.Text = TodoTexto 'abre el archivo
                TextBox1.Enabled = True 'permite usar el cursor de texto
            Catch
                MsgBox("No ha seleccionado ningún archivo") 'Si no seleccionas archivo
            Finally
                FileClose(1) 'cierra el archivo
            End Try
        End If



Espero que te sirva.
Bienvenido a esta comunidad Ok


www.lospillaos.es
Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Papito



Registrado: 01 Ago 2011
Mensajes: 6

Mensaje Publicado: Mar 02 Ago, 2011 01:44 am

Título del mensaje: Re: Abrir archivo txt desde VB(2010) y luego recorrerlo

Responder citando

Gracias hermano y disculpa por no haberme presentado, talves y es la desesperacion por no lograr hacer el ciclo que quiero,..
pues el codigo que posteaste esta bien

talves y fue que no me dia a enterder pero lo que quiero es extraer todas las columnas 2 y tres y en el ejemplo que tu hiciste solo me recorre las la primera fila.....

si pudieras considerar eso, porfavor!

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2750
Ubicación: Valencia - España

Mensaje Publicado: Mar 02 Ago, 2011 09:07 am

Título del mensaje: Re: Abrir archivo txt desde VB(2010) y luego recorrerlo

Responder citando

Ahora el que no lo entiende soy yo Ojos Ojos Ojos

Te he dejado la base, ahora te toca a ti continuarla.
Sigue tu y donde te atasques nos muestras el código.


Saludos.


www.lospillaos.es
Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Papito



Registrado: 01 Ago 2011
Mensajes: 6

Mensaje Publicado: Mar 02 Ago, 2011 19:31 pm

Título del mensaje: Re: Abrir archivo txt desde VB(2010) y luego recorrerlo

Responder citando

Hermano tengo esto mira , pero no me funciona....
Loe he intentado creeme pero me da error..

OpenFileDialog1.ShowDialog()
Dim Archivo, cadena As String
Archivo = OpenFileDialog1.FileName
Dim enlace As System.IO.StreamReader
Dim Contenido As String
enlace = New StreamReader("" & Archivo & "")
While enlace.Read
'Contenido = enlace.ReadToEnd()
cadena = Mid(Str(enlace), 14, 24)
MsgBox(cadena)
'TextBox1.Text = Contenido
enlace.Close()
End While

Volver arriba
Ver perfil del usuario Enviar mensaje privado
B-Yo
Moderador Global


Registrado: 21 May 2010
Mensajes: 247

Mensaje Publicado: Jue 04 Ago, 2011 17:48 pm

Título del mensaje: Re: Abrir archivo txt desde VB(2010) y luego recorrerlo

Responder citando

Con vuestro permiso... voy a meter baza....

Papito, se ve a la legua que no tienes idea de programación... No te lo tomes a mal, pero sois muchísimos los que vais así. Las casas no se empiezan por el tejado, realiza un curso que comience desde cero y vaya subiendo de nivel poco a poco.

Luego, si estáis programando en .Net, olvidaos de VB6 y si aún programáis en VB6, pasaos a .Net, que ya es horica.. Risa Risa Risa

Por ultimo:
papito escribió:
por cierto esto es en VB 2010


Esto no es un error tuyo, pero quiero hacer una aclaración ya que veo que a mucha gente no le queda muy claro y relacionan mal los conceptos. Yo realmente, prohibiria eso de decir VB XXXX, C# XXXX, ect.

En realidad no existe VB 2010, Queee! Comor????Ojos Ojos Ojos

Pues eso, yo puedo estar usando Visual Studio 2010 y escoger VB como el lenguaje en el que quiero codificar... Pero aún más importante que eso es, para que versión del .Net Framework voy a desarrollar mi código. Así que en resumen cuando se tienen dudas y se pregunta es más correcto (y más fácil que obtengamos una respuesta adecuada) especificandolo por ejemplo así:

Ejemplo escribió:
Estoy desarrollando un aplicación para .Net Framework 4.0 con VB y VS 2010 y tengo el siguiente problema....


Esto es porque, que use Visual Studio 2010 no implica que no este desarrollando una aplicación para que ruede bajo el .Net Framework 2.0, con lo cual si te muestro un código con alguna nueva caracteristica que ha sido implementada en una versión posterior... Calvo

Así que siguiendo la filosofia de .Net lo que necesitas es investigar sobre la clase String y sus métodos:

http://msdn.microsoft.com/es-es/library/system.string.aspx

P.D. Ahí si le das a otras versiones no vas a ver nada de C#XXXX o VB XXXX, lo asigna según versión de Framework.... Guiño

Y bueno viendo el formateo de tus datos:

papito escribió:

la forma de mi txt es:

p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|
p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|
p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|
p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|
p|999999|xxxxxxx|99999|xxxxxx|9-98|xxxxx|


Ya que es tienes un carácter separador | , yo usaría el método Split

http://msdn.microsoft.com/es-es/library/b873y76a.aspx


Código:

        Dim DGBox As New OpenFileDialog
        DGBox.Filter = "Archivos de texto plano (.txt)|*.txt"
        DGBox.Multiselect = False
        DGBox.ShowDialog()
        If DGBox.FileName.Length > 0 Then
            Using Archivo As New System.IO.StreamReader(DGBox.FileName)
                Dim Columna() As String
                Dim Linea As Integer = 0
                While Not Archivo.EndOfStream
                    Columna = Archivo.ReadLine.Split("|")
                    Linea += 1

                    TextBox1.Text &= String.Format("Linea {2}{0}{1}{0}Valor Columna 2:{3}{0}Valor Columna 3:{4}{0}{1}{0}", _
                                      Chr(13) + Chr(10), "----------", Linea, Columna(1), Columna(2))
                End While
            End Using
        End If


Resultado escribió:

Linea 1
----------
Valor Columna 2:999999
Valor Columna 3:xxxxxxx
----------
Linea 2
----------
Valor Columna 2:999999
Valor Columna 3:xxxxxxx
----------
Linea 3
----------
Valor Columna 2:999999
Valor Columna 3:xxxxxxx
----------
Linea 4
----------
Valor Columna 2:999999
Valor Columna 3:xxxxxxx
----------
Linea 5
----------
Valor Columna 2:999999
Valor Columna 3:xxxxxxx
----------


papito escribió:
cadena = Mid(Str(enlace), 14, 24)


En caso de que lo quieras hacer por posición en .Net Ya NO deben usarse ni el Left, ni el Rigth, ni Mid... Basta con hacer un buen uso del método Substring de la clase String:

http://msdn.microsoft.com/es-es/library/aka44szs.aspx

Un Saludo, Gorro


It´s time to fly http://www.youtube.com/watch?v=Vr9BTyug4FA

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Hola, Hola, Hola... desde BCN una principiante ...

Skaidra Preséntate a la comunidad 3 Jue 17 May, 2012 16:10 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

leer archivo .dat

laephy C, C#, Visual C++ 0 Lun 14 May, 2012 20:34 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ayuda programa archivo supermercado

Logitech Z4 C, C#, Visual C++ 2 Sab 05 May, 2012 00:40 am Ver último mensaje
El foro no contiene ningún mensaje nuevo

biblioteca estatica de funciones, archivo.a

sesiopower C, C#, Visual C++ 0 Lun 09 Abr, 2012 14:50 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Inicio de secion de correo desde asp.net

Papito ASP, ASP.NET 1 Mie 28 Mar, 2012 21:35 pm Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,