はじめまして、VB初心者のもとおといいます。
GetPrivateProfileString()で
可変なiniファイルの文字列を読み込む時には、
バッファのサイズをどうしたらよいでしょうか。
とりあえず、適当なサイズのバッファを用意して読み込んでみて、
バッファ一杯まで読み込まれているようであれば、あらためて
バッファサイズを増やして読み直してみては如何でしょう。
魔界の仮面弁士さん、早い返答ありがとうございます。
バッファがいっぱいまで読み込まれているのを判定するにはどうしたらいうことでしょう。
それとあらためて増やすというのはどういうことでしょうか。。。
お手数おかけしてすいません。
> バッファがいっぱいまで読み込まれているのを判定
GetPrivateProfileString で String 型の変数に読み込んだ場合、
<String 型の変数> = <読み込んだ文字列> & vbNullChar
となります。
String 型の変数のサイズが小さい場合
<String 型の変数> = <読み込んだ文字列の先頭XXバイト>
のようになり、 vbNullChar は含まれません。
それなので、次のような感じですね。
Dim s As String
Dim i As Integer
Dim l As Long
i = 0
Do
i = i + 1
s = Space(256 * i)
l = GetPrivateProfileString(....., s, .....)
If InStr(1, s, vbNullChar) > 0 Then
s = Mid(s, 1, InStr(1, s, vbNullChar) - 1)
Debug.Print s
Exit Do
End If
Loop
へいぽ?さん、ご丁寧にありがとうございます。
へいぽ?さんに書いていただいたソースの「s」を
GetPrivateProfileStringの引数の中に入れる時には
どこにいれたらいいのでしょう。