CSV converter Learn programming with Visual Basic (VB.net) exercises

Lesson:

File Management


Exercise:

CSV converter 54


Objetive:

The CSV ("Comma Separated Values") is a exchange format used by many spreadsheets and management systems databases. It is a series of comma-separated values enclosed in quotation marks, although there are variants that do not use quotes, or using semicolon as separator. Often the figures not enclosed in quotes. An example file would be:

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

It should create a program that reads a CSV file as above, with four data blocks (the first 3 are text and the last will be numeric), each of which is in a line, and generate a text file each entry contains a line like this:

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


Code:

Imports System
Imports System.IO
Namespace ReaderCSV
    Class Program
        Private Shared Sub Main(ByVal args As String())
            Console.WriteLine("CSV READER")
            Console.WriteLine("--------------------------------------")
            Console.Write("Enter name of file .csv: ")
            Dim nameFile As String = Console.ReadLine()
            Dim myfile As StreamReader
            Dim cadena As String
            Dim position As Integer

            Try
                myfile = New StreamReader(nameFile, System.Text.Encoding.[Default])
                Dim line As String

                Do
                    line = myfile.ReadLine()

                    If (line IsNot Nothing) AndAlso (line <> "") Then

                        Try
                            line = line.Replace("""", "")
                            position = line.IndexOf(";"c)
                            cadena = line.Substring(0, position)
                            line = line.Remove(0, position + 1)
                            Console.WriteLine(cadena & vbLf)
                            position = line.IndexOf(";"c)
                            cadena = line.Substring(0, position)
                            line = line.Remove(0, position + 1)
                            Console.WriteLine(cadena & vbLf)
                            position = line.IndexOf(";"c)
                            cadena = line.Substring(0, position)
                            line = line.Remove(0, position + 1)
                            Console.WriteLine(cadena & vbLf)
                            cadena = line.Substring(0)
                            Console.WriteLine(cadena & vbLf)
                        Catch e As Exception
                            Console.WriteLine("Error !!! " & e.Message)
                        End Try
                    End If
                Loop While line IsNot Nothing

            Catch e As Exception
                Console.WriteLine("Error !!!" & e.Message)
            End Try
        End Sub
    End Class
End Namespace