ページ 11

INIファイルの読み書き

Posted: 2008年3月28日(金) 14:36
by popopo(^^)
こんにちは。AB始めたばかりのpopopoという者です。
あるツールを作っているのですが、設定を保存するINIファイルの読み書き
の仕方がわかりません。
GetPrivateProfieStringとかいうAPIもあるようですが、
使い方がよくわかりません。
それとも、レジストリに保存した方がいいんでしょうか・・・・・
僕は、レジストリに保存するとアンインストールの時に
レジストリを消去しないといけないので、
できるだけINIファイルがいいのですが・・・。
だれか教えてください(_ _)

Re: INIファイルの読み書き

Posted: 2008年3月28日(金) 18:56
by 7
> こんにちは。AB始めたばかりのpopopoという者です。
こんにちは。なんか可愛らしいHNですね...(笑)

> GetPrivateProfieStringとかいうAPIもあるようですが、
> 使い方がよくわかりません。 [MSDN]WritePrivateProfileString
[MSDN]GetPrivateProfileString
[VC++のクラスと関数に関するメモ]iniファイルの作成

忙しいのでAB用のサンプルコードは、どなたか!

Posted: 2008年3月28日(金) 19:49
by konisi
INIファイルの操作はやったことがないのですが、こんな感じでよろしかったでしょうか?

コード: 全て選択

#console

Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (lpAppName As *Byte,lpKeyName As *Byte,lpString As *Byte,lpFileName As *Byte) As BOOL
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (lpAppName As *Byte,lpKeyName As *Byte,lpDefault As *Byte,lpReturnedString As *Byte,nSize As DWord,lpFileName As *Byte) As DWord

Dim ret As Long
Dim DirAddr[MAX_PATH-1] As Byte
Dim FileAddr[MAX_PATH-1] As Byte
Dim buf[255] As Byte

Const INIFileName="1.ini"

'iniファイルへの絶対パスを作る
GetCurrentDirectory(MAX_PATH-1,DirAddr)
wsprintf(FileAddr,"%s\%s",DirAddr,INIFileName)

'書き込み
ret=WritePrivateProfileString("Section1","Test","読み込み成功",FileAddr)
If ret then Print "書き込み成功"

'読み込み
GetPrivateProfileString("Section1","Test","読み込み失敗",buf,255,FileAddr)
Print MakeStr(buf)

Sleep(-1)

Posted: 2008年3月28日(金) 22:11
by のぶあや
先日実践コードモジュールにiniファイルを操作するクラスを投稿したのでよければどうぞ

iniファイルクラス
http://www.activebasic.com/forum/viewtopic.php?t=2347
整数値・文字列の読み書き、改行コードを含む文字列の読み書き、キー・セクションの消去ができます


サンプルコード