--------------------------------------------------------------- "Note for UniFEP V2", a simple text editor. Document Ver. 05 2003 ktkawabe@hi-ho.ne.jp --------------------------------------------------------------- Noteは、UniFEP V2以上のUniFEP環境下で動作する簡単な日本語テキス トエディタです。 UniFEP V2以前のバージョンのUniFEP環境では動作しません。 1: 良い点 2: 制限 3: UFCodecのインストール 4: 使い方 5: 文字コード関連の機能 6: 関連付け 7: XJMailで利用する場合の注意 8: インストールに関するその他の注意点 9: 利用条件等 10: 誰が書いたものか 11: その他 12: プログラマの方への情報 --------------------------------------------------------------- 1: 良い点 普通のテキストエディタなので、普通に使えます。 少なくとも、そうであったら良いなあと思います。 様々な文字コードのファイルを表示することが出来ます。 日本語(ISO-2022-JP (所謂JIS)、SHIFT_JIS、EUC-JP、UTF-8) につい ては、文字コードの自動判別に対応しています。 従って、日本語のテキストファイルについて言えば、大抵の場合文字 コードを意識せずに表示/編集を行う事が出来ますし、文字コード変換 用に使用する事も出来ます。 2: 制限 UniFEP(以下ではUFと略記します)環境以外の環境では動きません。 また、UF V2以前のバージョンのUF環境でも動作しません。 日本語の描画は完全にUFに依存しています。Note側で特殊な事は何も やっておりません。従いまして、標準アプリ(Word等)で表示の乱れが 生じている場合には、残念ながら Noteでも表示の乱れが生じます。 インライン変換は出来ません。日本語入力には、UFの入力ウィンドー を使用して下さい。 改行コードはMac形式であれ何であれDOS形式に変換されます。 検索および置換において検索文字列が存在しなかった場合、 Cannot find "検索文字列" という様なメッセージが出るのですが、検索語に日本語が含まれていた 場合、UniFEP V2ですとこの "検索文字列"の日本語部分が白い四角で表 示されます。これはUniFEP V2の仕様であり、Noteの不具合ではありま せん。 3: UFCodecのインストール Note自体のインストールは、特に説明を要する点はありません。 単にNote.sisをインストールすればよいのです。(万一問題が生じた場合 や分からない点がある場合には、「8: インストールに関するその他の注 意点」をご覧下さい。) しかし、NoteはUniFEPのUFCodecという機能を利用しておりますので注意 が必要です。 御使用のUniFEPのバージョンや発売時期等によりましては、UFCodecが標 準ではインストールされていない場合があります。 例えば、日本で販売された UFV2は、そのままでは UFCodecがインストー ルされません。従って、株式会社エヌフォーが提供する "UniFEP V2サービスアップデート" をインストールするか (この場合日本語関連のファイルだけがインストー ルされます)、同社が提供する UFCodecの全てのファイルをEPOCデバイス 上の所定のフォルダにコピーする必要があります (この場合、韓国語や中 国語のファイルもインストールされるので、フォントさえあれば韓国語や 中国語の表示が可能になります)。 御手持ちのUniFEPにUFCodecがインストールされているかどうか確かめる 手っ取り早い方法は、Noteをインストールし、起動してみる事です。 "Not Supported"というメッセージが出て起動に失敗したら、以下の記述 を参考に UFCodecをインストールして下さい。 UFCodecをインストールするには、2つ (乃至3つ)の方法があります: A: 株式会社エヌフォー様のテクニカルサポートページ http://www.enfour.co.jp/psion/support/index.html で配布されている、「UniFEP V2 サービスアップデート2」 をインストールすると、UFCodecのうち日本語に関係するものが "UniFEP Encoding Convertors 2.01" としてインストールされる模様です (この場合、韓国語や中国語の キャラクタセットは使用出来ません)。 (A': または、上記アップデータをインストールせずに、同社の 「UniFEP V2モジュールアップデートページ」 http://www.enfour.co.jp/psion/support/v2_saishin.html にある「文字コード変換モジュール」をインストールしても、上記 アップデータに含まれる "UniFEP Encoding Convertors 2.01" が インストールされます。が、エヌフォ社はこの方法を推奨していま せん。) B: 日本語、韓国語、中国語の表示を行いたい場合、同社のUniFEP SDKのページ http://www.enfour.com/sdk/ から、UFCodec http://www.enfour.co.jp/psion/development/download/sdk/codec.zip をダウンロードして、その中身のうち \system\libs に UFCJIS.DLLとUFCKSC.DLLを \system\unifep に UFCODEC.DLLを \system\unifep\encoding に 残り全部を コピーして下さい。古い\system\unifep\encodingの中身は、捨ててし まって良いと思われます(が、それで絶対に問題が生じないかというと、 多分大丈夫ですが保証は出来ません)。 御自分の利用したいキャラクタセットにより、A: と B:の方法を適当に 選択して下さい。 既にサービスアップデートをインストール済みの方でも、例えば韓国語 の表示を行いたいのであれば、重ねて B:の方法で韓国語と中国語に関 するモジュールを追加する事が出来ます (これも、絶対に問題が生じな いかどうかは保証しかねます)。 4: 使い方 基本的な使い方に関しては、特に説明を要する事は無いでしょう。 全ての編集操作はEPOC標準のキーに割り当てています。 CopyはCtrl+c ズームレベルの変更はCtrl+m ツールバーの表示/非表示はCtrl+t 等など。万一分からない場合でも、一度メニューを見ていただければ大体 お分かりいただけるはずです。 一部の機能はメニューには表示されないかもしれません(例えばCtrl+bで 太字表示)ので、他のアプリの操作から適当に類推して下さい。 意外に知られていない機能としまして、フォントの設定機能があります (キーは御自分で調べてみて下さい ;-)。が、このフォント設定はNoteを 終了させるとリセットされてしまいます。 日本語入力は何らかのFEP (例えばUniFEPの入力ウィンドー)から行います。 インライン変換は出来ません。 5: 文字コード関連の機能 Noteはファイルを開く時に、可能な限り文字コードの自動判別を行います。 判別対象となる文字コードは ほぼ日本語だけで、 ISO-2022-JP (所謂JISコード)、SHIFT_JIS、 EUC-JP、UTF8 の4つです。その他の文字コード、例えばEUC-KRなどは、きっと韓国語版の UniFEPさえあれば表示も入力も出来るでしょうが、文字コードの自動判別 には対応しておりません。 ファイルを開くと、文字コードの自動判別が行われ、判別に成功した場合 には 文字コード名が画面上方にちらっと表示されます。 全ての場合に完璧に判別が出来るわけではありませんが(原理的に不可能 なので)、普通の日本語の文章であれば、それなりに正しく判別が行われ るでしょう。 複数の可能性があって文字コードを一つに絞ることが出来なかった場合に は、文字コードをユーザーが自分で指定せねばなりません。文字コード選 択を促すダイアログが現れますので、適当なものを選んでください。 このダイアログで表示される、各文字コードを表す文字列(SHIFT_JIS等) は、UFCodecに依存しています。UFCodecのバージョンによっては、ちょっ と分かりにくいものもありますので注意してください。例えば、2001年 11月30日現在 http://www.enfour.com/sdk/codec.zip に置いてあるものでは、UTF8の事を単にUnicodeと呼んでいます。 このダイアログをキャンセルしてしまった場合、文字コードには「通常使 う値」(後述)が使用されます。 判別間違いがあって、文書が化けて表示された場合には、慌てずに Ctrl+R (Menu -> File -> More -> Reopen with another Encoding) を押して下さい。 (文字コードの自動判別はktkawabeが書いたものです。間抜けな判別間違い があったとしても、かみとさんを恨んではいけません。) これは、現在の文書を、ユーザーの選択した文字コードで書かれたものであ ると思って開きなおすコマンドです。正しい文字コードを選択すれば、正し い表示が行われるはずです。 それでは、何か適当なファイルを開いてみてください。ファイルの中身は正 しく表示されましたか? では、現在開かれているファイルの文字コードを確認してみましょう。 Shift+Ctrl+C (Menu -> File -> More -> Document Encoding) は、文字コード選択ダイアログを表示するコマンドです。このダイアログ は、必ず「現在の文字コード」が選択された状態で起動しますので、現在 の文字コードを確認するために使用する事が出来ます。ESCを押してキャン セルすれば、ファイルの文字コードには全く影響しません。 もちろん、このコマンドを使用して、ファイルの文字コードを変更する事 も可能です。 例えば、現在開かれているファイルが EUC-JPで書かれたものであるとしま しょう。Shift+Ctrl+Cを押すと、EncodingとしてEUC-JPが選択された状態 でダイアログが起動します。EncodingにISO-2022-JPを選択し、OKボタンを 押しますと、「現在の文字コード」はISO-2022-JPになります。この状態で Ctrl+S (Save)コマンドを使用すれば、現在開かれている文書の内容が、文 字コードがISO-2022-JPでもとの文書に上書きされます。この様な事をしな い限り、Ctrl+S (Save)や Shift+Ctrl+S (Save as)コマンドで文書のセーブ を行う時には、その文書を開いたときと同じ文字コードが使われます。 それでは、ファイルを開いたのでは無く、新規にファイルを作成したときに は文字コードはどうなるのでしょうか? 答えは、「通常使用する文字コード」(Preferred Encoding)で設定された値 になる、です。この値がSHIFT_JISであれば、新規ファイルの文字コードは SHIFT_JISとなります。 「通常使用する文字コード」の設定にはショートカットキーはありません。 メニューから Tools -> Preferred Encoding を選択してください。文字コード選択ダイアログが現れますので、お好きな 値を設定してください(初回起動時には、SHIFT_JISが設定されています)。 6: 関連付け インストールすると、テキストファイルのNoteへの関連付けが行われま す。これが厭な方は、 \system\apps\note\note.aif を削除して下さい。アイコンが "?" マークになりますが、テキストファ イルへの関連付けは解除されますし、Noteの機能はこの状態でも全て使 えるはずです。 なお、EPOCで言うテキストファイルは ".txt"という拡張子を持ったファ イルの事ではありませんし、中身がASCIIであるテキストの事でもありま せん。あるファイルが あるファイルタイプ(例えばtext/plain)に属する かどうか知るために、EPOCはそのファイルの 拡張子 中身(ただし中身全体が評価されるとは限りません) を評価し、そのファイルタイプに属すかどうかの信憑性を4段階に分けて 格付けしているのです。 あるファイルを貴方が「これはテキストである」と思ったとしても、シス テムはそう判断していないかもしれません。 任意のファイルの現在のファイルタイプは、システム画面でctrl+pを押す 事で見ることが出来ます。 この格付けを実際に行っているのは、レコグナイザと呼ばれる種類のプロ グラムです。Noteに含まれるRECSJIS.MDLというレコグナイザは、あるファ イルがSJISテキストであるかどうかの格付けを行うためのものです。これ は Noteのはインストール時に自動的に一緒にインストールされます。不用 な場合は後からコントロールパネルでアンインストールして下さい。 さて、EPOCが関連付けに際して参考にするのは、ファイルの中身の格付けだ けではありません。あるアプリケーションと特定のファイルタイプの関連付 けにも優先度というパラメータがあるのです。 各アプリケーションは 関連付け要求を行うファイルタイプ一つにつき一つ、 優先度の値を割り振られています。 (ちなみに優先度は 高い、普通、低い、他に何もなければ仕方なく使う、 の4つです。) あるファイルに対する関連付け優先度が「高い」アプリケーションと「普通」 のアプリケーションがあると、もちろん「高い」方のアプリケーションに関 連付けが行われます。 Noteでは、ファイルタイプが "text/plain"の場合の関連付け優先度は 「普通」、"text/plain;charset=shift_jis"の場合は「高い」になって いますので、少なくともtext/plainの優先度が「高い」である様なアプリ ケーションからは関連付けを奪われる可能性が高いと言えます。 これをどうしても変更したい場合は、申し訳ありませんがソースを読ん で御自分で対応して下さい。 7: XJMailで利用する場合の注意 XJMailで外部エディタとして使用するには、通常使用するエンコーディ ング(Preferred Encoding)をSHIFT_JISにしておかねばなりませんので ご注意下さい。 XJMailで外部エディタとして使おうとすると、"bad file type"という 謎のエラーメッセージが出て使えません、という御報告を何件か受け ました。この場合には、XJMailのマニュアルをもう一度良く読んでい ただき、外部エディタのフルパスを指定せず 単に"Note"と記述する様 にしてみてください。 8: インストール時のその他の注意点 アンインストール時や、古いバージョンの上に新しい物を上書きでイ ンストールする場合等、"AppArcServ"という文字列を含むエラーメッ セージが出る場合がありますが、これはレコグナイザの扱いに関する EPOCのマイナーな不具合で、実害はありません(このエラーメッセージ が出ても、アンインストールやインストールは正常に行われます)。 それ以外、特にトラブルは無いと思いますが、万一トラブルがあった 場合には http://www.hi-ho.ne.jp/ktkawabe/XJMail/XJMail.txt の注意書きを読んで下さい。参考になる情報が記載されています。 なお、現在までに二件(いずれもRevo Plusです)、 "SISファイルをPsiWinまたはMacConnectでRevo Plus本体に転送して からインストールしようとすると、インストール出来ませんでした。 MacConnectもしくはPsiWinを使用してインストールするとうまく行き ました" という御報告を受けております。何だか良く分かりませんが、インス トール出来ないとお悩みの方は試す価値があるのではないでしょうか。 ついでながら、RECSJISというDLLは、インストール時の指定に関わり 無く C:ドライブにインストールされるはずで、これは異常ではあり ません。 9: 利用条件等 「JMemoは UniFEP V2では使えない」と思っている人の利用を禁じます、 という事はありません ;-) 本ソフトウェアに付属する NOTE_COPY.TXT の内容に抵触しない限り、バイナリであれソースコードであれ御自由に 使用なり改造なり再配布なりなさって下さい。 例えばRECSJIS.MDLだけを御自分のソフトウェアに同封して配布なさり たい場合でも、NOTE_COPY.TXT に従って配布なさる事は可能です。 10: 誰が書いたものか 以下に示すのは、ktkawabeが配布するNoteパッケージに関して著作権を 有する人のリストです。(ktkawabeが配布していないものについては、 他の方も著作権を保持していらっしゃるかもしれません): このプログラムの主な作者は ktkawabe@hi-ho.ne.jp です。 かみとかずき さんは、Read-Only属性の時に編集出来ない様にするため の処理と、複数の文字コードに対応する仕組みを追加して下さり、また 稀にメモリ不足時等に生ずるメモリリークバグを潰して下さいました。 11: その他 バグとか不具合があった場合、御自分でフィクスして公開して下さった 後で作者まで御連絡いただければ最も嬉しいです ;-) それはそれとしまして、ktkawabeの連絡先は ktkawabe@hi-ho.ne.jp です。 12: プログラマの方への情報 このプログラムは、Symbian の C++SDKに含まれる rtextedというサン プルコードを書き直したものです。 * CRichTextをCGlobalTextに変更 * ドキュメントベースでは無いので、Documentクラスを空っぽに * AppUiにデータを持たせる * UFのエンコーダを使用 (2001年12月、UFCodecを使用する様に変更) * どうせER5でしか使用しないので、recognizer-dllを書くのをあき らめ、ER5のMIMEレコグナイザ機能を使用 というのが変更の主な内容です。 表示以外の部分については JMemoのコードからも引っ張って来ており ますが、表示は全てEPOC/UniFEP環境に任せています。 (日本語表示に頭を悩まさなくて良いのは、JMemoのプログラミングに 比べて大変楽でした。) RECSJIS.MDLは、EPOCのファイルタイプに"text/plain;charset=shift_jis" を新たに定義するためのDLLで、ER5専用です。ER3以下で使用する事は 出来ませんので御注意下さい。 ファイルの拡張子に関わらず、中身がSJISテキストであればCertain, 拡張子に関わらず、SJISに含まれない文字コードがあればUnlikely, テキストだがSJISの2バイト文字が含まれず、しかも.txtでない場合は Possible, テキストだがSJISの2バイト文字が含まれず、しかも.txtである場合は Probable を返す様になっています。 ---------------------------------------------------------------