- 163 名前:デフォルトの名無しさん [2017/07/13(木) 23:00:12.66 ID:jVjH3qh4.net]
- >>140 DBCSがらみの処理は、ほぼ終わりが見えてきた。
主だったルーチンは C:\tool\FreeBASIC\inc\win\shlwapi.bi を参考にしてくれ。 DBCSがらみは C:\tool\FreeBASIC\inc\win\winnls.bi だけではあるが、ファイル名処理に絡んで一部ルーチンが他の*.BIにも存在する。 Fun StrCmpNI()等で、DBCSの比較が可能なシステム参照が存在する。 文字関数は、makoto-watanabe.main.jp/freebasic/PgKLen.html 等が存在する。 VBでは、文字数で規定している。全角文字の「123」がVBでは3文字、FBでは6文字になる。 文字数で位置を指定する場合と、文字位置(DBCS1バイト目)を指定する場合の2つを作成する必要がある。 VBに移植したときに、削除したルーチンを復活させる必要もある。これは、表示文字に限って使うルーチンで、 QBmidString(Astring, STpoint, Haba) というMID$()関数を想定したときに、 文字幅 Haba の値によって、DBCSの途中で途切れてしまう場合が発生する。 途切れた文字を含めて返す場合と途切れた文字を削除して返す場合の2通りを考える必要がある。 QBmidString("123", 3,3)で、「23」と返すか「2」と返すかの違い。 同様に、Left$(), Right$()でも発生する問題だ。表示ルーチンなので、じばけを防ぐ程度の問題であり、少しぐらい表示部位が乱れても気にしない(余分に空白を確保しておく)場合となる。 この後に待っているのが、フォント関係。 makoto-watanabe.main.jp/freebasic/CptAscii.html#start なんてあるけど euc.jp/i18n/charcode.ja.html をカバーしないと日本語化が終了しない。 現時点において、実行中にフォントの切り替えに成功していない。前途多難である。
|

|