문제

VBA에서 INI 파일을 읽고 쓸 수있는 방법이 있습니까? 나는 내가 사용할 수 있다는 것을 안다.

Open "C:\test.ini" For Input As #1

... 데이터를 구문 분석합니다. 대신 나는 이미 어떤 도구를 사용할 수 있는지 보려고 노력하고 있습니다.

나는 C#에서 당신이 할 수 있다는 것을 알고 있습니다 ...

 using INI;
 INIFile ini = new INIFile("C:\test.ini");

VBA와 동등한 것이 있습니까?

MS Access 2003 VBA에서 이것을 시도하고 있습니다.

도움이 되었습니까?

해결책

다음은 우리가 사용하는 코드 스 니펫이 있습니다. 아이디어를 얻는 데 도움이됩니다. 이 루틴은 API 호출을 사용합니다. INI 파일의 특정 섹션에 문자열 설정을 읽고 쓰기 위해 두 가지 기능이 포함되어 있습니다.

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 IniFileName() As String
  IniFileName = "c:\[yourpath here]\settings.ini"
End Function


Private Function ReadIniFileString(ByVal Sect As String, ByVal Keyname As String) As String
Dim Worked As Long
Dim RetStr As String * 128
Dim StrSize As Long

  iNoOfCharInIni = 0
  sIniString = ""
  If Sect = "" Or Keyname = "" Then
    MsgBox "Section Or Key To Read Not Specified !!!", vbExclamation, "INI"
  Else
    sProfileString = ""
    RetStr = Space(128)
    StrSize = Len(RetStr)
    Worked = GetPrivateProfileString(Sect, Keyname, "", RetStr, StrSize, IniFileName)
    If Worked Then
      iNoOfCharInIni = Worked
      sIniString = Left$(RetStr, Worked)
    End If
  End If
  ReadIniFileString = sIniString
End Function

Private Function WriteIniFileString(ByVal Sect As String, ByVal Keyname As String, ByVal Wstr As String) As String
Dim Worked As Long

  iNoOfCharInIni = 0
  sIniString = ""
  If Sect = "" Or Keyname = "" Then
    MsgBox "Section Or Key To Write Not Specified !!!", vbExclamation, "INI"
  Else
    Worked = WritePrivateProfileString(Sect, Keyname, Wstr, IniFileName)
    If Worked Then
      iNoOfCharInIni = Worked
      sIniString = Wstr
    End If
    WriteIniFileString = sIniString
  End If
End Function

다른 팁

유쾌하지는 않지만 Windows API를 사용할 수 있습니다. 여기 링크가 있습니다, 그리고 MS의 또 다른.

FileSyStemObject 객체 TextStream] (http://msdn.microsoft.com/en-us/library/314cz14s(vs.85).aspx) VBA에서 텍스트 파일을 읽고 쓰는 데 일반적으로 권장되는 방법입니다.

칼 피터슨의 KPINI API 선언, Cinifile 클래스 등 필요한 모든 것이 있습니다. 나는 그것으로 시작하여 맛을 내기로 변형되어 오래 걸리지 않아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top