プロが教える店舗&オフィスのセキュリティ対策術

ランダムデータの任意の位置から読み込んだデータを印刷するとそのデータの最後のほうに 「・・・・」と印刷されてしまいます。
任意の位置のフィールドAの長さはstring型で20バイトであり実際のデータは10バイトしかありません。
データが10バイトだとすると、「・」が5個印刷され、データが4バイトだと「・」が2個印刷されます。2バイト文字で「大阪府」というデータを読み込んで印刷するとその後ろのほうに「・」が3個印刷されるという状況です。
2バイト文字を格納しているフィールドのデータのみこのような状況になっています。1バイト文字の場合はこの現象はまったく発生していませんし、直接文字列を印刷させた場合も発生しません。
何が原因でどうすれば直るのでしょうか。

A 回答 (1件)

漢字(2バイト文字)の格納範囲外(第1・2水準)の文字が送り込まれているようです。


スペースを送り込みましょう。
文字パレットを表示させると後ろの方に「・」が有ると思いますが、
それが表示されているのです。
文字のあとに1バイト文字が含まれてたりしてバイトずれでも起きる可能性が有ります。その場合、全く違う文字が表示され可能性があります。

または、
取り込みデータを作成したのはWindowsでしょうか?
それ以外のOSからの取得なら漢字変換時のエラーです。
外字などを使ってると発生する時があります。

漢字(2バイト文字)の格納範囲(第1・2水準)を調べて、その範囲外の
データが来たらスペースに置き換えるように作り直すように。
    • good
    • 0
この回答へのお礼

ありがとうございます。
文字コードをANSIに変換することで解決しました。

お礼日時:2001/07/09 01:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!