modinireader.bas

来自「这个源代码主要模仿了一个类似 深度操作系统安装程序中的一个软件自动安装管理器Au」· BAS 代码 · 共 66 行

BAS
66
字号
Attribute VB_Name = "modINIReader"

Option Explicit

Private Declare Function GetPrivateProfileSectionNames Lib "kernel32.dll" Alias "GetPrivateProfileSectionNamesA" (ByVal lpszReturnBuffer As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private 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
Private 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

Public Function ReadSections(ByVal Filename As String) As String()
  Dim szBuf As String, Length As Integer
  Dim SectionArr() As String, m As Integer
  szBuf = String$(255, 0)
  Length = GetPrivateProfileSectionNames(szBuf, 255, Filename)
  szBuf = Left$(szBuf, Length)
  SectionArr = Split(szBuf, vbNullChar)
  ReadSections = SectionArr
End Function

Public Sub ReadKeys(ByVal Section As String, ByVal Filename As String, ByRef xArray() As String)

  Dim Result&, Buffer$
  Dim l%, p%, z%
    Buffer = Space(32767)
    Result = GetPrivateProfileSection(Section, Buffer, Len(Buffer), Filename)
    
    Buffer = Left$(Buffer, Result)
    
    If Buffer <> "" Then
      l = 1
      ReDim xArray(0)
      Do While l < Result
        p = InStr(l, Buffer, Chr$(0))
        If p = 0 Then Exit Do
        
        xArray(z) = Mid$(Buffer, l, p - l)
        z = z + 1
        ReDim Preserve xArray(0 To z)
        l = p + 1
      Loop
    End If

End Sub

Public Function INIRead(ByVal Section As String, ByVal Key As String, ByVal file As String, Optional ByVal default As String) As String

Dim lngResult As Long
Dim strResult As String

    If Len(Trim(default)) = 0 Then default = vbNullString

    strResult = Space(255)

    lngResult = GetPrivateProfileString(Section, Key, default, strResult, 255, file)
    INIRead = Trim(strResult)

End Function

Public Sub IniWrite(ByVal Section As String, ByVal Key As String, ByVal Value As String, ByVal file As String)

Dim lngResult As String

    lngResult = WritePrivateProfileString(Section, Key, Value, file)

End Sub

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?