Mnyut
Grünschnabel
Nach dem jetzt mit der Hilfe von @Yaslaw alles klappt, habe ich ein klein wenig Optimierungspotential:
Ich lese in einer Funktion eine csv-Datei (~6 MB) ein, reinige sie und erhalte zum Schluss ein entsprechendes Array mit dem ich arbeiten kann. Wenn ich das Array wieder in eine Datei schreibe, bleiben noch~200 kB über (~9000 Zeilen, drei Spalten).
Wenn ich das aufbereiten weg lassen und das Array irgend wie im Speicher halten kann, spare ich sicher 500 ms pro Durchlauf ein. Da die Funktion dann später auch gerne 20 .. 100 ... 150 mal pro Tabelleblatt zum Einsatz kommt, ist das eine Menge Zeit (das bisherige, unbefriedigende gebastel aus SVerweis & Co. war noch langsamer).
Gibt es eine derartige Möglichkeit, oder bleibt mir nur der Weg das Array in eine Datei auf die Platte zu schreiben und beim nächsten Durchlauf zu prüfen, ob sich das Original in der Zwischenzeit geändert hat?
Eine Lösung mit SQL Server dazwischen möchte ich nach Möglichkeit vermeiden.
Ich lese in einer Funktion eine csv-Datei (~6 MB) ein, reinige sie und erhalte zum Schluss ein entsprechendes Array mit dem ich arbeiten kann. Wenn ich das Array wieder in eine Datei schreibe, bleiben noch~200 kB über (~9000 Zeilen, drei Spalten).
Wenn ich das aufbereiten weg lassen und das Array irgend wie im Speicher halten kann, spare ich sicher 500 ms pro Durchlauf ein. Da die Funktion dann später auch gerne 20 .. 100 ... 150 mal pro Tabelleblatt zum Einsatz kommt, ist das eine Menge Zeit (das bisherige, unbefriedigende gebastel aus SVerweis & Co. war noch langsamer).
Gibt es eine derartige Möglichkeit, oder bleibt mir nur der Weg das Array in eine Datei auf die Platte zu schreiben und beim nächsten Durchlauf zu prüfen, ob sich das Original in der Zwischenzeit geändert hat?
Eine Lösung mit SQL Server dazwischen möchte ich nach Möglichkeit vermeiden.