En este post veremos como mostrar Texto utilizando un TextBox, la función LineInput y la Clase StreamReader, así como el uso del espacio de nombres My.
Visual Basic expone varias maneras para explorar archivos de texto, como saben los archivos de texto son aquellos archivos que a veces creamos usando el bloc de notas (notepad), o sea texto sin formato que mayormente lleva la extensión .txt, (aunque otros archivos como .ini también lo son)
- FileOpen: Abre un archivo de texto para entrada (Input) o salida (Output)
- LineInput: Lee una línea de entrada desde un archivo de texto
- EOF: Verifica el fin del archivo
- FileClose: Cierra el archivo de texto
De todas estas funciones quizás la más importante sea la función FileOpen, pues es la encargada de abrir un archivo de texto, su modo de uso es muy simple, comencemos por la sintaxis:
Dónde:
Veamos un ejemplo:
Ingrese a Visual Basic 2008 y cree un nuevo proyecto basado en la plantilla Windows Forms
Nombre a su proyecto según sus gustos
Diseñe la siguiente interfaz:
- Numerodearchivo: Representa un entero entre 1 y 255
- Ruta: Es una ruta de acceso completa al archivo.
- Modo: Es una palabra clave que nos permite escoger la forma cómo será usado el archivo,(OpenMode.Input y OpenMode.OutPut)
Acerca de esta sintaxis:
FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)El número de archivo que oscila entre 1 y 255 es un número que permitirá identificar el archivo utilizado dentro de nuestro programa. Por ejemplo, un uso típico de la función FileOpen utilizando además un control OpenFileDialog sería el siguiente:
Aquí: 1 es el número de archivo, OpenFileDialog1.FileName nos otorga la ruta de acceso completa al archivo y OpenMode.Input es el modo de apertura.
Veamos un ejemplo:
Ingrese a Visual Basic 2008 y cree un nuevo proyecto basado en la plantilla Windows Forms
Nombre a su proyecto según sus gustos
Diseñe la siguiente interfaz:
A la etiqueta que lleva el texto “Carga un archivo de texto” renómbrela por “lblNote” y al cuadro de texto renómbrelo a “txtNote” además establezca la propiedad Multiline=True y ScrollBars=Vertical. Será necesario construir un pequeño menú como sigue, (debe agregar el control MenuStrip)
La opción cerrar debe tener la propiedad “Enabled” establecida en False. Además de esta interfaz es necesario añadir el componente OpenFileDialog, agréguelo de tal forma que su cinta de componentes se vea como a continuación:
Ahora podemos escribir el código, haga doble click en la opción abrir de nuestro menú para entrar al evento click correspondiente, luego escriba el siguiente código, (puede omitir los comentarios):
Ahora damos doble click en la opción Cerrar de nuestro menú y en el evento correspondiente escribimos el siguiente código:
Puede colocar la instrucción “End” en el evento click de la opción salir y con eso quedaría listo. Guarde su proyecto y proceda a compilar para posteriormente ejecutar y observar los resultados. Puede probar abriendo un archivo de texto cualquiera o uno que haya digitado Ud. mismo
Alcances adicionales: La Clase StreamReader
Este mismo ejercicio de apertura del archivo de texto podemos solucionarla más rápidamente usando la librería de .Net Framework denominada “StreamReader”, para este fin necesitamos habilitar el correspondiente espacio de nombres:
Imports System.IO
Normalmente esta instrucción debe colocarse por encima de la línea “Public Class Form1”. Vea el siguiente segmento de código:
Dim Cadena As StreamReader
Cadena = New StreamReader("C:\miarchivodetexto.txt")
TextBox1.Text = Cadena.ReadToEnd
Cadena.Close()
TextBox1.Select(0, 0)
Como puede ver es mucho más simple leer un archivo de texto mediante este método. Puede adaptare este ejemplo al código anterior y observar los resultados
Una alternativa adicional: El espacio de Nombres “My”
Una alternativa adicional para la apertura de archivos de texto es a través del uso del espacio de nombres (namespace) denominado My. Este espacio de nombres proporciona una forma fácil de acceder a tareas comunes del sistema operativo o de su aplicación activa.
Observe el siguiente código:
Dim CadenaJunta As String = ""
OpenFileDialog1.Filter = "Archivos de Textos (*.txt) *.txt"
OpenFileDialog1.ShowDialog() ‘muestra el cuadro de diálogo Abrir
If OpenFileDialog1.FileName <> "" Then
CadenaJunta = My.Computer.FileSystem.ReadAllText (OpenFileDialog1.FileName)
txtNota.Text = CadenaJunta ‘muestra el archivo
End If
Como ven es bastante simple. Espero comentarios o dudas. Al igual que en el caso anterior adapte este código al ejemplo que vimos inicialmente.
Este artículo se basa en el libro Visual Basic 2008 Step by Step
excelente solución, ahora una consulta: Tengo un txt en la cual no esta delimitado por espacios sino de forma seguida (Ejemplo: Fecha Nombre de Empresa Estatus del Comercio ---> 21052014InversionesCarlosAfiliado), como haría para que pueda darle a los campos del txt una separación de las cabeceras del archivo .txt
ResponderEliminar