2022/09/24
KTB48とは、
複数の柿木将棋の *.KI2 ファイルを TBase の *.DIA *.TJN ファイルに変換するものです。
門脇さんの、ソースコードには Ki2-tb.bas や Kiftb.bas があるので、
どこかにコンパイルしたものあるはずと思っていた。
なので、あえて、自分が作らなくともいいと考えていた。
メールでの、作っていませんか? の問い合わせにも、
「作っていない、すでにあるものは、作らない」旨の返事をしていたのだが、、
9月のはじめ、風さんが TJN ファイル だけでも、有ればいいようだったので、
TJN ファイルだけなら、既にあるものを転用するだけでいいので作ってみたのが大間違い。
門脇さんソースコードで、詰将棋情報を変換するのは
if kmid$(A$,1,2)="作者" then lset SAKUSHA$=kmid$(A$,4)
if kmid$(A$,1,3)="発表誌" then lset SOURCE$=kext$(kmid$(A$,5),1)
if kmid$(A$,1,3)="表題:" then lset DAIMEI$=kext$(kmid$(A$,4),1)
if kmid$(A$,1,3)="作品名" then lset DAIMEI$=kext$(kmid$(A$,5),1)
if left$(A$,8)="発表年月" then gosub *YEAR
の通りで 5行 4種類にすぎなかった。
これでは、もし、門脇さんのプログラムがあっても、使い勝手が悪いだろうと思った。
で、20年以上も前の TMKPlay などのソースコードや
最近の ジュティム のソースコードをかき集め、試運転版を作った。
昔は Shift-Jis だけで文字列を扱えば良かったが、最近は ユニコード (utf-8 )ベースとなっている。Suiho や for you などの ユニーコード化が終わって、 Shift-Jis のことは「穴に埋めた」たばかりなのに、「穴を掘り返せ」ということか、、そして、他には使い道の無いことだった。
試運転版を試してもらっているうちに、いろいろと解ってきたこともあった。それは、いろんなやり方の寄せ集めではメンテナンスが大変ということだった、Shift-Jis とユニーコードの型変換の警告が、50以上も出ていたりする。
おかもとさんにバグ出していただいたおかげで、(ミクロコスモスなどの 1000 手以上の時に、次のField に書き込んでしまうというバグは残っている) 使えるようにはなって来たと思っていたのだが、
詰将棋情報の解析が必要?となり、ムムムとなっている。
「オプション」にて、解決する予定だが、どうなるか。
TBase からの読み書きを統一した方法でやらないと、program のメンテナンスは大変なので、色々と研究をしていたりする。
DIA ファイルの Field が Excel でイジることが簡単な、 CSV で 取り出すことができるようにしてみた。 CSV から、 DIA ファイルに戻すことができれば、柿木将棋の変換は、あまり凝らなくても済むと思われたりするのだった。