[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/05/04(Thu) 16:15
投稿者名:Nemo
Eメール:
URL :
タイトル:
1バイト文字列を2バイト文字列へ変換したい
Openステートメントなどで文字列をGetする場合や、
APIのGetPrivateProfileStringなどでINIファイルから文字列を取得する際に、

Dim ret as string
dim length as long
ret = String(256, chr(0))
length = len(ret)

のように1バイト区切りの文字列を作り、
その後、VB内部で使う2バイト文字列のUnicode(?)に変換することは出来ないのでしょうか?
例えば、上に記した文字列にINIファイルの2バイト文字がある文字列を取得した場合、

MsgBox "hoge_" & ret & "_hoge"

とした場合、後ろにつけた "_hoge" は結合されず、表示されません。
このような時、どのような方法で解決出来ますでしょうか・・・?
ご教授よろしくお願いします。

投稿時間:2006/05/04(Thu) 17:09
投稿者名:Say
Eメール:
URL :
タイトル:
Re: 1バイト文字列を2バイト文字列へ変換したい
よくわかりませんが、

>ret = String(256, chr(0))
>のように1バイト区切りの文字列を作り、
retは512バイトになってますが「1バイト区切りの文字列」って何でしょう?

>MsgBox "hoge_" & ret & "_hoge"
>とした場合、後ろにつけた "_hoge" は結合されず、表示されません。
結合されています。MsgBoxでは\0以降が表示されないだけです。

>VB内部で使う2バイト文字列のUnicode(?)に変換することは出来ないのでしょうか?
コード変換をしたいという話なら、StrConvやADO.Streamについて調べてみては?

投稿時間:2006/05/05(Fri) 21:04
投稿者名:Nemo
Eメール:
URL :
タイトル:
Re^2: 1バイト文字列を2バイト文字列へ変換したい
レスありがとうございます。レス遅れました。

>>ret = String(256, chr(0))
この部分ですっかり256バイトかと勘違いしてたみたいで、、

>結合されています。MsgBoxでは\0以降が表示されないだけです。
のようですね。すいません、初歩的な勘違いしていました・・・。

INIから読み込むクラスモジュールを弄り直したら、取りあえず直りました。
お騒がせしました。m(_ _)m