ADO.NET CSV auf deutschen Systemen

Wer sich schon mal mit CSV-Import unter C# herumgeschlagen hat, wird sich auf einem deutschen System vielleicht über folgende Meldung gefreut haben:
„Unbehandelte Ausnahme: System.Data.OleDb.OleDbException: Das Feldtrennzeichen für die angegebene Textdatei entspricht dem Dezimaltrennzeichen oder Texttrennzeichen.“
Hierbei handelt es sich um einen ganz großen Wurf von Microsoft: Das Trennzeichen (also das Komma) darf nicht zugleich das Trennzeichen für Fließpunktzahlen (also das Komma in Deutschland) sein. (Das kann doch nicht wirklich deren Ernst sein? Wozu gibt es Feldbegrenzer?)

Jedenfalls hilft es hierbei, das Kommazeichen für Bruchzahlen (1,23) auf einen Punkt zu setzen (1.23). Dies geschieht über die schema.ini

[test.csv]
Format=Delimited(,)
DecimalSymbol=.

Die schema.ini ist dann noch mal ein ganz eigener Spaß… (bitte selber googlen, falls ihr nichts mit schema.ini anfangen könnt)

Grub mag keine großen Inodes

Heute habe ich eine ext3 angelegt, und mittels rsync mein Linux gespiegelt. Dann wollte ich noch Grub einrichten, was allerdings nicht funktionierte. Entweder kam ein „Error 2: Bad file or directory type“ (o.ä.) oder er fand /boot/grub/stage1 nicht.
Die Ursache des Problems: Das ext3 Dateisystem wurde mit einer Inode-Größe von 256 angelegt, wobei verschiedene (ältere? ungepatchte? Versionen 128 wollen.
Abhilfe des Problems: Neue Grub-Version installieren. (Versucht erst gar nicht, die Inodegröße zu verkleinern – man kann sie nur vergrößern)