tbasicが1.60になりました。これを機会にそのsamplesとして,いくつかのプログラムを作りました。ここではその中から,binary viewer を紹介します。プログラムの名前は,「Tiny Binary Viewer」で,ファイル名は「tbview.tbt」です。tbasic set 1.60 のsamples\Advancedの中にあります。
1.60では新たに,バイナリファイルの読み書きができる ReadAllBytes,WriteAllBytes関数・手続きをサポートしました。この使い方は,Tiny Basic for Windows ファイル操作編(2023年08月版)10節に書いてあります。簡単に言えば,ファイルの内容をバイト列として,読み書きするものです。 この機能を使えば,原理的には,バイナリエディタを作ることも可能ですが,利用目的が思いつかないので,今回は,binary viewerを作ることにしました。バイナリビューアはすべてのファイルのバイト内容を表示するもので。テキストファイル,画像ファイル,文書ファイル,実行ファイルなど,標準的な起動・開く方法とは異なった形式の表示を得ることができます。そして種々のファイルの舞台裏をつぶさに見ることができます。 今回色々なエンコーディングについて調べるときに,それらの内容の確認をするためには,テキストファイルをバイナリとして確認する必要がありました。そして, ユニコードへ(2023年8月版)を書く際に,実際にtbview.tbtを確認用として使いました。
見ると,ファイル内容は「31 2B 31 82 CC 8C 76 8E 5A」です。この結果は,ユニコードへ(2023年8月版)の23ページでシフトジスでの計算結果に合致します。 同様に,「1+1の計算」と記入したテキストファイルをエンコーディングEUCでファイル名「1足す1EUC.txt」として保存して,この内容をバイナリビューアで表示させると,次のようになります。
見ると,ファイル内容は「31 2B 31 A4 CE B7 D7 BB BB」です。この結果は,ユニコードへ(2023年8月版)の27ページでEUCでの計算結果に合致します。
このプログラムの実行時の注意をあげます。 ・使用中のファイルやフォルダの time stampは変更できません。 ・ファイルですと開いているものなどです。 ・フォルダの time stamp の変更は少し微妙です。 フォルダが使用中と言うことは,そのフォルダ下にあるファイルが使用中ということです。たくさんのファイルやフォルダを含むフォルダの場合,その中にあるファイル等が一つでも使われていると変更できなくなります。