Vorheriges Thema: DeleteIniSection - Entfernen eines Abschnitts aus einer InitialisierungsdateiNächstes Thema: WriteIniEntry - Speichern eines Wertes in einer INI-Datei


ReadIniSection - Abrufen eines Abschnitts

Gültig für UNIX- und Windows-Plattformen

Die Funktion "ReadIniSection" ruft einen vollständigen Abschnitt einer Initialisierungsdatei (.ini) ab.

Diese Initialisierungsdateifunktion (.ini) hat das folgende Format:

ReadIniSection(section as String, result as String, filename as String) as Integer
section

Gibt den abzurufenden Abschnitt an.

result

Kennzeichnet die Zeichenfolgenvariable, die den Abschnitt übernehmen soll.

Dateiname

Gibt den Namen der Initialisierungsdatei (.ini) an. Wenn nur der Dateiname angegeben wird, erfolgt in Windows-Umgebungen die Suche im Windows-Verzeichnis. In anderen Umgebungen erfolgt die Suche im aktuellen Verzeichnis.

Bei erfolgreichem Aufruf geben "ReadIniEntry()" und "ReadIniSection()" einen positiven Wert zurück. Andernfalls wird null (0) zurückgegeben. Die Funktion durchsucht die Initialisierungsdatei nach einem Abschnitt, der mit dem durch "section" angegebenen Namen übereinstimmt, und kopiert alle darin enthaltenen Einträge im folgenden Format in die Variable "result":

Entry_1 = Value_1 <LF>
Entry_n = Value_n <LF>

Beispiel: Funktion "ReadIniSection"

Function strTok(in As string, BYREF pos As Integer, token As String, BYREF out As String) As Boolean
	Dim buf As String
	Dim len As Integer

	If (pos > Len(in)) Then
		strTok = FALSE
	Else
		buf = Mid(in, pos)
		len = Instr(buf, token)
		If len = 0 Then
			out = buf
			pos = pos + Len(buf) + 1
		Else
			out = Mid(buf, 0, len-1)

pos = pos + len + 1
		End If
		strTok = TRUE
	End If
End Function

Dim attrList, str, lf As string
Dim pos As Integer

' clear screen
ClrScr()

If Not(ReadIniSection("LIST", attrList, "c:\temp\test.ini")) Then
	MessageBox("Abschnitt LIST kann nicht gelesen werden", "DMS", MB_OK + MB_ICONEXCLAMATION)
	SetStatus(1)
	Beenden
End If
Print("[LIST]")
pos = 0
lf = chr(10)
While (strTok(attrList, pos, lf, str))
	Print(str)
Wend

If Not(ReadIniEntry("SINGLE", "Entry", attrList, "c:\temp\test.ini")) Then

MessageBox("Abschnitt SINGLE kann nicht gelesen werden", "DMS", MB_OK + MB_ICONEXCLAMATION)
	SetStatus(2)
	Beenden
End If

Print("[SINGLE]" + NEWLINE$ + "Entry=" + attrList)

If Not(DeleteIniEntry("SINGLE", "Entry", "c:\temp\test.ini")) Then
	MessageBox("[SINGLE].Entry kann nicht gelöscht werden ", "DMS", MB_OK + MB_ICONEXCLAMATION)
	SetStatus(3)
	Beenden
End If
If Not(DeleteIniSection("LIST", "c:\temp\test.ini")) Then
	MessageBox("Abschnitt LIST kann nicht gelöscht werden", "DMS", MB_OK + MB_ICONEXCLAMATION)

SetStatus(4)
	Beenden
End If