Exercise
CSV converter
Objetive
The CSV ("Comma Separated Values") is an exchange format used by many spreadsheet and database management systems. It consists of a series of comma-separated values enclosed in quotation marks, although there are variants that do not use quotes or use semicolons as separators. Often, the values are not enclosed in quotes. An example file would be:
"John", "López Pérez," "Alicante", 25
"Antonio", "Pérez López", "Madrid", 27
You should create a program that reads a CSV file as shown above, with four data blocks (the first three are text and the last one is numeric), each of which is on a separate line. The program should generate a text file where each entry contains a line like this:
John
Pérez López
Alicante
25
Antonio
Pérez López
Madrid
27
Example Code
using System;
using System.IO;
namespace ReaderCSV
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("CSV READER");
Console.WriteLine("--------------------------------------");
Console.Write("Enter name of file .csv: ");
string nameFile = Console.ReadLine();
StreamReader myfile;
string cadena;
int position;
try
{
myfile = new StreamReader(nameFile, System.Text.Encoding.Default);
string line;
do
{
line = myfile.ReadLine();
if ((line != null) && (line != ""))
{
try
{
line = line.Replace("\"", "");
position = line.IndexOf(';');
cadena = line.Substring(0, position);
line = line.Remove(0, position + 1);
Console.WriteLine(cadena + "\n");
position = line.IndexOf(';');
cadena = line.Substring(0, position);
line = line.Remove(0, position + 1);
Console.WriteLine(cadena + "\n");
position = line.IndexOf(';');
cadena = line.Substring(0, position);
line = line.Remove(0, position + 1);
Console.WriteLine(cadena + "\n");
cadena = line.Substring(0);
Console.WriteLine(cadena + "\n");
}
catch (Exception e)
{
Console.WriteLine("Error !!! " + e.Message);
}
}
}
while (line != null);
}
catch (Exception e)
{
Console.WriteLine("Error !!!" + e.Message);
}
}
}
}