11.06 - ArrayList duplicate a text file

Objetive

Create a program that reads from a text file and stores to another text file inverting the lines.

So, an input text file like:

ayer el Madrid
le ganĂ³
al Barcelona

will be stored in an output text file like:

al Barcelona
le ganĂ³
ayer el Madrid


Solution

namespace TextFileInvert
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Introduce el nombre del fichero: ");
            string nombreArchivo = Console.ReadLine();
            
            if (!File.Exists(nombreArchivo) )
            {
                Console.Write("El archivo no existe!");
                return;
            }
            try 
            { 
                StreamReader miArchivo;
                miArchivo = File.OpenText(nombreArchivo);
                string line;

                ArrayList miLista = new ArrayList();

                do
                {
                    line = miArchivo.ReadLine();
                    if (line != null) 
                        miLista.Add(line);
                }
                while (line != null);

                miArchivo.Close();

                StreamWriter miArchivoAlReves = File.CreateText(
                    nombreArchivo + "-reverse.txt");

                int tamanyoArchivo = miLista.Count;
                for (int i = tamanyoArchivo - 1; i >= 0; i--)
                {
                    miArchivoAlReves.WriteLine(miLista[i]);
                }

                miArchivoAlReves.Close();

            }
            catch (Exception e) 
            {
                Console.WriteLine("Error, " + e.Message);
            }
            Console.ReadLine();
        }
        }
    }
}

Popular Posts