2 CVS-Dateien vereinen
-
Hallo zusammen,
ich habe hier eine riesengroße CVS-Datei mit 800 Spalten und 300 Zeilen.
Mein Ziel ist es zwei Spalten der Datei durch zwei Spalten einer anderen CSV-Datei zu ersetzen.
Da ich die aufgrund der Größe nicht mehr mit Excel bearbeiten kann, würde ich mir gerne ein C#-Programm schreiben das die Arbeit für mich erledigt.
Ich habe mir das so vorgestellt:
Var target: Spaltenname der ersetzt werden soll aus Datei 1
Var source: Spaltenname den ich haben will aus Datei 2Einlesen der Kommagetrennten Werte des ersten Files in ein 2dimensionales Array
Einlesen der Kommagetrennten Werte des zweiten Files in ein 2dimensionales ArraySuchen des jeweiligen Index anhand der Variablen "target" und "source".
Überschreiben der Spalte "target" mit der Spalte "source".Danach hinausschreiben der geänderten CSV-Datei in das CSV-Format.
Klingt das halbwegs logisch ? Oder habt ihr bessere Tipps für mich ? Gibt es vielleicht auch spezielle bibliotheken die ich dafür benutzen könnte ?
Danke !
Gawan
-
Servus,
du könntest doch die Dateien in ein DataSet laden und dann mit einem DataView z.B. Sortieren, Austauschen etc. oder du liest beide Dateien ein und tauchst die Informationen aus. Die CSV Datei ist ja eine Treenzeichen getrennte Datei.
Hier ein Ansatz in Pseudo Code:
int PositionDat1 = 1 // Spalte in erste Datei int PositionDat2 = 3 // Spalte in zweiter Datei string zwischenspeicher; solange (datei1 != ende && datei2 != ende) { string zeile1 = LeseZeile(datei1); Array1[] array1 = zeile1.Split(';'); string zeile2 = LeseZeile(datei2); Array2[] array2 = zeile2.Split(';'); array1[PositionDat1] = array2[PositionDat2]; zwischenspeicher += array1.ToString() + CR + LF; } SchreibeInDat3(zwischenspeicher);
Sowas in der Art...
mfg
Hellsgore