【QBASIC互換!?】FreeBasic【GPL】 2 [無断転載禁止]©2ch.net (430レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
173
(1): デフォルトの名無しさん [] 2017/08/09(水) 22:20:18.40 ID:LLNdI7OD(1) AAS
アイコン関係、初期化ルーチンで任意のファイルのアイコンに切り替える、という、VB時代の処理をあきらめた。
何かの事情が発生したときの処理に対応という方針で、いくつかのサブルーチンを作成した。

ここに、資源関係の処理を入れようとして、いくつかのサブルーチンを作成。
サブルーチンコールを管理している、つまり、Declear文が羅列されている、TakaCon1.BI作成ルーチンに登録するようにして、
大域変数は、全部共通にして、資源関係のサブルーチンの定数と、資源の定数を分離。
個別に処理する時には、#define 指定文字を指定するが、一括処理する場合は指定しないで、全部羅列した処理系を作成した。
一例だと、 IDC_BTN1の処理系に入ったら、 IDC_BTN?の新規割り込みを一括して抑制、
処理が終わったらば、もとの状態に戻すというルーチン。
大域変数を使えば簡単なんだが、Iniファイルに保存しておくようにした。
とここまでやるのに、結構時間がかかってしまった。

>>163
163(2): デフォルトの名無しさん [] 2017/07/13(木) 23:00:12.66 ID:jVjH3qh4(1) AAS
>>140 DBCSがらみの処理は、ほぼ終わりが見えてきた。
主だったルーチンは C:\tool\FreeBASIC\inc\win\shlwapi.bi を参考にしてくれ。
DBCSがらみは C:\tool\FreeBASIC\inc\win\winnls.bi だけではあるが、ファイル名処理に絡んで一部ルーチンが他の*.BIにも存在する。
Fun StrCmpNI()等で、DBCSの比較が可能なシステム参照が存在する。

文字関数は、外部リンク[html]:makoto-watanabe.main.jp 等が存在する。
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$()でも発生する問題だ。表示ルーチンなので、じばけを防ぐ程度の問題であり、少しぐらい表示部位が乱れても気にしない(余分に空白を確保しておく)場合となる。

この後に待っているのが、フォント関係。
外部リンク[html]:makoto-watanabe.main.jp
なんてあるけど
外部リンク[html]:euc.jp
をカバーしないと日本語化が終了しない。
現時点において、実行中にフォントの切り替えに成功していない。前途多難である。
 のDBCSがらみの処理がでてきてしまった。
カンマ形式のファイルの内、最も単純な形式、「,」で区切りの分割ルーチン。
二バイト目が,の場合におかしなことになってしまう。
かって一世を風靡した表計算ソフトのカンマ形式ファイルの書式、文字は"で囲む、という処理をしていた理由が分かったような気がする。
両脇を#で囲んだカンマ形式のファイルもあった。この理由もわかったような気がする。区切り記号が2バイト以上だったらば楽なんだけど、1バイトの「,」の処理には苦労した。
パーツの表題として、DBCSを記載して、RCファイルを読み取ると、この現象がわかるかと思う。
Byte単位の位置で返す Instr文、文字数で返すInstr文、DBCSとSBCSを区別しないシステム関数のInstr文の3つか゛必要な理由がわかってもらえると思う。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s