Frage

Sind alle Methoden in VBA verfügbar zu lesen und INI-Dateien zu schreiben? Ich weiß, ich könnte verwenden;

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

... und die Daten analysieren. Stattdessen versuche ich zu sehen, welche Werkzeuge sind bereits verfügbar.

Ich weiß, in C # Sie tun können ...

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

Gibt es ein Äquivalent für VBA?

Ich versuche, dies in MS Access 2003 VBA.

War es hilfreich?

Lösung

Hier sind einige Code-Schnipsel, die wir verwenden, sollte es Ihnen helfen, die Idee zu bekommen. Diese Routinen verwenden, um die API-Aufrufe. Zwei Funktionen sind enthalten lesen / schreiben einen String in einen bestimmten Abschnitt in der INI-Datei zu setzen.

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

Andere Tipps

Es ist nicht angenehm, aber Sie können den Windows-API verwenden. Hier ist ein Link und eine andere von MS .

Filesystem Objekt mit einem [Textstream] ( http://msdn.microsoft.com/en-us/library /314cz14s(VS.85).aspx) ist das in der Regel empfohlene Methode zum Lesen und Schreiben Text-Dateien in VBA.

Karl Peterson kpini hat so ziemlich alles, was Sie wahrscheinlich müssen: API Erklärungen, dass eine Cinifile Klasse, solche Sachen. Ich würde damit anfangen und morphen es zu schmecken, die nicht lange dauern sollte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top