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


_IniVirtualSPE_WriteSection

Создаёт / перезаписывает секцию в данных, предварительно прочитанных в переменную из ini-файла

#Include <IniVirtualSPE.au3>
_IniVirtualSPE_WriteSection ( ByRef $s_INI_Text, $sSection, $vData[, $iIndex = 1] )

Параметры

$s_INI_Text Данные в текстовом виде, прочитанные из ini-файла
$sSection Секция, в которую будет выполнена запись
$vData Строка или двумерный массива пар параметр=значение
$iIndex [необязательный] Индекс массива, от которого начинается отсчёт добавляемых данных. Учитывается только в случае, если $vData является массивом

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

Успех:Возвращает 1
Ошибка:Возвращает 0 и устанавливает @error:
@error:1 - $vData является массивом, но не двумерным
2 - $iIndex вне диапазона индексов массива или не является числом

Примечания

Если записываемая секция существует, то она будет удалена перед записью.

Данные изменяются только в памяти. Чтобы записать в файл используйте FileWrite. Если секции нет, она создаётся. Если параметра нет, создаётся. Существующий параметр перезаписывается.

Если значения содержат пробельный символ в начале или в конце, то такие значения заключаются в кавычки. Если значение заключено в кавычки, то при записи значение повторно заключается в кавычки. Эти условия позволяют прочитать значения в том виде, в котором оно было записано.

Если данные являются текстовыми, то пары параметр=значение должны разделятся символом @CRLF или @LF, в последнем случае недостающий @CR будет добавлен.

Пример

; AZJIO
; http://www.autoitscript.com/forum/topic/147402-inivirtualspe

#include <IniVirtualSPE.au3>
$sPath = @ScriptDir & '\Sample.ini'
$s_ini_Text = FileRead($sPath)

$sText= _
'NewKey1=NewValue1' & @CRLF & _
'NewKey2=NewValue2'

; Запись секции (текст)
_IniVirtualSPE_WriteSection($s_ini_Text, '>>> Новая секция', $sText)

; Проверка
MsgBox(0, 'Содержимое ini-файла', $s_ini_Text)

Global $aRes[3][2] = [[2], ['NewKey1', 'NewValue1'], ['NewKey2', 'NewValue2 ']]

; Запись секции (массива), со 2 индекса
_IniVirtualSPE_WriteSection($s_ini_Text, 'Section3', $aRes, 2)

; Проверка при сохранении
MsgBox(0, 'Содержимое ini-файла', $s_ini_Text)