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