Daigo V2.2

Daigoは、基本機能の部分は概ねできたと思っていますが、各種の拡張を考えており逐次バージョンを区切って公開しようと考えています。

V2.2では、以下の機能を追加しました。

(1)行単位の全角・半角指定

V2.0で「記号」「数字」「アルファベット」毎に全角・半角の指定をできるようにしましたが、今回は定義する単語毎でも全角・半角の指定をできるようにしました。

開発している間に気がついたのですが、単語毎に全角・半角指定する場合は「常に全角」は不要になります。

そのような場合は、最初から単語を全角で登録すれば良いですから…
気がつかずに「常に全角」を実装する方法を一生懸命考えてしまいました。

この機能は、登録単語毎に全角・半角の指定をしたくなることが私自身にもありましたので、必要に迫られて作成しました。

 

(2)単語登録エラー処理

登録する単語に重複や、文法上のエラーがあった場合にメモ帳で開く機能を追加しました。

本当は、本格的な単語登録ようの機能を開発すれば良いのかもしれませんが、単にテキストフィルを登録・編集するのに、エディタのようなものを作る気がしませんでした。

そこで、お手軽に「メモ帳」を使うことにしたのですが、ちょっと問題がありました。

エラーが発生したら、メモ帳を開いてエラー行にジャンプさせようとしたのですが、なんとメモ帳には指定行へのジャンプ機能がないということを知りました。
本当にメモ帳って基本的な機能しかないことを改めて認識しました。

そこで、メモ帳をあきらめて「ワードパッド」を検討したのですが、なんとこちらも指定行へのジャンプ機能がありませんでした。

もう指定行へのジャンプはあきらめようと思ったのですが、強引な方法を思いつきました。メモ帳で開いた後に、カーソルキーの「Down」を指定行回数送付するというものです。あきらめが悪いですね。

この強引な方法で指定行のジャンプが実現できましたが、そこに行きつくまでには「メモ帳の秘密」を知らなければなりませんでした。

メモ帳の秘密

瞬時にエラー行までジャンプ?するので「やったー」と喜んだのもつかの間、テストしているうちに、エラーによっては指定行からずれた位置にカーソルが飛びます。バグを見つけようと色々試しても原因が掴めません。「もうこの機能は諦めよう」と考え始めた時に、長い単語登録の後にジャンプ位置がずれることが分かりました。

調べていくうちに驚くべきことが分かりました。

メモ帳は「右端で折り返す」をチェックしていると、長い行があった場合右端で折り返すのですが、本当に改行コード(正確にはCRCRLF)を入れてしまい、複数行としてカウントしていることが分かりました。

勝手に改行コードが入ると困るので、ファイルに保存するときは「CRCRLF」を取り除くという驚くべき仕様でした。

このため、途中で長い行があると、指定行よりも上にジャンプしてしまうことが分かりました。こんな開発をしなければ、絶対に知ることの無いメモ帳の秘密を知りました。

 

 

現在、V2.3を登録申請しています。

前からの課題であったクリップボードの挿入機能、およびクリップボードの一時登録を実装しました。この機能も、かなり便利だと思いますのでご期待下さい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です