Beschreibung:
Konvertiert eine CSV-Datei mit n-Spalten.
Der Funktion wird der Separator, der Dateiname, die Filterfunktion (Filter über Zeilennummer möglich) und das Zielformat als Lambda-Expression übergeben.
Dabei ruft der Converter Zeilenweise die Projection auf um die konvertierung durchzuführen.
Beispiel:
XElement result = new XElement( "root", ConvertCsvTo ( "felder_mit_beschreibung.txt", '\t', row => row > 0, columns => new XElement ( "bereich", new XAttribute ( "name", columns[ 0 ] ), new XElement ( "feld", new XElement ( "name", columns[ 2 ] ), new XElement ( "beschreibung", columns[ 1 ] )))));
In diesem Beispiel wird die Ergebnissmenge in einen Wurzelknoten (root) gepackt. Transformiert wird eine CSV-Datei mit 3 Spalten, die durch einen Tabulator getrennt ist. Der Header interessiert dabei nicht, daher die Filterbedingung row > 0. Zum Schluss werden die Spalten in einem gewüschten Format in Form gebracht. Hier XML. Genauso denkbar wäre eine Projektion auf XAML, Excell-Tabelle,vielleicht HTML, oder was auch immer.
Abgelegt unter: CSV, Predicate, Convert, LINQ, LinqToCSV.
|