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


_IniVirtual_WriteSection

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

#Include <IniVirtual.au3>
_IniVirtual_WriteSection ( ByRef $a_Ini_Virtual2D, $sSection, $vData[, $iIndex = 1] )

Параметры

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

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

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

Примечания

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

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

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

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

Пример

; AZJIO
; http://www.autoitscript.com/forum/topic/147373-inivirtual

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

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

; Запись секции (текст)
_IniVirtual_WriteSection($a_ini_Main2D, 'Section6', $sText)

; Чтение записанной секции
$aRes = _IniVirtual_ReadSection($a_ini_Main2D, 'Section6')
_ArrayDisplay($aRes, 'Секция Section6')

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

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

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

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