↑  ←  Описание функции


IniWriteSection

Записывает секцию в стандартный ini-файл.

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

Параметры

filename Путь к ini-файлу.
section Имя секции в ini-файле.
data Данные для записи. Может быть строкой или массивом. Если строка, то пары параметр=значение должны быть разделены символом @LF. Если массив, то он должен быть 2-мерным, а его второе измерение должно быть 2 элементным, то есть 2 колонки.
index [необязательный] Если в качестве данных передаётся массив, то этот параметр указывает индекс первого элемента для записи. По умолчанию 1 для удобства работы с массивами, возвращёнными функцией IniReadSection(). При ручном создании массива индекс может быть другим, например 0. Этот параметр игнорируется, если данные передаются строкой.

Возвращаемое значение

Успех:Возвращает 1.
Ошибка:Возвращает 0. Значение @error устанавливается равным 1, если данные имеют неправильный формат.

Примечания

Стандартный ini-файл имеет следующую структуру:

[Имя секции]
Параметр=Значение


Если необходимо использовать ini в формате юникода, то предварительно создайте ini-файл с помощью FileOpen() с кодировкой "Unicode UTF16 Little Endian".

Если файл не существует, то он будет создан. Однако, если путь к каталогу, в котором создаётся ini-файл не существует, то каталоги не создаются и ini-файл не будет создан. Параметры и секции добавляются в конце (без какой-либо сортировки).
Если секция уже существует, его содержимое будет удалено перед записью.

См. также

IniDelete, IniRead, IniReadSection, IniReadSectionNames, IniWrite, IniRenameSection

Пример

; Это INI-файл, в который мы будем записывать. Он будет создан на рабочем столе.
$sIni = @DesktopDir & "\AutoIt-Test.ini"

; Демонстрация создания новой секции, используя строку с параметрами и значениями.
$sData = "Key1=Value1" & @LF & "Key2=Value2" & @LF & "Key3=Value3"
IniWriteSection($sIni, "Section1", $sData)

; Демонстрация создания новой секции, используя массив.
$aData1 = IniReadSection($sIni, "Section1") ; Считываем то, что мы только что записали выше.
For $i = 1 To UBound($aData1) - 1
    $aData1[$i][1] &= "-" & $i ; Изменяем некоторые данные
Next

IniWriteSection($sIni, "Section2", $aData1) ; Записываем данные в новую секцию.

; Демонстрация создания массива вручную и использование его в качестве входных данных.
Dim $aData2[3][2] = [["FirstKey", "Значение1"],["SecondKey", "Значение2"],["ThirdKey", "Значение3"]]
; Поскольку массив содержит элементы начиная с 0, то необходимо в функции IniWriteSection() указать начальный элемент 0.
IniWriteSection($sIni, "Section3", $aData2, 0)