昨日は22時半に寝た・・・と書きたいが、また遅くなってしまい、22時50分くらいになってしまったか。プログラムを書いていたわけではない。友達とLINEをしていて、22時半近くになったので切り上げたのだのだが、その後なにしてたっけ?夜中は眠りが浅くて何度も目が覚めた。たくさんの夢を見て疲れた。荒唐無稽な夢ばかり。
眼科で診察を受けていると池上彰に「目の手術をします」と言われて寝台に乗せられ、手術室まで運ばれた。どうやら池上彰が手術をするらしい。全身麻酔が怖くてやだよーと思っていたら、別室にいた次元大介が何かやってくれて(この辺でわからなくなった。場面が変わったか目が覚めたか)。
ボーカルアンサンブルの仲間2人に会うために京阪電車に乗っていた。枚方公園駅で降りるのだが、そこに近づいた時にふと尻ポケットに手をやったら財布がないのに気がついて血の気が引いた。ここまでSuicaだけで来れたから気が付かなかった。これは実際にありそうで怖い。すると赤ん坊みたいなお爺さんみたいな干からびた人が車両内に倒れていたので、「大丈夫ですか」と救命講習で教わったとおり肩を叩いたが反応がないので心臓マッサージをやったら生き返った。
街でファミレスのメニューのようなごついチラシを配っていたのでもらったら、新しくできたでかい寿司屋の案内だった。近くまで行ってお店を見てから元の場所に戻り、「行かないからいらない」と言ってパンフ(チラシ)を返した。
最近よくLINEでやり取りしている友達と電話で話をしていた。どうやら向こうは長野かその辺りの山にいるらしいのだが、音が途切れたと思ったら何かの音楽が聞こえてきた。スマホの画面を見たらその曲名が表示されていた。よくわからないが、なんだか便利だと思った。
以上、夢の話でした。
今日もまたずっとプログラミングをしていた。レアケースに対応しようとしたら、このプログラムのやり方だと不可能なことがわかった。最終行の最後に改行コードが入ってない場合、ADODBのストリームで行単位でReadTextしたときに、最後の行がEOS判定されてそこだけループを回せない。う~ん、これを解決するためにはどうしたらよいか。どうしようもない。ADODBの仕様なのでそこはどうしようもない。UTF-8なので普通にファイルをOpenしてもExcelでは文字化けする。あ、そうだいったんバイナリーで開いて強引に最後に改行コードを付加して保存すればいいのでは・・・。
などとばかなことを考えてしまった。どうせいったん全部ファイルを読み込むなら、テキストとして取り込んで普通にそれをそのまま処理すればいいではないか。
とりあえずちょこちょこといじって、ReadTextで行単位でなくファイル丸ごと読んで変数に放り込んでから、配列に分割して処理してみた。これならループは自分で制御できる。先読みをしているからループを1回多く回して処理をしたら、それでなんとかうまくいった。一気に取り込んで分割したら、今度は最後によけいな改行が入っていることになってしまったので、それを削除する処理を追加。いったいなんなんだ。まあやりたいことはそれでできた。
しかし、いっぺんにファイルを読みこんでから処理をするのと、ストリームから1行ずつ読み込んで処理するのはどちらがいいのか。私がプログラミングをしてきた中での常識では後者である。前者だと中身をいっぺんにメモリに貼り付けるので、ファイルがばかでかいとかなりメモリを食う。C言語というかなりメモリの扱いにデリケートな言語が長かった私は、プログラムで使うメモリの量にちょっと神経質だ。ファイルの内容を全てメモリに貼り付けるというのはあまり好きではない。いちいちファイルのI/Oが発生しない分高速とは思うが。しかし、私は最近のプログラミング事情からかなり離れてしまった。メモリが潤沢にある今のような環境だと、とりあえず全部メモリに読み込むのは当たり前なのかもしれない。どうなんだろう?
今日は郵便局へ行って県営住宅の収入申告書を出して、ローソンに行ってTwitterのリツイートキャンペーンで当たったLチキを引き換えて来ようと思っていたのに、もうちょっと、もうちょっとしたらと思っていたら昼過ぎになってしまった。妻に「もうすぐ3時だよ」と言われて「は!」という状態に。今は郵便窓口は15時までではないか。もう間に合わない。まあいいや、期日は6月だからまだ大丈夫だ。Lチキの期限は5月25日だから忘れないうちに行こう。というわけで今日もプログラミングで終わった。
なんか面白い動画が流れてきたから載せておこう。ジェニーハイ『ジェニーハイウォッシュ』。「手を洗いましょう」という曲なんだが。ジェニーハイはなんどか載せたが、ゲス極の川谷絵音、吉本芸人のくっきー、小藪一豊、ゴーストライター騒動の新垣隆、中嶋イッキュウのネタバンド。