Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un fichier de valeurs séparées par des virgules (CSV) est un fichier texte qui est souvent utilisé pour stocker des données de feuille de calcul ou d’autres données tabulaires représentées par des lignes et des colonnes. En utilisant la Split méthode pour séparer les champs, il est très facile d’interroger et de manipuler des fichiers CSV à l’aide de LINQ. En fait, la même technique peut être utilisée pour réorganiser les parties d’une ligne de texte structurée ; il n’est pas limité aux fichiers CSV.
Dans l’exemple suivant, supposons que les trois colonnes représentent le « nom », « prénom » et « ID » des étudiants. Les champs sont dans l’ordre alphabétique en fonction des noms des étudiants. La requête produit une nouvelle séquence dans laquelle la colonne ID apparaît en premier, suivie d’une deuxième colonne qui combine le prénom et le nom de l’étudiant. Les lignes sont réorganisées en fonction du champ ID. Les résultats sont enregistrés dans un nouveau fichier et les données d’origine ne sont pas modifiées.
Pour créer le fichier de données
Copiez les lignes suivantes dans un fichier texte brut nommé spreadsheet1.csv. Enregistrez le fichier dans votre dossier de projet.
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
Exemple :
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