Ejercicio
Conversor CSV
Objetivo
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
Código
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