TKSoft-Online

Arbeiten mit INI-Dateien PDF Drucken E-Mail
( 5 Votes )
MS-Access Bsp. DB's - Bsp. Downloads Datei und System
  
Mittwoch, den 09. Januar 2008 um 01:00 Uhr

Problemstellung:

Im Zeitalter überquellender Registrydateien ist es manchmal sinnvoll Optionen oder sonstige
Programmeinstellungen in einer INI-Datei zu speichern und von dort wieder einzulesen.
Aber wie geht das?

Voraussetzungen:

Das Bsp ist unter A00-A07 lauffähig

unter A07 muss sich Bsp-DB in einen „Vertrauenswürdigen Standort“ befinden

 

Funktionsweise:

Eigentlich sind nur 2 API-Funktionen erforderlich.

1. Zum Lesen von INI- Einträgen:

Public Declare Function GetPrivateProfileString Lib _
  "KERNEL32" 
Alias
 "GetPrivateProfileStringA" _
  (
ByVal lpApplicationName As String
, _
  
ByVal lpKeyName As Any, ByVal lpDefault As String
, _
  
ByVal lpReturnedString As StringByVal nSize As Long
, _
  
ByVal lpFileName As String
As Long

 

Funktions Parameter:

lpApplicationName
Erwartet den Namen einer Sektion in einer Ini-Datei. Übergibt man hier ein "VBNullString"-Zeichen
so liefert die Funktion die Namen aller Sektionen.

lpKeyName
Erwartet einen Schlüssel dessen Eintrag gelesen werden soll. Übergibt man hier ein "VBNullString"-Zeichen und ist
"lpApplicationName" mit einer gültigen Sektion gefüllt so erhält man alle Schlüssel in der entsprechenden Sektion.

lpDefault
Erwartet eine Standardwert der Ausgegeben wird wenn die Ini-Datei, die Sektion oder der Schlüssel nicht Existiert.

lpReturnedString
Erwartete einen Puffer gefüllt mit Leerstellen der groß genug ist um die gefunden Daten zu Empfangen

nSize
Erwartet die Größe des Puffers in Bytes.

lpFileName
Erwartet die Pfadangabe zu der Existierenden Ini-Datei die ausgelesen werden soll.

Hilfsfunktion:

Public Function GetIniString(ByVal Sektion As String, _
                          
ByVal Titel As StringByVal Vorgabe As String
, _
                          
ByVal INIFile As String
, _
                          
Optional ByVal nSize As Long = 256) As String
  Dim sValue As String
  Dim lResult As Long
  sValue = Space$(nSize)
  lResult = GetPrivateProfileString(Sektion, Titel, _
                  Vorgabe, sValue, nSize, INIFile)
  GetIniString = Left$(sValue, lResult)
End Function

 

2. Zum Schreiben und Löschen von INI-Einträgen:

Public Declare Function WritePrivateProfileString Lib _
  "KERNEL32" Alias "WritePrivateProfileStringA" _
  (ByVal lpApplicationName As String, _
  ByVal lpKeyName As Any, ByVal lpString As Any, _
  ByVal lpFileName As StringAs Long

 

Funktions Parameter:

lpApplicationName
Erwartet den Namen einer Sektion in einer Ini-Datei. Existiert dieser Bereits so wird der Schlüssel und der Wert in
dieser Sektion angelegt, andernfalls wird dieser erstellt. Übergibt man hier ein "VBNullString"-Zeichen so
löscht die Funktion alle Sektionen der Ini-Datei.

lpKeyName
Erwartet einen Schlüssel dessen Eintrag gelesen werden soll. Ist dieser schon vorhanden so wird der Wert dieses Schlüssels überschrieben.
Übergibt man hier ein "VBNullString"-Zeichen und ist "lpApplicationName" mit einer gültigen Sektion gefüllt so wird die
gesamte Sektion aus der Datei gelöscht.

lpString
Erwartet den Wert der in der Sektion unter dem Angegebenen Schlüssel gespeichert werden soll. Übergibt man hier ein
"VBNullString"-Zeichen so wird der Schlüssel aus der Ini-Datei gelöscht.

lpFileName
Erwartet eine Pfadangabe zu einer Ini-Datei. Existiert diese noch nicht so wird sie erstellt. Andernfalls können wohlmöglich Sektionen,
Schlüssel oder werte überschrieben werden.

Praktische Anwendung:

Der Rückgabewert ist immer ein String.
Soll es ein Zahl oder ein Datum sein muss dieser mit Typumwandlungsfunktionen wie CInt, CLng, CDate o.ä. umgewandelt werden.


Lesen eines INI-Eintrages:
INI-Datei befindet sich im Verzeichnis C:\Test und heißt „test.ini“
Aus der Section „General“ soll der Schlüssel „SavePath“ gelesen werden
Dim sPath As String
sPath = GetIniString("General", "SavePath", "", "C:\Test\test.ini")


Löschen eines INI-Schlüssels:
INI-Datei befindet sich im Verzeichnis C:\Test und heißt „test.ini“
Aus der Section „General“ soll der Schlüssel „SavePath“ gelöscht werden
WritePrivateProfileString  "General", "SavePath", vbNullString, "C:\Test\test.ini"

Löschen einer INI-Section:
INI-Datei befindet sich im Verzeichnis C:\Test und heißt „test.ini“
Die  Section  „General“ soll gelöscht werden
WritePrivateProfileString  "General", vbNullString, "",  "C:\Test\test.ini"

Erstellen einer INI-Section mit Schlüssel und Wert:
INI-Datei befindet sich im Verzeichnis C:\Test und heißt „test.ini“
Es soll die Section „GeneralPathAtt“ mit dem Schlüssel „AutoOpen“ und dem Wert „1“ erstellt werden
WritePrivateProfileString  "GeneralPathAtt", "AutoOpen", "1",  "C:\Test\test.ini"

Erstellen eines INI-Schlüssels und Wert in einer bestehenden Section:
INI-Datei befindet sich im Verzeichnis C:\Test und heißt „test.ini“
Es soll der Schlüssel „PathAtt“ und dem Wert „F:\Eigene Dateien\Access\Access 2007“ in der Section „GeneralPathAtt“ erstellt werden
WritePrivateProfileString  "GeneralPathAtt", "PathAtt", "F:\Eigene Dateien\Access\Access 2007",  "C:\Test\test.ini"

Ändern eines bestehenden Wertes:
INI-Datei befindet sich im Verzeichnis C:\Test und heißt „test.ini“
Es soll der Schlüssel „PathAtt“ und dem Wert „F:\Eigene Dateien\Access\Access 2007“ in der Section „GeneralPathAtt“ geändert werden.
Neuer Wert „F:\Test\Access\Access 2007“
WritePrivateProfileString  "GeneralPathAtt", "PathAtt", "F:\Test\Access\Access 2007",  "C:\Test\test.ini"

In der Bsp-DB werden noch weitere Möglichkeiten gezeigt.
z.B.: Speichern von Formularpositionen oder Skins für das Formularlayout

Arbeiten mit INI-Dateien

Arbeiten mit INI-Dateien
für A00-A07

Die Zip-Datei enthält eine Version ab A00




Erstellt am
Dateigröße
Downloads
05.01.2008
55.73 KB
1022

 

Downloads in dieser Kategorie

MS-Access Datei & System

MS-Access Datei & System

 Seite: 1

 Seite: 2


DatumKlicks
Total3210
Mi. 233
Di. 223
Mo. 212
So. 203
Fr. 184
Do. 172
Mi. 162
Aktualisiert ( Mittwoch, den 26. Januar 2011 um 07:32 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173466 Downloads