hstファイルをcsvに一括変換するPerlツール。

なんだかドルストレートの動きが楽しいことになっていますね..。価格が大きく動くと言う事は、大損する人が出る代わりに大儲けできる可能性が生まれるわけで、投機家としては、どうしても喜ばしく感じてしまいます。輸出入業者にとっては、迷惑極まりない状況なのでしょうけど、そこは資本主義社会の宿命として割り切ってもらうしかないかなと思ってます。
(…と書きつつも、ドル円が暴落するたびに、泣きついてくる?人がいて、いつも対応に苦慮します..orz。



さて、、需要があるのか分かりませんが、hstファイルを直接csv に一括変換するツールを作ったので、ここに置きました。
使い方は…


(A) *.hst ファイルを直接 Hst2Csv.exe にドロップする。
(B) *.hst ファイルのあるフォルダを Hst2Csv.exe にドロップする。


どちらの使い方でも、 *.hst ファイルの場所にCSVファイルが出来上がります。
Perl で作られているので、DOS窓がでますが、10秒ほどで消えます。
フォルダ内の階層を再帰的に処理は...しませんので、あしからず。


*.hst ファイルのフォーマットは、ヘルプの Tools -> History Center で見ることが出来ます。
PerlPHP でも、バイナリファイルである *.hst を読み書きすることは可能で、Perl の場合はバイナリモードで開いてから

read DB, $buf, 148;
my ($version,$copyright,$symbol,$period,$digit,$timesign,$lastsync,$unused) = unpack "L1 a64 a12 L4 a52", $buf;

で、ヘッダ部分を読み取れて、各データは、

read DB, $buf, 44;
my ($time, $open,$low,$high,$close,$volume) = unpack "L1 d5", $buf;

の繰り返しで読めます。 Perl で *.hst を処理したい人からの要望があれば、もう少し解説しますが、まっとうな Perl 使いなら、unpack の仕方さえ分かってしまえば多分大丈夫でしょう。PHP の場合は、unpack の仕様が何か違っていたかもしれません。こちらは未確認なので、PHPマニュアルを調べてください。