見様見真似4

[前回までの話]

 プログラミングってたのしいな。僕はとてもしあわせだよ。


 さて、検索エンジンに媚びを売りながら進めてきた作業も佳境に入ってきた。

 丸二日を費やして慣れないプログラミングなんてしたものだから、精神的に大きなダメージを受けている。しかしここまで来たからにはやるしかない。無駄にプライドだけ高く生きているから、絶対に後輩には頼りたくない。

 昔、部活動のテニスに勤しむ中学生だったころ、引退試合の二日前にペアを組んでいた子が部活を辞めるというスーパーアクシデントに見舞われた時には、後輩の中で一番強い子を指名して即席ペアを作るという暴挙に及んだが、それぐらいのピンチじゃなければ頼りたくない。


 XMLファイルの元は出来た。プログラム内で整形した文字列をファイルに出力する方法は、あっさりと見つかった。

 それにしても、色々と調べていてわかったのだが、最近ではXMLファイルを利用したデータ保持があまり流行らないようだ。というかXMLファイル自体は使われているのだけど、大抵は「XML→CSV」であって、「CSV→XML」をやっている人は少ない。ましてやそれに悩む初心者など皆無だった。


 なんでこんなことしているんだろう、と今更思いつつもファイル出力のコードを書く。ファイル名は適当に日付から取って「data_yyyymmddhhmissfff.xml」にした。今の時間をそのままファイル名にしてくれると思ってくれれば良い。何しろデータはとんでもない量である。変に難しい命名規則にしたら処理に時間がかかる。そう、だからファイル名の命名規則が思いつかなかったとか、難しいことは出来なかったとかではない。


 まずは一行分だけ試してみる。プログラミングは初心者同然でも、SEとしては相当な経験値があるので、最初から五十万行を試すなんて愚行はしない。プログラムを実行すると、なんともあっさりとファイルが吐き出された。わーい、と喜んで早速開いてみると、


 縺薙l縺ッ譁?ュ怜喧縺代〒縺吶h


 あ、文字化けしてら。

 Shift−JISで出力したかったのだが、UTF−8で吐き出したらしい。

 いっけなーい☆と再び検索エンジンに「教えてくださいよぉ」と懇願して、対策法を得る。コードを追加してもう一度動かすと、今度はちゃんと正しい文字で出力された。


 しかし此処で「じゃあ次は全部行ってみよう」となるのは素人である。次は五〇行のデータで同じことを試みた。恐る恐るプログラムを開始すると、特にエラーもなくファイルがどんどんと作り出されていく。物の数秒で全てのデータが吐き出されたが、保管先のディレクトリを見るとファイルが五十個あるべきなのに、半分しかなかった。


 なんで? と首を傾げるがログにエラーはない。ファイルにもおかしな箇所はない。何故か半分だけ消失してしまっている。何度か同じことを繰り返すと、原因がわかった。ファイルの作成速度が早すぎるので、ファイル名が同じものが出来てしまうのである。同じファイル名の場合はコピーを取る……とかそんな処理は入れていないので、上書きされてしまっていたのだ。

 だったら話は早い。ファイル生成は一行ずつループ処理なので、作る度に少しだけ止まってもらえばいいのである。これで完璧だ。今度は五〇個のデータがちゃんとディレクトリに整列した。


 さて、いよいよ本番。五十万行のデータが詰まったファイルをセットし、プログラムを実行する。ファイル一つあたりのbyte数を計算し、端末の中のハードディスクを圧迫しないことは先に調べた。ファイル出力中にパンクすることはない。プログラム実行と共にどんどんとファイルが吐き出されていく。

 幸福な気持ちでそれを見ていると、通りかかった後輩が話しかけてきた。


「昨日から何してるんですか?」

「実はこういう事情でね。ようやく完成したからファイルを作ってるんだ」

「へぇ。でも五十万行あるんですよね。いつ終わるんですか?」


 その言葉に合わせるように会社の就業チャイムが鳴る。

 しまった。時間を考えるのを忘れていた。慌てて計算すると、二時間かかることが判明した。


 二時間かー。

 でもこれ、明日持っていかないと行けないんだよなぁ。栃木に。

 家に持って帰ってやるのはやだなぁ。というか今、CPU物凄く使っちゃってるから他の作業出来ないし。

 悩んだ挙句に私は後輩に視線を戻した。


「これ、そっちの据え置き端末で動かして、明日の朝にデータ送付してくれない? お土産買ってくるから」


 プライドとかは遠くのお山に捨てました。

 ぷろぐらみんぐたのしかったです。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る