ArrayList - Lector de archivos de texto Ejercicio VB.Net - Curso de Programación Visual Basic

 Ejercicio

ArrayList - Lector de archivos de texto

Objetivo

Entregue aquí su lector básico de archivos de texto.

Este lector de archivos de texto siempre muestra 21 líneas del archivo de texto, y el usuario podría usar la tecla up para mostrar la línea anterior, la tecla down para mostrar la siguiente línea y la tecla ESC para salir.

Sugerencias:
El lector de archivos de texto debe tener 3 métodos:
- ReadFile (Leer el archivo de texto y almacenarlo en la memoria)
- ShowMenu (Borrar la consola y preparar la línea superior y la línea inferior [raw 23] de la consola, cambiando los colores usando Console.BackgroundColor, Console.ForegroundColor, ConsoleColor y Console.SetCursorPosition(column, raw). Una vez preparado el menú, recuerda colocar el cursor en el segundo raw).
- ShowFrom (escribir 21 líneas, considerando la posición de la primera línea a escribir)
La lógica del programa principal debe ser como: ShowMenu, ShowFrom, ReadKey, ShowMenu, ShowFrom, ReadKey....

Código

Imports System
Imports System.IO
Imports System.Collections
Namespace LectorTexto
    Class Program
        Shared lista As ArrayList = New ArrayList()
        Shared fin As Boolean
        Shared lineaDesde As Integer = 0, lineaHasta As Integer = 21

        Private Shared Sub Main(ByVal args As String())
            Console.Write("Introduce nombre archivo: ")
            Dim nombreArchivo As String = Console.ReadLine()
            LeerFichero(nombreArchivo)

            Do
                MostrarMenu()
                EscribirLineas(lineaDesde, lineaHasta)
                LeerTecla()
            Loop While Not fin
        End Sub

        Private Shared Sub LeerTecla()
            Dim cki As ConsoleKeyInfo
            cki = Console.ReadKey()

            If cki.Key = ConsoleKey.Escape Then
                fin = True
            ElseIf cki.Key = ConsoleKey.UpArrow Then

                If lineaDesde > 0 Then
                    lineaDesde -= 1
                    lineaHasta -= 1
                End If
            ElseIf cki.Key = ConsoleKey.DownArrow Then

                If lineaHasta < lista.Count Then
                    lineaDesde += 1
                    lineaHasta += 1
                End If
            ElseIf cki.Key = ConsoleKey.PageUp Then

                If (lineaHasta + 21) < lista.Count Then
                    lineaDesde += 21
                    lineaHasta += 21
                Else
                    lineaDesde += lista.Count - lineaHasta
                    lineaHasta += lista.Count - lineaHasta
                End If
            ElseIf cki.Key = ConsoleKey.PageDown Then

                If (lineaDesde - 21) > 0 Then
                    lineaDesde -= 21
                    lineaHasta -= 21
                Else
                    lineaHasta = lineaDesde + (21 - lineaDesde)
                    lineaDesde = 0
                End If
            End If
        End Sub

        Private Shared Sub EscribirLineas(ByVal desde As Integer, ByVal hasta As Integer)
            For i As Integer = desde To hasta - 1
                Console.WriteLine(lista(i))
            Next
        End Sub

        Private Shared Sub MostrarMenu()
            Console.Clear()
            Console.BackgroundColor = ConsoleColor.Cyan
            Console.ForegroundColor = ConsoleColor.Black
            Console.WriteLine("    ==> Lector .txt --- Version 1.0")
            Console.SetCursorPosition(0, 23)
            Console.BackgroundColor = ConsoleColor.Cyan
            Console.ForegroundColor = ConsoleColor.Black
            Console.WriteLine("Pulse ESC para salir, fecha arriba y abajo para mover")
            Console.SetCursorPosition(0, 1)
            Console.BackgroundColor = ConsoleColor.Black
            Console.ForegroundColor = ConsoleColor.White
        End Sub

        Private Shared Sub LeerFichero(ByVal nombreArchivo As String)
            If Not File.Exists(nombreArchivo) Then
                Console.WriteLine("El fichero de texto no existe")
            Else

                Try
                    Dim archivoTexto As StreamReader = File.OpenText(nombreArchivo)
                    Dim line As String

                    Do
                        line = archivoTexto.ReadLine()
                        If line IsNot Nothing Then lista.Add(line)
                    Loop While line IsNot Nothing

                    archivoTexto.Close()
                Catch e As Exception
                    Console.WriteLine("Error, " & e.Message)
                End Try
            End If
        End Sub
    End Class
End Namespace

Más ejercicios Visual Basic (VB.Net) de Gestión Dinámica de Memoria

 Implementación de una cola usando una matriz
Implementación de una cola...
 Implementar una pila usando una matriz
Implementar una pila...
 Colecciones de colas
Cree una cola de cadenas, utilizando la clase Queue que ya existe en la plataforma DotNet. Una vez creado, muestra todos los elementos almacenados ...
 Notación Polish inversa de pila de cola
Cree un programa que lea desde un archivo de texto una expresión en notación polaca inversa como, por ejemplo: 3 4 6 5 - + * 6 + (Resultado 21) ...
 ArrayList
Cree una lista de cadenas utilizando la clase ArrayList que ya existe en la plataforma DotNet. Una vez creado, muestra todos los elementos almacena...
 ArrayList duplicar un archivo de texto
Cree un programa que lea desde un archivo de texto y lo almacene en otro archivo de texto invirtiendo las líneas. Por lo tanto, un archivo de texto...
 Suma ilimitada
Cree un programa para permitir que el usuario ingrese una cantidad ilimitada de números. Además, pueden ingresar los siguientes comandos: "suma", par...
 Hast Table - Diccionario
Entregue aquí su diccionario usando Hash Table...
 Paréntesis
Implementar una función para comprobar si una secuencia de paréntesis abierto y cerrado está equilibrada, es decir, si cada paréntesis abierto corresp...
 Mezclar y ordenar archivos
Cree un programa para leer el contenido de dos archivos diferentes y mostrarlo mezclado y ordenado alfabéticamente. Por ejemplo, si los archivos conti...
 ArrayList de puntos
Cree una estructura "Point3D", para representar un punto en el espacio 3-D, con coordenadas X, Y y Z. Cree un programa con un menú, en el que el us...
 Buscar en archivo
Cree un programa para leer un archivo de texto y pida al usuario oraciones para buscar en él. Leerá todo el archivo, lo almacenará en un ArrayList,...

Juan A. Ripoll - Tutoriales de Sistemas y Cursos de Programación© 2024 Todos los derechos reservados.  Condiciones legales.