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

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

Microsoft Access - Entrega 01

Bienvenidos al curso Online de Microsoft Access 2007, durante el desarrollo del curso iré posteando un sencillo tutorial para aprender a utilizar esta herramienta de gestión de bases de datos, de tal manera que al finalizar todas las entregas Ud. sepa cómo iniciarse en el diseño de Bases de datos así como en la construcción de versátiles aplicaciones. Qué es una base de datos? Una base de datos (en ocasiones abreviada B.D.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Fuente: Wikipedia Qué es un Programa Gest...

II Semestre - JAVA: EJERCICIOS SOBRE JERARQUIAS DE HERENCIA

Debate: Discutir las formas en que la herencia promueve la reutilización de software, se ahorra tiempo durante el desarrollo del programa y ayuda a prevenir errores. Ejercicio: Diseñar una jerarquía de herencia para los estudiantes en una universidad. Usar la clase Student como la superclase de la jerarquía, a continuación, extender Student con las clases de UndergraduateStudent y GraduateStudent . Continúe extendiendo la jerarquía tando como sea posible(como muchos niveles). Por ejemplo, Freshman , Sophomore , Junior y Senior podría heredar de UndergraduateStudent , asi mismo  DoctoralStudent y MastersStudent podría ser subclases de GraduateStudent . Despues de diseñar la jerarquía debatir las relaciones que existen entre las clases. [Nota: No es necesario escribir ningún código para este ejercicio.] Debate Algunos programadores prefieren no utilizar el acceso protegido, porque creen que rompe la encapsulación de la superclase. Discutir los méritos relativos de acceso pr...