神野です。
Mon, 04 Aug 2003 17:44:38 +0900 ごろに
<JS20030804174438.30603365@xxxxxxxxxxx> の
"[H8-ML(3663)] Re:H8でグラフィック液晶表示で困っています。" のメールで
hiikosan_y_man@xxxxxxxxxxx さんは書きました。
> ご指摘の通りです。今私の使っている HEW(Ver1.0Ar7)
> では、2バイト文字を見るとエラーにしてくれます。
> 新しいHEWは解りませんが。
> ですから、2バイト文字をJISコードにするのは、自作すると思います。
> いつになるかは解りませんが・・・できないかもしれない・・・
khyo_910("面積", 0, 0);
を
khyo_910("\x4c\x4c\x40\x51", 0, 0);
に置き換えてしまうフィルタをかけてからコンパイルする、
ということでしょうか? そういう前提なら私もそうするかもしれません。
コメントは変換せずにそのまま残したいところですが、
コメントなのか文字列なのかまで判定させるのは面倒かも。
> 韓国の人から貰ったコード表では、0x3021 から 0x5f7e がハングル文字
> コードなんですが、実際は、0xb0a1 から 0xdffe で使用しているようです。
(snip)
> と言うわけで、日本語は、JISコードを採用しております。
使用する文字は、せいぜい数十文字程度ですよね?
内部で使うだけのコードですから、あまり「(規格化された)文字コード」に
こだわる必要はないのでは?
0x01 日本語の面
0x02 日本語の積
...
0x81 ハングルの面
0x82 ハングルの積
...
みたいに、「そのプログラム専用」にコードを割り振ってしまうのは
どうなんでしょう?
外部にも出力する、例えば、
・RS232Cで接続されたパソコンに出力するデータに使う
・ファイル(CF等)にロギングする
等であれば、独自のコードではなく、相手が理解できるコードを使う
必要があります。相手は「0x01が面」だなんて知りませんから。
そこは、例えば FontDataType にメンバー変数を追加して、
「外部に出力するコード」を書いておけば、変換は簡単にできるでしょう。
そういう独自のコードを使う場合、ソース上では
khyo_910("面積", 0, 0);
とは書けず、
khyo_910("\x01\x02", 0, 0);
とする必要があるため、メンテナンス性に劣るかもしれませんが、
そこは
・コメントで回避する
・フィルタで置き換えるようにする
とか。
マクロでもいいかもしれません。
#define CHAR_JP_MEN "\x01"
#define CHAR_JP_SEKI "\x02"
#define CHAR_KR_MEN "\x81"
#define CHAR_KR_SEKI "\x82"
khyo_910(CHAR_JP_MEN CHAR_JP_SEKI, 0, 0);
みたいに。
--
神野健吾 <kengo@xxxxxxxxxxxx>