Invertir un archivo de texto Curso de Programación Visual Basic

Lección:

Administración de Archivos


Ejercicio:

Invertir un archivo de texto 11


Objetivo:

Crear un programa para "invertir" el contenido de un archivo de texto: crear un archivo con el mismo nombre que termine en ".tnv" y que contenga las mismas líneas que el archivo original pero en orden inverso (la primera línea será la última, la segunda será la penúltima, y así sucesivamente, hasta la última línea del archivo original, que debe aparecer en la primera posición del archivo resultante).

Sugerencia: la forma más fácil, utilizando solo las estructuras de programación que conocemos hasta ahora, es leer los archivos de origen dos veces: la primera vez para contar la cantidad de líneas en el archivo y la segunda vez para almacenarlas en una matriz.


Código:

Imports System
Imports System.IO
Namespace InvertText
    Class Program
        Private Shared Sub Main(ByVal args As String())
            Console.Write("Enter name file: ")
            Dim fileName As String = Console.ReadLine()

            If File.Exists(fileName) Then
                Dim myfileRd As StreamReader = File.OpenText(fileName)
                Dim line As String
                Dim countLines As Integer = 0

                Do
                    line = myfileRd.ReadLine()
                    If line IsNot Nothing Then countLines += 1
                Loop While line IsNot Nothing

                myfileRd.Close()
                Dim lines As String() = New String(countLines - 1) {}
                Dim countLine As Integer = 0
                myfileRd = File.OpenText(fileName)
                line = ""

                Do
                    line = myfileRd.ReadLine()

                    If line IsNot Nothing Then
                        lines(countLine) = line
                        countLine += 1
                    End If
                Loop While line IsNot Nothing

                myfileRd.Close()
                Dim myfileWr As StreamWriter = File.CreateText(fileName & ".tnv")

                For i As Integer = lines.Length - 1 To 0 + 1
                    myfileWr.WriteLine(lines(i))
                Next

                myfileWr.Close()
            Else
                Console.WriteLine("The file no exists.")
            End If
        End Sub
    End Class
End Namespace