SCWlib: clsINI
Visual Basic Klasse fr den Zugriff auf INI-Dateien.

   Autor: Tim Gerundt
Homepage: www.LGmsWorld.de
  E-Mail: LGm@LGmsWorld.de

Lizenz
------
Der Autor bernimmt KEINE HAFTUNG fr Schden jeglicher
Art an Dateien oder Hardware, die durch dieses Programm
verursacht werden knnten.

Installationen und Benutzung der Software sind kostenlos
sowohl im privaten als auch im kommerziellen Umfeld.
Wenn die das Projekt finanziell untersttzen wollen, dann
wenden Sie sich bitte direkt an den Autor.
Die private nichtkommerzielle Weitergabe des Programms
auf Datentrgern ist gestattet.
Die nichtkommerzielle Spiegelung auf www- und ftp-Servern
von Schulen, Hochschulen, Vereinen und gemeinntzigen
Organisationen ist gestattet.
Die Spiegelung des Programms auf Homepages von
Privatpersonen oder Gewerbe ist vorher vom Autor
genehmigen zu lassen.
Die kommerzielle Verwertung und Verteilung des Programms
ist nur mit ausdrcklicher Erlaubnis des Autors gestattet.


Anleitung
---------
Zum Benutzen der Klasse mu man die Datei "clsINI.cls" dem Visual-Basic Projekt hinzufgen.


Die Klasse untersttzt folgende Methoden:

 * File = String
   Pfad der INI-Datei.

 * FileExists() As Boolean
   berprfen, ob die INI-Datei existiert.


 * ReadKeyValueInt(Abschnitt As String, Schlssel As String, Optional Standardwert As Long) As Long
   Liest einen Integer-Wert aus der INI-Datei.

 * ReadKeyValueBool(Abschnitt As String, Schlssel As String, Optional Standardwert As Boolean) As Boolean
   Liest einen Boolean-Wert aus der INI-Datei.

 * ReadKeyValueStr(Abschnitt As String, Schlssel As String, Optional Standardwert As String) As String
   Liest einen String-Wert aus der INI-Datei.

 * ReadKeyValue(Abschnitt As String, Schlssel As String, Optional Standardwert As String) As String
   Liest einen String-Wert aus der INI-Datei.


 * WriteKeyValueInt(Abschnitt As String, Schlssel As String, Wert As Long) As Boolean
   Schreibt einen Integer-Wert in die INI-Datei.

 * WriteKeyValueBool(Abschnitt As String, Schlssel As String, Wert As Boolean) As Boolean
   Schreibt einen Boolean-Wert in die INI-Datei.

 * WriteKeyValueStr(Abschnitt As String, Schlssel As String, Wert As String) As Boolean
   Schreibt einen String-Wert in die INI-Datei.

 * WriteKeyValue(Abschnitt As String, Schlssel As String, Wert As String) As Boolean
   Schreibt einen String-Wert in die INI-Datei.


 * GetSectionNames(ByRef Abschnitte() As String) As Integer
   Liefert die Anzahl der Namen aller Abschnitte zurck.
   Die Namen selber werden ber das Datenfeld "Abschnitte" zurck gegeben.

 * GetKeyNames(Abschnitt As String, ByRef Schlssel() As String) As Integer
   Liefert die Anzahl der Namen aller Schlssel von einem Abschnitt zurck.
   Die Namen selber werden ber das Datenfeld "Schlssel" zurck gegeben.


 * DeleteSection(Abschnitt As String) As Boolean
   Lscht einen Abschnitt aus der INI-Datei.

 * DeleteKey(Abschnitt As String, Schlssel As String) As Boolean
   Lscht einen Schlssel aus der INI-Datei.


Eine INI-Datei ist immer folgendermaen aufgebaut:

[Abschnitt]
Schlssel=Wert

[Abschnitt-2]
Schlssel-1=Wert-1
Schlssel-2=Wert-2

[Abschnitt-3]
Schlssel-1=Wert-1
Schlssel-2=Wert-2


Der folgende Code zeigt, wie man die Klasse verwenden muss, um eine INI-Datei zu bearbeiten:

Dim INI As New clsINI
Dim i As Integer, j As Integer, s As String
Dim sArray() As String

INI.File = "C:\Datei.ini" 'Pfad der INI-Datei.
If (INI.FileExists = True) Then 'Wenn die INI-Datei vorhanden ist...
  s = INI.ReadKeyValueInt("Test", "Integer") 'Integer-Wert auslesen.
  i = INI.ReadKeyValueStr("Test", "String") 'String-Wert auslesen.

  INI.WriteKeyValueBool "Test", "Boolean", True 'Boolean-Wert schreiben.

  i = INI.GetKeyNames("Test", sArray)
  For j = 0 To (i - 1) 'Fr alle Schlssel...
    Debug.Print sArray(j)
  Next j

  INI.DeleteKey "Test", "Alt" 'Schlssel lschen.
  INI.DeleteSection "Alt" 'Abschnitt lschen.
End If


Bekannte Probleme:

 * Die Klasse kann nur Schlssel lesen und schreiben, die innerhalb eines Abschnittes sind.


Viel Spa mit der Klasse!

Tim Gerundt


Version
-------
0.9.0:
 * Funktion "GetSectionNames" eingebaut.
 * Funktion "GetKeyNames" eingebaut.
 * Versionsschema gendert.
0.0.8:
 * Erste offizielle Version.