Считать значения из INI-файла в строковый массив - PullRequest
1 голос
/ 24 октября 2011

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

Как бы я поместил значение только в строковый массив?Я пишу эту утилиту, используя AutoIT.

1 Ответ

3 голосов
/ 25 октября 2011

Я сделал этот 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)
...