Что нового

Как в функцию GUICtrlSetData передать данные из ini файла?

uman

Новичок
Сообщения
25
Репутация
0
Подскажите пожалуйста, если количество строк(параметров) в ini файле известно, то тут как мне кажется сложностей быть не должно, но если количество строк меняется, то как предать их я не знаю, т.е. количество строк в Combo должно соответствовать актуальному значению количества строк в ini файле.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
uman
Прочитать ini-файл и обновить Combo. Возможно следить за изменением размера (FileGetSize) или датой изменения (FileGetTime) и в этот момент обновлять Combo (GUICtrlSetData), в справке есть пример как обновить.
 
Автор
U

uman

Новичок
Сообщения
25
Репутация
0
Спасибо, насколько я понимаю, речь идет, если так можно выразится, о высокой степени актуальности. Мне это не нужно. А нужно: открыл форму, в Combo скрипт передал значения строк из ini, далее скрипт отработал, завершил работу. Меняем количество строк в ini, открываем скрипт, а в Combo там актуальные значения строк ini.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Так ?

Пример:
Код:
Global $INI = @ScriptDir & '\IniFile.ini'
Global $ReadINI = IniRead($INI, 'Options', 'ComboText', '')

$Form1 = GUICreate("Form1", 272, 177, 192, 124)
$Combo1 = GUICtrlCreateCombo($ReadINI, 56, 72, 145, 25)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
	EndSwitch
WEnd


Пример INI файла:
Код:
[Options]
ComboText = Hello world
 
Автор
U

uman

Новичок
Сообщения
25
Репутация
0
Спасибо.
Куда и как(в смысле синтаксиса) записать слова: word1, word2, word3, word4, word5 и далее, в INI файл?
Пример структуры INI я видел.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Для того INI, который был до редактирования
Код:
[Options]
ComboText = word1|word2|word3|word4|word5
нужно пример переделать так
Код:
$Combo1 = GUICtrlCreateCombo("", 56, 72, 145, 25)
GUICtrlSetData($Combo1, $ReadINI)
 
Автор
U

uman

Новичок
Сообщения
25
Репутация
0
Спасибо! Работает!
Как бы еще при отрытии формы, в Combo, сразу видеть первое значение?
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
uman [?]
видеть первое значение
Код:
GUICtrlCreateCombo('', 10, 10, 150)
; GUICtrlSetData(-1, $ReadINI, StringRegExpReplace($ReadINI&'|', '^(.*?)\|.*', '\1'))
GuiCtrlSetData(-1, $ReadINI, StringLeft($ReadINI, StringInStr($ReadINI&'|', '|')-1))


принцип
Код:
GuiCtrlSetData(-1, 'один|два', 'один')
 
Верх