掲示板 > Tiny Basic for Windows

文字化けが起きやすい……

<< < (2/2)

早起き三文:
返信致します。

問題があるのは

・print
・Gprint

のみで、約1000文字に一つあたりの割合で発生します。

また、変数や文字列変数は問題なく、起こりうるのは

print "テスト"

などと書いた時のみ、単純なその場でのテキストのみです。

print テスト$

などの文字列変数には問題はありませんでした。


文字はshift-jis(s)でtxtやtbtで普通に書いていますが
文字化けしたところを調べてみた所、バイト単位で

shift-jis(s)の
16進法で

全て81-45バイト数値、つまり(・)←の記号に表される事になっています。

例  print "テスト"
      print "テス・"


文字化けはすべてこれ(・)になっておりまして、他の文字での、謎の漢文みたいな文字

(囀とか羹とか)

では、文字化けは起こっていないと、解りました。

また、補足としまして、プログラム全体の容量としては約0.50MB(Tbasicインタプリタ除く)位です。

まあ、文を書いているときは勢いで雑に書いているので、何か変な入力をしたのかもしれません。

とはいえ、書いたその場で、文字化けがいきなり起こる訳でもないので、書いた物を全てバイト単位でチェックする訳にもいきませんし……

ただ、変化が起こるのは文字だけで、数字(変数)の変化は起こりません。

そのため、よほどの事が無い限り、プログラムは動きます。

こうなると、私のパソコンの問題なのかもしれません。


~イチャモンを付けたお詫び~

いやー、しっかし使い勝手のいいツールですねー

グラフ画面にグラフイックを取り込めば、ちょっとしたゲームも作れますし、コントロールパネルのボタンが、プログラム本体をENDコマンドで停止させても使えるという点が、個人的には地味に有効です。

コントロールボタンも40個が限度とはいえ、変数を使えばいくらでも流用が出来るという所が素晴らしい。



takeuchi:
返信ありがとうございます。

>問題があるのは
>
>・print
>・Gprint
>
>のみで

>文字化けしたところを調べてみた所、
>全て(・)←の記号に表される事になっています。
>例  print "テスト"
>      print "テス・"
>
>文字化けはすべてこれ(・)になっておりまして、


状況が分かりました。
問題は,プログラム読み込み時ではなく,そのプログラム実行時の文字列定数の表示での文字化けですね。

これは,同じプログラムで
何回やっても常に同じように起こるのでしょうか。
それとも,何回かに1度起きるのでしょうか。

少し調べてみます。もしかしたら,バグかも知れません。
ただ後者だとすると,見つけるのは難しいかもしれません。


追伸
補足です。

>コントロールパネルのボタンが、プログラム本体をENDコマンドで停止させても使えるという点が、
>個人的には地味に有効です。

この機能は,ダイレクトモード実行時に,ユーザー定義関数を利用するために作りました。
内部的には,Endは,実行ルーチンの終了で,それを実行した環境はそのまま残っています。
次に,Run等実行した場合は,前の環境を消去して,新しいプログラムの実行に入ります。

ですから,ユーザー定義関数のみを書いたプログラムを実行すると,実行結果としては
何もありませんが,内部的に,定義された関数は生きています。この状況で,ダイレクトモードから
定義した関数を利用することができます。

tbasicにはない関数を自分で定義して,実行するとその環境下,ダイレクトモードでその関数
を利用できます。

コントロールボタンの利用もその一つです。

早起き三文:
色々と調べた結果、特に文字化けを起こした箇所、状況に共通点はありませんでした。

サブルーチン、ファンクション、そしてメインルーチン(変な言い方ですが)に共通して、文字化けは発生していました。

ただ、文字列変数には起こらない事が確認されたため、代用案として、文字を全て文字列変数に格納してプリントするという方法はあります。

//例

print "テスト"



LET i$ = "テスト"
print i$

//

理論的には全く同じですので、取り合えずこれでやり過ごそうと思います。

相談にのって下さって、本当にありがとうございます!!

補足////

しかし、ユーザーフレンドリーな仕組みですねー
インタプリタの容量がBASICにしては大きいのも頷けます!!


takeuchi:
こんにちは。

>理論的には全く同じですので、取り合えずこれでやり過ごそうと思います。

取り敢えずは,それでお願いします。
私の方もコードをチェックして,問題の可能性が見つかれば,修正します。

早起き三文:
はい、そうさせて頂きます。

相談に乗って頂いて、本当にありがとうございます!!

Navigation

[0] Message Index

[*] Previous page

Go to full version