Convertidor De CSV A Texto En C#

Este programa lee un archivo CSV que contiene cuatro bloques de datos por línea. Los tres primeros son textuales (nombre, apellidos y ciudad) y el último es numérico (edad). Procesa el archivo CSV y genera un nuevo archivo de texto donde cada bloque de datos aparece en una línea independiente. El programa admite el formato CSV, donde los bloques de datos se escriben entre comillas y separados por comas, pero también se adapta a variantes donde no se utilizan comillas. Para cada línea del archivo CSV, el programa divide los datos y los escribe en el archivo de texto de salida, con cada entrada en una nueva línea.



Grupo

Manejo de archivos en C#

Objectivo

1. El programa espera un archivo CSV con cuatro valores por línea: nombre, apellido, ciudad y edad.
2. Cada bloque de datos debe ir entre comillas y los valores separados por comas.
3. El resultado será un nuevo archivo de texto con cada bloque de datos del archivo CSV escrito en una nueva línea.
4. Ejecute el programa pasando el nombre del archivo CSV de entrada como parámetro.

Ejemplo de uso:

csvToText input.csv


El formato CSV ("Valores Separados por Comas") es un formato de intercambio utilizado por muchos sistemas de gestión de bases de datos y hojas de cálculo. Consiste en una serie de valores separados por comas y entre comillas, aunque existen variantes que no utilizan comillas o utilizan punto y coma como separadores. A menudo, los valores no se escriben entre comillas. Un archivo de ejemplo sería:

"John", "López Pérez," "Alicante", 25

"Antonio", "Pérez López", "Madrid", 27


Debe crear un programa que lea un archivo CSV como el mostrado arriba, con cuatro bloques de datos (los tres primeros son de texto y el último es numérico), cada uno en una línea independiente. El programa debe generar un archivo de texto donde cada entrada contenga una línea como esta:

John

Pérez López
Alicante
25
Antonio
Pérez López
Madrid
27

Ejemplo de ejercicio en C#

 Copiar código C#
using System;
using System.IO;

class CSVToTextConverter
{
    // Main method where the program starts execution
    static void Main(string[] args)
    {
        // Check if the user has provided the necessary file name argument
        if (args.Length != 1)
        {
            Console.WriteLine("Usage: csvToText ");
            return;
        }

        // Get the input CSV file name from the command line arguments
        string inputFileName = args[0];
        
        // Check if the specified file exists
        if (!File.Exists(inputFileName))
        {
            Console.WriteLine("The specified file does not exist.");
            return;
        }

        // Define the output file name by changing the extension to .txt
        string outputFileName = Path.ChangeExtension(inputFileName, ".txt");

        try
        {
            // Open the input CSV file for reading
            using (StreamReader reader = new StreamReader(inputFileName))
            {
                // Open the output text file for writing
                using (StreamWriter writer = new StreamWriter(outputFileName))
                {
                    string line;
                    // Read each line from the CSV file
                    while ((line = reader.ReadLine()) != null)
                    {
                        // Split the CSV line by commas, assuming values are enclosed in quotes
                        string[] data = line.Split(new char[] { ',' }, StringSplitOptions.None);

                        // Loop through the data array and write each value to the output file
                        foreach (var value in data)
                        {
                            // Remove quotes around values if present
                            string cleanValue = value.Trim('"').Trim();

                            // Write the cleaned value to the output file on a new line
                            writer.WriteLine(cleanValue);
                        }
                    }
                }
            }

            // Inform the user that the file has been successfully created
            Console.WriteLine($"Text file created successfully: {outputFileName}");
        }
        catch (Exception ex)
        {
            // Handle any errors that occur during file reading or writing
            Console.WriteLine("An error occurred: " + ex.Message);
        }
    }
}

 Output

//For an input CSV file named input.csv with the following content:
"John", "López Pérez", "Alicante", 25
"Antonio", "Pérez López", "Madrid", 27

//The output text file (input.txt) will contain:
John
López Pérez
Alicante
25
Antonio
Pérez López
Madrid
27

Comparte este ejercicio de C#

Practica más ejercicios C# de Manejo de archivos en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..

  • Programa de comparación de archivos en C#

    Este programa de C# compara dos archivos de cualquier tipo (texto, binario, etc.) para determinar si son idénticos. El programa lee el contenido de ambos archivos y comprueba si ca...

  • Descodificador de imágenes Netpbm en C#

    Este programa en C# decodifica un archivo de imagen Netpbm (específicamente el tipo "P1") y muestra su contenido en la consola. El programa lee el encabezado, las dimensiones y los...

  • Comprobador de archivos de imagen PCX en C#

    Este programa en C# comprueba si un archivo dado es una imagen PCX válida. Si es una imagen PCX, el programa lee su encabezado para extraer su ancho y alto. Estos se calculan utili...

  • Extraer caracteres alfabéticos de un archivo binario en C#

    Este programa en C# extrae únicamente los caracteres alfabéticos de un archivo binario y los guarda en un archivo aparte. El programa identifica caracteres con códigos ASCII entre ...

  • Convertir un programa de C# a Pascal

    Este programa de C# está diseñado para convertir programas sencillos de C# a código en lenguaje Pascal. El programa lee un archivo de código fuente de C# y traduce construcciones b...

  • Utilidad de visor hexadecimal: utilidad de volcado en C#

    Este programa de C# es una utilidad de volcado que funciona como un visor hexadecimal. Muestra el contenido de un archivo en formato hexadecimal, con 16 bytes en cada fila y 24 fil...