como leer un archivo de texto (txt) en vb.net

By | 2010/09/20

Nos hemos topado muchas veces con la necesidad de leer un archivo de texto (txt) por lo que resumo rápidamente como hacerlo linea por linea.

Dim freader As New StreamReader(“ruta del archivo a leer”)
Dim contenido As String
Dim lineas As New ArrayList()
Do
contenido = freader.ReadLine()
If Not contenido Is Nothing Then
‘si quiero leer solo las líneas que no estén en blanco incluyo esta condicion
If contenido.Length <> 0 Then
lineas.Add(contenido)
End If
End If
Loop Until contenido Is Nothing
freader.Close()

Recuerden que deben incluir al inicio

Imports System.IO

5 thoughts on “como leer un archivo de texto (txt) en vb.net

  1. BasFKlitzZ

    Me re sirvió, le hice un pequeño cambio, necesitaba mostrar en 2 TextBox 2 lineas, en el TextBox1 la linea 1 y en el 2 la 2. Ya que se que solo voy a utilizar 2 lineas y es imposible crear más realicé lo siguiente:

    Dim lineas As New ArrayList()
    Dim freader As New StreamReader(“Directorios.txt”)
    Dim contenido As String

    contenido = freader.ReadLine() ‘leo primera linea
    Me.TextBox1.Text = contenido ‘pego primera linea
    contenido = freader.ReadLine() ‘leo segunda linea
    Me.TextBox2.Text = contenido ‘pego segunda linea

    freader.Close()

    Muchas Gracias!

    BasFKlitzZ

  2. Hugo

    soy nuevo por aqui y estoy tratando de leer un archivo plano que tiene 4 columnas, donde cada dato este entre comillas dobles.
    Yo lo estoy pudiendo leer y cargandola en una grilla, pero esta se muestra con todo y comillas dobles y quisiera que se muestre sin comillas dobles. Este es el codigo que estoy usando:

    lee = New StreamReader(“D:\Ruc.txt”)
    lista.RemoveRange(0, lista.Count)
    Do While lee.Peek() >= 0
    linea = lee.ReadLine()

    Dim v() As String = linea.Split(“,”)<– aqui indico que caracter limita cada columna.

    Gracias de antemano.

  3. EMMANUELLE

    OYE DISCULPA ME PODRIAS AYUDAR CON MI TAREA ? O_O PLEASE MIRA!!

    TENGO UN TEXTO QUE QUIERO PROCESAR CON .NET PARA LEER LINEA POR LINEA Y TOMAR DATOS DE ENCABEZADO EL CASO ESQUE EN EL CUERPO DEL .TXT VIENEN VARIOS GRUPOS DE LINEAS CON EL ENCABEZADO Y ACONTINUACION LAS SIGUIENTES LINEAS CON LOS DATOS QUE ME INTERESAN OBTENER

    [CONCEPTO]
    CANTIDAD | 10
    DESCRIPCION| DIEZ PIEZAS D PAN
    UNIDAD|PIEZA
    IMPORTE|10.00

    [CONCEPTO]
    CANTIDAD | 3
    DESCRIPCION| TRES PIEZAS D PAN
    UNIDAD|PIEZA
    IMPORTE|3.00

    YA PUSE EL PROGRAMA A LEER LINEA POR LINEA Y SEPARAR POR EL DELIMITADOR “|” SOLO ME FALTA CAZAR CADA VEZ QUE APARESCA EL ENCABEZADO CONCEPTO TOMAR ESAS LINEAS QUE VIENEN DEBAJO ME PODRIAS AYUDAR UN POCO ?? MI CODIGO LUCE ASIII

    ——————————————————————-

    Imports System.IO
    Imports System
    Imports System.Text
    Imports System.Text.RegularExpressions
    Public Class Form1
    Dim Ruta_Archivotxt As String = Nothing
    Dim ArchivotxtTmp As String = Nothing
    Dim utf7 As New UTF8Encoding()
    Dim Parametros() As String = Nothing
    ‘VARIABLES PARA LEER LINEAS
    Dim Lineas As String = Nothing
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim Archivos(), NombreArchivo As String : Dim InfoArchivo As FileInfo
    Dim ArchivostxtTmp As Long
    Dim Linea_Datos As Long = 1
    Archivos = Directory.GetFiles(“C:\Users\EGARCIA\Documents\documentos\Tehuantepec\”)
    For Each NombreArchivo In Archivos
    InfoArchivo = New FileInfo(NombreArchivo)
    ‘NombreArchivo = InfoArchivo.Name
    ArchivostxtTmp = Archivos.Length ‘cuenta el numero de caracteres de la cadena
    Dim objReader As New StreamReader(NombreArchivo, utf7) ‘incia el lector

    Lineas = Nothing
    Do
    Lineas = objReader.ReadLine
    Parametros = Nothing
    Parametros = Split(Trim(Lineas), “|”)

    If Not Lineas Is Nothing Then

    If True Then
    ‘AQUI LLENAS TUS VARIABLES RECEPTOR ENCABEZADO
    If Linea_Datos = 5 Then ENC_SERIE = Parametros(1)
    If Linea_Datos = 6 Then ENC_FOLIO = Val(Parametros(1)) ‘encerrar dentro de val((1)) para tomar datos numericos solamente

    If Linea_Datos = 42 Then ENC_RFC = Parametros(1)
    If Linea_Datos = 43 Then ENC_RAZON_SOCIAL = Parametros(1)
    If Linea_Datos = 44 Then ENC_CALLE = Parametros(1)
    If Linea_Datos = 45 Then ENC_NUMEXT = Parametros(1)
    If Linea_Datos = 46 Then ENC_NUMINT = Parametros(1)
    If Linea_Datos = 47 Then ENC_COLONIA = Parametros(1)
    If Linea_Datos = 48 Then ENC_LOCALIDAD = Parametros(1)
    If Linea_Datos = 50 Then ENC_MUNICIPIO = Parametros(1)
    If Linea_Datos = 51 Then ENC_ESTADO = Parametros(1)
    If Linea_Datos = 52 Then ENC_PAIS = Parametros(1)
    If Linea_Datos = 53 Then ENC_CP = Parametros(1)
    If Linea_Datos = 54 Then ENC_CODIGO_CLIENTE = Parametros(1)
    If Linea_Datos = 55 Then ENC_EMAIL = Parametros(1)
    ‘FIN DEL ENCABEZADO RECEPTOR
    If Linea_Datos = 90 Then MOV_CANTIDAD = Parametros(1)
    If Linea_Datos = 91 Then MOV_UNIDAD_MEDIDA = Parametros(1)
    If Linea_Datos = 93 Then MOV_DESCRIPCION = Parametros(1)
    If Linea_Datos = 94 Then MOV_PUNITARIO = Parametros(1)
    If Linea_Datos = 95 Then mov_importe = Parametros(1)
    If Linea_Datos = 95 Then mov_importe = Parametros(1)
    End If
    ‘If Linea_Datos = “[Datos de Conceptos]” Then
    End If

    Linea_Datos += 1
    If True Then
    End If
    Loop
    ‘Loop Until Linea_Datos = 137

    objReader.Close()
    Next

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    End Sub
    End Class

  4. Dunderio

    Lo mas fácil es que una vez que cargas el archivo a la cadena le des un split usando como marca [CONCEPTO]
    Esto te va a generar un arreglo con todos los datos, luego a cada arreglo le das un split por salto de linea y vas a tener otro arreglo con cada uno de los detalles y FINALMENTE le das un split por | y lees cada valor.

Leave a Reply

Your email address will not be published. Required fields are marked *

This blog is kept spam free by WP-SpamFree.