Ir al contenido principal

Visual Basic: Abrir Archivos de Texto


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)

 
En forma genérica una de las formas para tratar archivos de texto en Visual Basic es usando cualquiera de las siguientes funciones:



 
  • 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:


 
FileOpen (numerodearchivo, ruta, modo)

 

Dónde:

 
  • 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:

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:

FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)


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

Comentarios

  1. 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

Publicar un comentario

Entradas populares de este blog

Uso de Parámetros con el control SqlDataSource - Primera entrega

Una de las principales ventajas del control SqlDataSource , radica en la posibilidad de trabajar con parámetros, con este control es posible trabajar con cualquiera de los siguientes parámetros: Parameter ControlParameter CookieParameter FormParameter ProfileParameter QueryStringParameter SessionParameter A su vez, el control SqlDataSource incluye 5 colecciones de parámetros de ASP.NET: SelectParameters , InsertParameters , DeleteParameters , UpDateParameters y FilterParameters . Puede usar estas colecciones de parámetros para asociar un parámetro en particular de ASP.NET con algún comando o filtro en particular del control SqlDataSource. En este post haré mención a parámetros gestionados mediante Parameter y ControlParameter . En publicaciones posteriores me encargaré del resto de parámetros. Trabajaré para la explicación con la base de datos Pubs de SQL Server , si no la tiene debe instalarla, puede hacerlo siguiendo este link: http://www.microsoft.com/downloads/en/details

Estructuras de Control - Parte 2

Estructuras de Control Repetitivas Las computadoras están especialmente diseñadas para ejecutar tareas repetidamente. Las estructuras de control repetitivas son aquellas en las que una sentencia o grupos de sentencias se repiten muchas veces. Una estructura de control que permite la repetición de una serie determinada de sentencias se denomina bucle (lazo o ciclo). El cuerpo del bucle c ontiene las sentencias que se repiten. La acción o acciones que se repiten en un bucle se denomina el cuerpo del bucle, y cada repetición del cuerpo del bucle se denomina iteración. Sentencia Mientras..hacer (while) La estructura repetitiva mientras es aquella en la que el número de iteraciones no se conoce por anticipado y el cuerpo del bucle se repite mientras se cumple una determinada condición. Por esta razón a estos bucles se les denomina bucles co ndicionales. La sintaxis es la siguiente: Cuando la sentencia mientras se ejecuta, el primer p aso es la evaluación de la expresión lóg

Microsoft Access - Entrega 02

Establecer Índices y Claves primarias: Los índices permiten especificar un orden para la búsqueda de registros, su principal tarea es esta, básicamente cualquier campo de una Tabla puede ser un índice, incluso un conjunto de campos pueden ser índices, (los que suelen denominarse INDICES COMPUESTOS). Para definir un índice en un campo de una tabla basta con especificar la propiedad correspondiente, o también utilizar el botón Índice, tal como se muestra en la Imagen:      Por ejemplo, digamos que nos piden crear un índice compuesto denominado FullName que abarca los campos Apellidos y Nombres. Para realizar esa tarea haga click en el botón Índices y luego configure de acuerdo a la imagen:       Clave Principal: La clave primaria permite identificar de manera única a un registro, por teoría de diseño de base de datos, cada Tabla debe tener su correspondiente clave primaria para facilitar tareas de búsqueda y actualización de registros. Para definir una clave primaria en una tabl