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 で発言したものの再録です
Tags: Newton