MPIの勉強をするためにFortranを使ってCSVをオープンした。BOM付きCSVの存在を忘れエラーの原因が分からず、酷い目に遭った。
BOM (Byte order mark)がどんなもんかはどうでも良いんだ。FortranでBOM付きCSVファイルをオープンしてエラーに苦しんだ。
メモ程度の内容なのでデータの内容もコードの内容も書かないが、以下に示すエラーが出る人は、一度BOM付きCSVを疑った方が良いかもしれない。エクセルでCSV作ってテキトーに書き出したりするとこうなる。
Bad real number in item 1 of list input
これ、データの最初の3バイトにBOMが入ってるらしくこういうエラーになるそう。
BOM付きCSVかどうかは以下で簡単に調べられる。
file hogehoge.csv
>> hogehoge.csv: UTF-8 Unicode (with BOM) text, with no line terminators
この場合上のようなエラーが出るはず。なので、nkfコマンドを使ってファイルを上書きする。
nkf --overwrite --oc=utf-8 hogehoge.csv
これだけです。
何番煎じか分からない内容だけど案外このエラーの記事にまともなものが無かったので載せておきます。
雑感:自分に関係ないことで忙しいと他責の念が出てきて抑えるので一苦労。イライラ。集中したい今日この頃。
雑感2:遂に私が学生時代、B4だった子、すなわち最後の学生さんが卒業した。寂しくも嬉しくもあるが、今後とも良い関係でいられることを願っている。素晴らしい学生さんだった。