dポイントプレゼントキャンペーン実施中!

vb6.0でのGetPrivateProfileStringによるINIファイルの読み込みで返り値がおかしくなります。

[Section1]
S00LIST00=アナログ汎用,analogdata.ini
S00LIST01=デジタル汎用,digitaldata.ini

と2つキーが書いてあるのですが、
GetPrivateProfileStringの戻り値で、
S00LIST00が、
 戻り値:27
 読み込み値:「アナログ汎用,analogdata.ini 」
 ※「」の記号は、文字列がどこからどこまでかをわかりやすくするため
  記載したもので、読み込まれたものではありません。

正しく、期待している値は、
 戻り値:21
 読み込み値:「アナログ汎用,analogdata.ini 」
です。

S00LIST01が、(正しくは、)
 戻り値:28
 読み込み値:「デジタル汎用,digitaldata.ini 」

正しく、期待している値は、
 戻り値:22
 読み込み値:「デジタル汎用,digitaldata.ini」
です。

となります。

.iniのあとは、vbNullChar+スペース(読み込みバッファとしてSpace(512)で取得)
になっているようです。

上記の違いってなぜなんでしょうか。

A 回答 (2件)

標準APIに全角文字なんて概念はありません(日本独特のものだから)


全角含む文字数として認識させたいのであれば独自に処理する必要があります

全角1文字=2バイト って理解してればあってますよね
    • good
    • 0
この回答へのお礼

ありがとうございます。
理解できました。

GetPrivateProfileStringの戻り値を使って、mid関数にて文字列取り出していたため、
全角を1とカウントするか、2とカウントするかの違いが出てたようです。

お礼日時:2013/05/20 01:16

大ざっぱに言えば、その値は「シフトJISで表現した時のバイト数」です。


ある意味、as isです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
理解できました。

GetPrivateProfileStringの戻り値を使ってMID関数にて取り出し処理をしていたので
GetPrivateProfileStringの文字列のカウントとMID関数の文字列カウントのカウントの違いが
出てたみたいでした。

お礼日時:2013/05/20 01:18

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