Invertir un archivo de texto Aprende programación con ejercicios C# Sharp

Lección:

Administración de Archivos


Ejercicio:

Invertir un archivo de texto 50


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:

using System;
using System.IO;
namespace InvertText
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Enter name file: ");
            string fileName = Console.ReadLine();

            if (File.Exists(fileName))
            {
                StreamReader myfileRd = File.OpenText(fileName);
                string line;
                int countLines = 0;

                // Count lines of file
                do
                {
                    line = myfileRd.ReadLine();
                    if (line != null)
                        countLines++;
                }
                while (line != null);
                myfileRd.Close();

                // Write of array of lines
                string[] lines = new string[countLines];
                int countLine = 0;
                myfileRd = File.OpenText(fileName);
                line = "";
                do
                {
                    line = myfileRd.ReadLine();
                    if (line != null)
                    {
                        lines[countLine] = line;
                        countLine++;
                    }
                }
                while (line != null);
                myfileRd.Close();

                // Write of file
                StreamWriter myfileWr = File.CreateText(fileName + ".tnv");

                for (int i = lines.Length - 1; i > 0; i--)
                    myfileWr.WriteLine(lines[i]);

                myfileWr.Close();

            }
            else
                Console.WriteLine("The file no exists.");
        }
    }
}