Ejercicio
Invertir Un Archivo De Texto
Objectivo
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.
Ejemplo Ejercicio C#
Mostrar Código C#
// Importing necessary namespaces
using System; // Importing the System namespace for basic C# functionality
using System.IO; // Importing the IO namespace for file operations
public class InvertFileContents
{
// Method to invert the contents of the text file
public static void InvertFile(string inputFile)
{
// Generate the output file name by appending ".tnv" to the input file name
string outputFile = Path.ChangeExtension(inputFile, ".tnv");
// Read all lines from the input file
string[] lines = File.ReadAllLines(inputFile); // Read all lines into an array
// Open the output file for writing
using (StreamWriter writer = new StreamWriter(outputFile)) // Open the output file in write mode
{
// Write the lines in reverse order
for (int i = lines.Length - 1; i >= 0; i--) // Loop through the array in reverse order
{
writer.WriteLine(lines[i]); // Write the current line to the output file
}
}
// Notify the user that the file inversion is complete
Console.WriteLine($"File '{inputFile}' has been inverted and saved as '{outputFile}'."); // Print success message
}
}
class Program
{
// Main method where the program execution starts
static void Main(string[] args)
{
// Check if the user provided the file name as an argument
if (args.Length < 1) // If no file name is provided
{
Console.WriteLine("Please provide the input text file."); // Prompt user to provide the file
return; // Exit the program if no file is provided
}
string inputFile = args[0]; // Assign the input file name from the command line argument
// Check if the input file exists
if (!File.Exists(inputFile)) // If the input file doesn't exist
{
Console.WriteLine($"The file '{inputFile}' does not exist."); // Print error message
return; // Exit the program if the file doesn't exist
}
// Call the method to invert the contents of the file
InvertFileContents.InvertFile(inputFile); // Invert the file contents and save the result
}
}
Salida
You provide a text file, e.g., example.txt, containing:
Line 1
Line 2
Line 3
dotnet run example.txt
Line 3
Line 2
Line 1
File 'example.txt' has been inverted and saved as 'example.tnv'.
Código de Ejemplo Copiado!
Comparte este Ejercicio C# Sharp