Funktionreferenz


IniWriteSection

Beschreibung anzeigen in

Schreibt eine Sektion in eine standardkonforme .ini-Datei.

IniWriteSection ( "filename", "section", "data" [, index = 1] )

Parameter

filename Der Dateiname der .ini-Datei.
section Der Sektionsname in der .ini-Datei.
data Die zu schreibenden Daten. Die Daten können entweder ein String oder ein Array sein. Wenn die Daten ein String sind, dann muss jedes Schlüssel=Wert Paar durch @LF begrenzt werden. Wenn die Daten ein Array sind, dann muss das Array ein zweidimentionales Array sein und die zweite Dimension muss 2 Elemente beinhalten.
index [optional] Wenn ein Array als Dateninput verwendet wird, dann bestimmt dies den Startindex, ab dem geschrieben werden soll. Der Standard ist 1, so dass der Rückgabewert von IniReadSection() sofort genutzt werden kann. Für manuell erstellte Arrays, kann dieser Wert abweichen abhängig je nachdem wie das Array erstellt wurde. Dieser Parameter wird ignoriert, wenn ein String als Dateneingabe verwendet wird.

Rückgabewert

Erfolg: 1.
Fehler: 0. Diese Funktion setzt @error auf 1, wenn das Datenformat ungültig ist.

Bemerkungen

Eine standardkonforme .ini-Datei sieht folgendermaßen aus:
[SektionsName]
Schlüssel=Wert


Wenn die Datei nicht existiert, wird sie erstellt.
Verzeichnisse die nicht existieren werden nicht erstellt. Schlüssel und/oder Sektionen werden an das Ende angehängt und in keinster Weise sortiert.
Wenn die Sektion bereits existiert, wird deren Inhalt überschrieben.

Wenn eine .ini-Datei mit Unicode-Kodierung verwendet werden soll, muss zuerst eine .ini-Datei mit der FileOpen() Funktion erstellt und der mode-Parameter auf "Unicode-UTF16 Little-Endian" gesetzt werden.

Verwandte Funktionen

IniDelete, IniRead, IniReadSection, IniReadSectionNames, IniRenameSection, IniWrite

Beispiel

#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

Example()

Func Example()
    ; Erstellt eine Konstante im lokalen Bereich des Dateipfades, welcher zum lesen bzw. schreiben verwendet wird.
    Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)

    ; Erstellt eine Sektion in der ini mit der Struktur eines Strings. Das Element bei Index 0 enthält die Anzahl der Items im Array, in diesem Fall 3.
    Local $aSection[4][2] = [[3, ""], ["Title", "AutoIt"], ["Version", @AutoItVersion], ["OS", @OSVersion]]

    ; Schreibt das Arra in die Sektion 'General'.
    IniWriteSection($sFilePath, "General", $aSection)

    ; Liest die Sektion 'General'. Es wird ein 2D Array zurückgegeben.
    Local $aArray = IniReadSection($sFilePath, "General")

    ; Prüft, ob ein Fehler aufgetreten ist.
    If Not @error Then
        ; Durchläuft das Array und stellt die einzelnen Schlüssel und deren Werte dar.
        For $i = 1 To $aArray[0][0]
            MsgBox($MB_SYSTEMMODAL, "", "Schlüssel: " & $aArray[$i][0] & @CRLF & "Wert: " & $aArray[$i][1])
        Next
    EndIf

    ; Löscht die ini-Datei.
    FileDelete($sFilePath)
EndFunc   ;==>Example