Programming of NTEncoding (2) ============================= ども、GNUE(鵺)っす。  NTEncoding講座の2回目です。  今回は英語の通信ソフト文字化けした日本語のテキストをNewtonで  見れるようにします。具体的には Newton 上で選択したテキストを  変換するプログラムをつくります。  【STEP1】    NTK の Inspector から実行しますので、SDK に入っている testNTE    をインストールして下さい。testNTE は Inspector で NTEncoding    の API を使えるようにするために NTE というグローバル変数を定    義します。SDK のマニュアルにある NTE_methods はすべて NTE と    読み換えます。  【STEP2】    では次に、英語の通信ソフト(例えば NCU)で日本語のテキストを    Notes に持ってきましょう。NCU なら Import 機能を使えば簡単に    テキストを持ってこれます。    さて、このとき日本語のテキストが文字化けしているのがわかるか    と思います。これは、ASCII → UNICODE で変換されていますので    Shift JIS でもなければ、UNICODE でもない不思議なコードになっ    ています。NTEncoding ではこれを '|string.sjis| (sjis のよう    な UNICODE という意味)と表記し、純粋な ShiftJIS ('sjis)と    区別します。    SDK に付属の「ShiftJIS コード変換」では 'sjis, '|string.jis|    それぞれに対応する '|sjis:GNUE|, '|string.sjis:GNUE| が定義    されています。  【STEP3】    では、Newton と NTK の Inspector を接続して、Inspectorから次    のソースコードを入力して下さい。Newton側で問題のテキストを選    択してからこのコードを実行します(ソースコードを選択してenter    、詳しくは NTK のマニュアルを参照のこと)。    さて、うまく日本語のテキストになりましたか? ------- begin local offsets := getHiliteOffsets(); if offsets then begin foreach v in offsets do begin local count := v[2] - v[1]; local str := NTE:code2uni( // ShiftJIS もどきを UNICODE に変換 v[0].text, '|string.sjis:GNUE|, {offset: v[1], count: count} ); v[0]:HandleInsertItems( // 変換した文字列で置き換えます { insertItems: str, insertOffset: v[1], replaceChars: count }); end; end; end; ----------------------  【STEP4】   さて、これを単体のソフトウェアとして完成させるのは各自やってみて下さい。   パッケージにするには前回の "NTEncoding.stream" を使います。また、NTE   は NTE_methods にします。   たぶん TapBar から使えるようにするのが簡単でしょう。TapBar は Basuke   さんのホームページから SDK をダウンロードできますので、是非挑戦してみ   て下さい。 TapBar (C) Basuke. http://www.saryo.org/basuke/ --- (c)1997 GNUE. ※このドキュメントは NIFTY-Serve の FNEWTON で発言したものの再録です