Чтение значений из INI-файла в массив строк

Я решил иметь сопроводительный файл .ini с исполняемым файлом, чтобы мне не приходилось жестко кодировать элементы, которые появляются в раскрывающемся меню. Я создал файл .ini и, используя функцию IniReadSection, смог просмотреть раздел и вывести каждую пару Key=Value в этом разделе.

Как мне поместить значение только в массив строк? Я пишу эту утилиту с помощью AutoIT.


person JHamill    schedule 24.10.2011    source источник


Ответы (1)


Я сделал этот ini-файл:

[JHamill]
key1=value1
key2=value2
key3=value3

Я взял немного кода из примера IniReadSection и изменил его, чтобы можно было использовать его для раскрывающегося меню.

$var = IniReadSection("test.ini", "JHamill")

$str = ""
For $i = 1 To $var[0][0]
    $str &= $var[$i][1] & "|"
Next
$str = StringTrimRight($str, 1)

GUICreate("JHamill GUI combo")

GUICtrlCreateCombo("", 10, 10)
GUICtrlSetData(-1, $str)

GUISetState()

While 1
    $msg = GUIGetMsg()

    If $msg = -3 Then ExitLoop
WEnd

Здесь вы видите, что вам не нужно создавать новый массив, чтобы заставить его работать. Но, поскольку вы спросили, вот то же самое, сначала создав новый массив, скопировав только элементы значения, а затем используя этот массив для заполнения поля со списком:

#include <Array.au3>

$var = IniReadSection("test.ini", "JHamill")

Local $arr[$var[0][0]]
For $i = 1 To $var[0][0]
    $arr[$i-1] = $var[$i][1]
Next
_ArrayDisplay($arr)
person Jos van Egmond    schedule 25.10.2011