Rubrique précédente: DeleteIniSection : Supprimer une section d'un fichier d'initialisationRubrique suivante: WriteIniEntry : Stocker une valeur dans un fichier .ini


ReadIniSection – Extraire une section

Valide sur les plates-formes UNIX et Windows

La fonction ReadIniSection extrait une section complète du fichier d'initialisation (.ini).

Format de la fonction :

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

Identifie la section à extraire.

résultat

Identifie la variable Chaîne destinée à recevoir la section.

nom_fichier

Identifie le nom du fichier d'initialisation (.ini). Si seul le nom du fichier est indiqué dans un environnement Windows, la recherche est effectuée sur le répertoire Windows, alors que dans les environnements non-Windows, la recherche porte sur le répertoire en cours.

ReadIniEntry () et ReadIniSection() renvoient une valeur positive si l'appel réussit ; sinon, elles renvoient la valeur zéro (0). La fonction recherche dans le fichier d'initialisation une section qui corresponde au nom indiqué par la section, puis copie toutes ses entrées dans la variable result selon le format suivant :

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

Exemple :

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

' Effacer l'écran
ClrScr()

If Not(ReadIniSection("LIST", attrList, "c:\temp\test.ini")) Then
	MessageBox("Impossible de lire la section LIST", "DMS", MB_OK + MB_ICONEXCLAMATION)
	SetStatus(1)
	quitter
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("Impossible de lire la section SINGLE", "DMS", MB_OK + MB_ICONEXCLAMATION)
	SetStatus(2)
	quitter
End If

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

If Not(DeleteIniEntry("SINGLE", "Entry", "c:\temp\test.ini")) Then
	MessageBox("Impossible de supprimer l'entrée [SINGLE]", "DMS", MB_OK + MB_ICONEXCLAMATION)
	SetStatus(3)
	quitter
End If
If Not(DeleteIniSection("LIST", "c:\temp\test.ini")) Then
	MessageBox("Impossible de supprimer la section LIST", "DMS", MB_OK + MB_ICONEXCLAMATION)

SetStatus(4)
	quitter
End If