掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
漢字混じりの文字列を、固定長にするには? (ID:113931)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>固定長文字列を設定していますが、漢字データが入るとデータ長が >変わってしまいます(漢字の個数分だけバイト数が多くなる)。 なにか勘違いがあります。 VBは内部処理はUnicodeで、半角も全角も必ず「1文字 = 2バイト」になります。 従って、 >dim wk as string * 10 は「10文字固定長 即ち 20バイト固定」で宣言・定義していますから [ああいいう ]は 前半の10バイトに平仮名5文字、 後半の10バイトに半角スペース5文字が入り、 データ長は20バイトで変化していません。 しかし、例えば「Shift-JIS換算で10バイトにしたい」なら vbFromUnicodeでStrConvしてバイト配列に放り込み、 第0要素〜第9要素を抜き出す、などで取得できますが、 10バイトに満たなかったときのパディングと 10バイト目が2バイトコードの1バイト目だったときの 処理は別途必要です。 また、処理後、ファイル保存するなら、 そのままバイト配列をBinaryで書き出せばいいですが、 TextBoxなどに表示したいなら、vbUnicodeでStrConvして、 一旦Unicodeに戻す必要があります。 (TextBoxはShift-JISしか表示できないが、 内部でUnicode→Shift-JIS変換をかけているので、 Textプロパティに渡すときはUnicodeでなければならないため。)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.