Visual Basic Tips


iniファイルの作成・取得


Windows95になってから設定項目はレジストリに!と言われてもやっぱりテキストに格納したい時があります。何より扱いに気を使わなくて済みますもんね。
 私は設定値を取得するのにFunctionモジュール、書き出すのにSubモジュールにしてしまいます。ここの例ではデータベースのパス名をiniファイルに設定・取得しています。

'sFilePathにはiniファイルのパス名を設定します。
Function
INI_DBPATH_READ(sFilePath As String) As String
  
Dim lret As Long
  
Dim sWk As String
  
Dim iLen As integer

  'データベースパスの取得
  sWk = String$(80, " ")
  lret = GetPrivateProfileString("DB_PATH", "DB_PATH1", "", sWk, 80,sFilePath)
  
If lret = 0 Then
    INI_DBPATH_READ = ""
  
Else
    iLen = Len(Trim(sWk))
    INI_DBPATH_READ = Left$(sWk, iLen)
  
End If
End Function

'sFilePathにはiniファイルのパス名、sDbPathにはデータベースのパス名を設定します。
Sub INI_WRITE(sFilePath As String, sDbPath As String)
  Dim ret As Integer

  'データベースパスの出力
  ret = WritePrivateProfileString("DB_PATH", "DB_PATH1", sDbPath, sFilePath)
End Sub

'-------------------------------------------------------------
'
'-------------------------------------------------------------
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long