iniファイルの全セクション、全キー、全バリューを取得するには
どのようにしたら良いのでしょうか?
GetPrivateProfileStrings APIで取得できます。
ただ,VBからは結構ややこしいかもしれません。
どうせiniファイルなんてただのテキストファイルですから、
FileSystemObjectあたりで一気読みするとか・・・。
なお、下のサンプルでは表示にListView使ってます。
Flex使おうと思ってたらちょうど初心者掲示板にListViewネタがあったもんで…。
Option Explicit
Private Sub Command1_Click()
Dim fso As New Scripting.FileSystemObject
Dim tso As Scripting.TextStream
Dim strBuf As String
Dim SectionBuf As String
Dim itmX As ListItem
Dim strKeyValue() As String
Set tso = fso.OpenTextFile("c:\windows\win.ini", ForReading, False, TristateFalse)
Do Until tso.AtEndOfStream
strBuf = tso.ReadLine
If strBuf <> "" Then
If Left(strBuf, 1) = "[" Then
SectionBuf = Mid(strBuf, 2, Len(strBuf) - 2)
Else
strKeyValue = Split(strBuf, "=")
Set itmX = ListView1.ListItems.Add(, , SectionBuf)
itmX.SubItems(1) = strKeyValue(0)
itmX.SubItems(2) = strKeyValue(1)
End If
End If
Loop
tso.Close
Set tso = Nothing
Set fso = Nothing
Set itmX = Nothing
End Sub
Private Sub Form_Load()
With ListView1
.Width = 8000
.ColumnHeaders.Add , , "セクション", 2000
.ColumnHeaders.Add , , "キー", 2000
.ColumnHeaders.Add , , "バリュー", 4000
.View = lvwReport
End With
End Sub
YuOさんの言うとおりGetPrivateProfileStringsを使えばいいのでは?
split関数等で配列に分解処理をすれば問題なくVBでも利用できると思います。
YuOさん、Sayさん、Text.Kさん、ご返信ありがとうございます。
上記方法で試してみたいと思います。
ありがとうございました。
ツイート | ![]() |