「登録」ラベルボタンを付けたら、一気に14MBから20MBになってしまった。できることは、現時点で次の通り。
- 訓読漢文データの蓄積(ノートを付けられる。内容は自由。)
- データの登録=JSON〔ジェイソン〕形式とテキスト形式に同時変換
- 白文への変換とテキストへの書き出し
- HTMLへの変換と縦書きHTMLへの書き出し
- 旧・漢文エディタでも使えるタグ形式への変換とテキストへの書き出し
- 作業記録や日記をメニューバーからドキュメントフォルダに保存できる。
Taiju製「漢文エディタ」の最大の特徴の一つは、
入力データを蓄積して継続的に利用できることである。もう一つの大きな特徴は「書き下し文」への自動変換なのだが、これはまだ「新・漢文エディタ」には無い。ただし、VBAではなくPython+TKinterで作っているので、Excelなしでも単独で動き、JSON(ジェイソン)形式への保存とテキストへの保存を同時に行う。これにより他のアプリケーションで利用できる可能性がある。
JSON形式は、keyとvalueの組み合せによって最小のタグでデータを保存できる。また、読むことも容易だ。見出し項目と説明から成る辞書データに似た構成だが、入れ子にすることも可能であり、より複雑なデータ形式も可読性を保ったまま保存することができる。テキストベースの柔軟な構造データであり、簡易データベース(といっても数万件でもOKらしいが)のデータ容器に打って付けの形ともいえる。ただし、keyは一意でなければいけないので、保存の日時(分秒まで記載)をkeyとしてデータを保存する仕様にしている。テキストへの書き出しも同時に行っているので、こちらで見る方が簡単かもしれない。それでも、JSON形式を介して過去のデータにアクセスすることもできるようなので、それは可能なら工夫してみたいと思う。
「新・漢文エディタ」Ver.0.8では、既定のdata.jsonとdata.txtをプログラムファイルと同じフォルダにdataフォルダを作り、その中に同時に保存する。
フォルダ構成をいじらなければ、次回起動したときも「登録」作業だけで追記が可能だ。また、他のフォルダに置いた過去のJSONファイルがあれば、それを読み込んで追記をすることもできる。「登録」ボタンは2つあり、どちらの形式も選べる。ただし、既定のdata.jsonはそれが無い状態でも一から作成するが、他のフォルダにある.jsonファイルは一度作ったものでないと読み込めない。その代わり、ファイル名は自由に変更できる。また、文字コードの基本はユニコード(のUTF-8)なので、シフトJISなどだと文字化けしてしまうかと思う。
一昨日のVer.0.7がすでに14MB、Ver.0.8は20MBある。新機能を入れるたびに、ファイル容量が大きく増えるのは困るが、現代のPC環境ではまだ苦になるほどではないだろう。ただし、今使っているNinja HPのファイル転送容量制限は10MBなので、JyDivideで1.44MB単位に分割するため、今回は15個のファイルに分割することになった。「自己復元型」なので、糊刷毛アイコンの付いた最初のファイルをダブルクリックすると自動的にもとのファイルを作成する。一つダウンロードするのに1秒程度かと思うので、ダウンロードの手間を惜しまないでいただけるとありがたいです。
身辺の事情で5年以上更新が止まっていたが、この春から
Python(パイソン)とTKinter(ティー・ケー・インター)を使って、単独のEXE形式で旧来の機能の再現を始めた。まだ肝心の「書き下し文」への変換機能を付けていないが、白文やHTMLへの書き出しまでは実装した。(フォルダ構成等、工夫の余地は残っているが。)また、オマケ機能で「日記」(本文のみ出力)としても使えるようにプルダウン式のメニューを付け加えた。過去の漢文エディタについて「使い方が分からない。」という評価もあったので
(もっとも、「漢文エディタの試み」という、現役時代に紀要に載せた紹介記事をアップしてはいたのだけれど)、いずれ簡単なヘルプなどもこのプルダウンメニューの方に入れるつもりでいる。
基本的に、訓読漢文の《表記順》に「渡[|][二]渉す大河を[一]。」([|]は竪点(たててん)。ハイフンなんていう変な読み慣わしが通行している。)の要領でラベルボタンを活用しながら入力する。これにより各種変換が可能になる。返り点変換の後、HTMLに出力すると、やや訓読漢文らしい体裁で縦書き表示になるのが分かるかと思う。本文の左下には変換結果を表示(編集不可)、右下には書誌事項や注記、感想等を書き込める本文同様の複数行対応テキストボックスを配置した。本文への注記ボタン等は、今後加える予定。今のところヘルプはないが、画面を一枚だけにし、必要なことはバルーンヘルプ(見た感じが少々うるさいが)やステータスバーに表示する。
Pythonの自由度は相当なものである。高校の「情報Ⅰ」の教科書になっていたりするようでそれも読んだが、基本的にVBAと似ていてさらにずっと簡便な作りだ。それにもかかわらず、できることの範囲が非常に広い。今年初めて触ってみて、これならもしかしたら
自立型「漢文エディタ」が作れるかも、と思ったことだった。VBAで作っていたころは、もとがMicrosoftのアプリケーションを運用するための簡易言語だったから、MS Excelと切り離すことができなかった。そもそもがExcelを前提として作っていた。データの保存や活用には便利だが(だから今でも現役だ)、ある時Microsoftがセキュリティ面からマクロの実行を基本的に許可しない仕様に変更したりしたこともあり(今でもそのための準備が少し面倒だし、現役のとき少なくとも職場ではマクロが認められなかった。)、配布に支障が出たのもこのためだ。家主が手前勝手にあれこれ変更する構造的制約のためである。そんなこんなでがっかりしてしばらく怠けていると、今度は過去の本体ファイルを探すのが面倒だったりと、継続利用には多少不便な面もあった。Visual Basicを学んで独立ファイルを作りたいと思ったこともあったが、自分のような文系人間にはExcelやWordの操作ができるほど熟達できそうにも思えず、確かに洗練度は高いにしても、Microsoftベッタリのあり方、営利の対象の地位に置かれるのが何より好もしくなかった。
今回は、Excelとの連携は二の次とし、テキストファイルで書き出す形でデータを保管する。フォルダとファイル名は基本的に選択、書き込みできるようにした。(ただし、「登録」ボタンが欠けているので、これはなるべく早く加える。)
VBA版「漢文エディタ」は2020.6.26版が現在最終形だが、まだ十分実用に役立っている(WordやHTMLへの書き出しなど。もちろん書き下し文作成機能も)。ただ、細かいところの修正は不十分なままになってしまった。それに比べて、Python版はなんといっても既存の市販ソフト(アプリ)を必要としないのがウリで、
EXEファイル一つで用が足りる。しかもWebページ(これが大流行らしいが、まだあまり興味は出てこない。)やExcel等の操作も可能らしい。Python自身はコンソールで操作する言語だが、標凖装備のTKinterをかぶせることにより、Windowsライクなインターフェイスでアプリ化できるのがありがたい。統合開発環境としては
PyScripterを使った。これもよく出来たツールで、シンプルで分かりやすいインターフェイスがとてもよく、間違えたところはPython InterpreterのウィンドウにPythonが指摘してくれるので、それを参考にしながら、流行のGoogleの
Geminiを強力なTutorにしてどんどん出来上がってきた。ただし、もとのpyファイルを役割ごとに分割した方が作る際の見通しがよいかわりに、ファイル間の連携や変数のスコープと字下げの関係など、慣れれば自然に克服できるのだろうけれども、出来たつもりで動かすとすぐにエラーを出してくる気難しいところもPythonにはあり、理解につまずくこと頻りだった。それらについてはAIの恩恵を多々蒙っている。比較的シンプルで素直な短いコードによって複雑そうな機能を実装できたりすると、なんとなく賢くなった気さえしてくる。
その代わりコンパイルしたファイルの容量が必要なライブラリを取り込んで現時点で14MB以上あるため、過去の(無料に近い)ホームページサービスで10MB以上のファイル転送を許しているところが手近に見当たらず、そもそもアップロードでつまずいた。(今はHPはとんと下火のようだ。)しかたなく、昔懐かしいJyDivideというソフトで10ほどのファイル
(1つ大体1.44MB、この仕様は昔のDOS/Vのフロッピーディスク1枚分の容量による。これよりもうちょっと大きな分割単位はなく、これまた過去の遺物のMOの230MBになってしまう。極力ファイル数が減るようにしたつもりだが、現時点で10個になってしまうのがため息だ。もっとも、現在の通信環境なら個々のファイルは秒単位でダウンロードできるだろう。これは優れもののツールなのだが、分割・結合〔復元〕ソフトはその後あまり新手が出ていないようだ。)に分割したが、このソフトは「
自己解凍形式」で分割できるので、ダウンロードは10ほどもあって少々面倒でも、全部同じ場所に並べておいて、一番最初の「.exe」になっているものをダブルクリックして実行すれば、元のファイルが復元されるという仕組みで、JyDivideそれ自体すら必要ない。面倒でも、ダウンロードの手間を惜しまず、まずは試していただければと思う。作業記録もまた「日記」機能によって日時と一緖に半自動的に残すことができる。