ページ 11

表示した文字が崩れる

Posted: 2005年12月09日(金) 11:16
by ケースケ
4.12.01で起こった問題ですが、

http://www.geocities.jp/kesuike_kisamay ... r_Code.txt
(少し文字を崩してあるので直接書きません)


このファイルをプロジェクトエディタで開くと、Case 49の最後からCase 50の最初にかけて文字が壊れてしまいます。
エディットボックスで正しく表示されていないだけかと思ったのですが、
コンパイルで引っ掛かったのでメモ帳で確認してみると、ファイルの文字自体が壊れていました。

プロジェクトエディタで上書き保存すると文字が壊れるのですが、崩した文字をペーストするのはエディタとしてはルール違反なのでしょうか?

Posted: 2005年12月09日(金) 12:06
by 山本
ダブルクォートで囲まれた文字列データであっても、Shift-JIS以外の文字コードは利用できません。Shift-JISが認識できない(文字化けしてしまう)文字列バッファを扱う場合は、バイナリデータとして外部ファイルから読み込むことをお勧めします。

ダブルクォートで囲まれた文字列データ内でも、コンパイラは下記のような文字コードに反応する恐れがあります。

・0 … NULL文字
・1 … 内部構造上、コンパイラがシーケンス文字として利用
・10 … 改行コード(\n)

ちなみに、プロジェクトエディタのほうでは、文字コード0を空白文字に自動変換してしまう機能なども盛り込んでありますので、バイナリデータは編集なさらないことをお勧めします。


P.S.
こんなことを言っていますと、バイナリエディタとバイナリリソース管理が、欲しくなりますな。要件等です。

やっぱりそうですか・・・

Posted: 2005年12月12日(月) 18:18
by ケースケ
この件でふと思ったのですが、
ダブルクォートで囲まれた文字の内容がバイナリデータであると宣言を行えるようにしたらどうでしょうか?

Exによる文字列表記のように、

Bn"*************"

のような感じで使えたら便利かと思います。
(バイナリだから「Bn」?)

それだったら

Posted: 2005年12月13日(火) 21:09
by konisi
今のところではChr$関数等を使った方式で出来ますね。
コードが滅茶苦茶長くなるのが欠点ですが、Shift-JIS以外のコードでもやりようによっては外から読み込まずに表示することが可能になると思います。

Ex表記で...

Posted: 2005年12月14日(水) 11:48
by Tomorrow
ケースケ さんが書きました:Exによる文字列表記のように、

Bn"*************"

のような感じで使えたら便利かと思います。
konisi さんが書きました:今のところではChr$関数等を使った方式で出来ますね。
Ex表記によれば、\xを用いて16進数表記で文字コードを指定できるみたいですが、これでできませんか?
(注:AB付属のHTMLヘルプには載っているのに、ヘルプセンターには何故か載ってません)