Der Martin: ich möchte eine sehr grosse CSV Datei in eine MYSQL Datenbank einspielen

Beitrag lesen

Hi,

Hello,
Wenn Du die Zeilentrenner kennst (siehe Raketentipps) kannst Du die Aufspaltung mit fast jeder Hochsprache vornehmen, die auf ein Random-Access-Flesystem zugreifen können.

Random Access ist für diesen Ansatz nicht einmal nötig: Streng sequentielles Lesen, Zeichen für Zeichen, würde auch schon genügen.

Du liest zeilenweise, zählst mit, schreibst in eine Datei weg und öffnest aller X Leseoperationen eine neue Zieldatei.

Genau. Die Crux dabei ist nur, zwischen Zeilenumbrüchen zu unterscheiden, die a) ein Datensatz-Trenner sind oder b) Teil des Feldinhalts sind. Da muss man halt den Kontext ein bisschen im Blick behalten. Vor allem Feld-Delimiter und String-Begrenzer kennen und erkennen.
Und bei inkonsistenten Daten auch einfach mal "Scheiße!" schreien.

Siehe auch fgetcsv()

Das wäre vermutlich einfacher als selbst einen CSV-Parser zu klöppeln. Es sei denn, die Datenquelle benutzt eine so abstruse CSV-Interpretation, dass fgetcsv() damit nicht mehr umgehen kann.

Möge die Übung gelingen
 Martin

--
Darmstadt? Ist das nicht da, wo immer der Urologen-Kongress tagt?