GetPrivateProfileString()で


もとお  2004-02-10 12:53:56  No: 81920

はじめまして、VB初心者のもとおといいます。
GetPrivateProfileString()で
可変なiniファイルの文字列を読み込む時には、
バッファのサイズをどうしたらよいでしょうか。


魔界の仮面弁士  2004-02-10 13:04:36  No: 81921

とりあえず、適当なサイズのバッファを用意して読み込んでみて、
バッファ一杯まで読み込まれているようであれば、あらためて
バッファサイズを増やして読み直してみては如何でしょう。


もとお  2004-02-10 13:15:48  No: 81922

魔界の仮面弁士さん、早い返答ありがとうございます。
バッファがいっぱいまで読み込まれているのを判定するにはどうしたらいうことでしょう。
それとあらためて増やすというのはどういうことでしょうか。。。
お手数おかけしてすいません。


へいぽ?  2004-02-10 15:00:22  No: 81923

> バッファがいっぱいまで読み込まれているのを判定

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


もとお  2004-02-10 17:48:09  No: 81924

へいぽ?さん、ご丁寧にありがとうございます。
へいぽ?さんに書いていただいたソースの「s」を
GetPrivateProfileStringの引数の中に入れる時には
どこにいれたらいいのでしょう。


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加