Conversor CSV - Ejercicio de Programacion C# Sharp

Este ejercicio consiste en crear un programa que lea un archivo CSV con cuatro bloques de datos separados por comas (tres de texto y uno numérico) y genere un archivo de texto donde cada entrada esté organizada en líneas separadas. El archivo CSV de entrada contiene los datos de las personas y el programa debe procesarlos para reorganizarlos en el formato solicitado. Este ejercicio ayuda a entender cómo manejar archivos CSV y cómo procesar y organizar datos en un archivo de texto. El uso de comas como delimitador es clave en el procesamiento de datos en formato CSV, y este ejercicio refuerza la comprensión de este tipo de intercambio de datos entre sistemas.

 Categoría

Administración de Archivos

 Ejercicio

Conversor CSV

 Objectivo

El CSV ("Valores separados por comas") es un formato de intercambio utilizado por muchas hojas de cálculo y bases de datos de sistemas de gestión. Es una serie de valores separados por comas encerrados entre comillas, aunque hay variantes que no usan comillas, o que usan punto y coma como separador. A menudo las cifras no están entre comillas. Un archivo de ejemplo sería:

"Juan", "López Pérez", "Alicante", 25
"Antonio", "Pérez López", "Madrid", 27

Debe crear un programa que lea un archivo CSV como el anterior, con cuatro bloques de datos (los primeros 3 son de texto y el último será numérico), cada uno de los cuales está en una línea, y generar un archivo de texto cada entrada contiene una línea como esta:

John
Pérez López
Alicantino
25
Anthony
Pérez López
Madrid
27

 Ejemplo Ejercicio C#

 Copiar Código C#
// Import necessary namespaces for file handling
using System; // Basic input/output operations
using System.IO; // FileStream and StreamReader for reading and writing files
using System.Text; // StringBuilder for efficient string handling

class CSVConverter // Main class for the CSV conversion program
{
    static void Main(string[] args) // Entry point of the program
    {
        // Check if the correct number of arguments (input and output files) are provided
        if (args.Length != 2) // If not enough arguments are provided
        {
            Console.WriteLine("Usage: CSVConverter  "); // Show usage instructions
            return; // Exit the program if the arguments are incorrect
        }

        string inputFile = args[0]; // The input CSV file name
        string outputFile = args[1]; // The output text file name

        // Check if the input CSV file exists
        if (!File.Exists(inputFile)) // If the input file does not exist
        {
            Console.WriteLine("Error: The input CSV file does not exist."); // Inform the user about the missing file
            return; // Exit the program if the input file is missing
        }

        try
        {
            // Open the input CSV file for reading
            using (StreamReader reader = new StreamReader(inputFile)) // StreamReader to read the CSV file
            {
                // Create the output text file for writing
                using (StreamWriter writer = new StreamWriter(outputFile, false, Encoding.UTF8)) // StreamWriter to write the text file
                {
                    string line; // Variable to store each line from the CSV file

                    // Read the CSV file line by line
                    while ((line = reader.ReadLine()) != null) // Continue until the end of the file
                    {
                        // Remove leading and trailing spaces from each line
                        line = line.Trim();

                        // Split the line by comma and remove any surrounding quotes
                        string[] parts = line.Split(','); // Split the line into parts based on commas

                        // Clean up quotes around each part
                        for (int i = 0; i < parts.Length; i++)
                        {
                            parts[i] = parts[i].Trim('"'); // Remove quotes from each part
                        }

                        // Write each part to the output file on a separate line
                        foreach (string part in parts) // Loop through each part of the line
                        {
                            writer.WriteLine(part); // Write each part to a new line in the output file
                        }
                    }
                }
            }

            Console.WriteLine("CSV file has been successfully converted to text format."); // Inform the user that the conversion is complete
        }
        catch (Exception ex) // Catch any exceptions that occur during the file reading or writing process
        {
            Console.WriteLine($"An error occurred: {ex.Message}"); // Display the error message
        }
    }
}

 Salida

Run the program on a CSV file:
CSVConverter input.csv output.txt

The CSV file input.csv might look like this:
"Name","Age","City"
"Alice",30,"New York"
"Bob",25,"Los Angeles"

The program will write the following to the output.txt file:
Name
Age
City
Alice
30
New York
Bob
25
Los Angeles

Successful Conversion:
CSV file has been successfully converted to text format.

File Not Found:
Error: The input CSV file does not exist.

File Read/Write Error:
An error occurred: error message

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Administración de Archivos

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Comparador de archivos

    Este ejercicio consiste en crear un programa en C# que determine si dos archivos (de cualquier tipo) son idénticos, es decir, si tienen el mismo contenido. El ...

  •  Mostrar BPM en la consola

    Este ejercicio consiste en crear un programa en C# que decodifique un archivo de imagen en formato Netpbm (en particular, el formato P1, que es para imá...

  •  Ancho y alto de PCX

    Este ejercicio consiste en crear un programa en C# que verifique si un archivo es una imagen en formato PCX y, si es así, extraiga y muestre las dimensiones (a...

  •  Extraer texto de un archivo binario

    Este ejercicio consiste en crear un programa en C# que extraiga solo los caracteres alfabéticos contenidos en un archivo binario y los volque en un archivo separado. ...

  •  Conversor de C# a Pascal

    Este ejercicio consiste en crear un programa en C# que convierta programas simples en C# a su equivalente en el lenguaje Pascal. El programa debe leer u...

  •  Volcado

    Este ejercicio consiste en crear una utilidad de "dump": un visor hexadecimal que muestra el contenido de un archivo, con 16 bytes por fila y 24 filas por pantalla. El progr...