Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un archivo de valores separados por comas (CSV) es un archivo de texto que a menudo se usa para almacenar datos de hoja de cálculo u otros datos tabulares representados por filas y columnas. Mediante el Split método para separar los campos, es muy fácil consultar y manipular archivos CSV mediante LINQ. De hecho, se puede usar la misma técnica para reordenar las partes de cualquier línea de texto estructurada; no se limita a los archivos CSV.
En el ejemplo siguiente, supongamos que las tres columnas representan el "apellido" de los alumnos, "nombre" y "ID". Los campos están en orden alfabético en función de los apellidos de los alumnos. La consulta genera una nueva secuencia en la que aparece primero la columna ID, seguida de una segunda columna que combina el nombre y apellidos del alumno. Las líneas se reordenan según el campo id. Los resultados se guardan en un nuevo archivo y los datos originales no se modifican.
Para crear el archivo de datos
Copie las líneas siguientes en un archivo de texto sin formato denominado spreadsheet1.csv. Guarde el archivo en la carpeta del proyecto.
Adams,Terry,120 Fakhouri,Fadi,116 Feng,Hanying,117 Garcia,Cesar,114 Garcia,Debra,115 Garcia,Hugo,118 Mortensen,Sven,113 O'Donnell,Claire,112 Omelchenko,Svetlana,111 Tucker,Lance,119 Tucker,Michael,122 Zabokritski,Eugene,121
Ejemplo
Class CSVFiles
Shared Sub Main()
' Create the IEnumerable data source.
Dim lines As String() = System.IO.File.ReadAllLines("../../../spreadsheet1.csv")
' Execute the query. Put field 2 first, then
' reverse and combine fields 0 and 1 from the old field
Dim lineQuery = From line In lines
Let x = line.Split(New Char() {","})
Order By x(2)
Select x(2) & ", " & (x(1) & " " & x(0))
' Execute the query and write out the new file. Note that WriteAllLines
' takes a string array, so ToArray is called on the query.
System.IO.File.WriteAllLines("../../../spreadsheet2.csv", lineQuery.ToArray())
' Keep console window open in debug mode.
Console.WriteLine("Spreadsheet2.csv written to disk. Press any key to exit")
Console.ReadKey()
End Sub
End Class
' Output to spreadsheet2.csv:
' 111, Svetlana Omelchenko
' 112, Claire O'Donnell
' 113, Sven Mortensen
' 114, Cesar Garcia
' 115, Debra Garcia
' 116, Fadi Fakhouri
' 117, Hanying Feng
' 118, Hugo Garcia
' 119, Lance Tucker
' 120, Terry Adams
' 121, Eugene Zabokritski
' 122, Michael Tucker