Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Редактирование txt в GUI

Ответить
Настройки темы
[решено] Редактирование txt в GUI

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток, уважаемые форумчане!
Есть txt файлик, в котором хранится большое количество [Variables] для основного ini файла.
Пример txt:
читать дальше »
[Variables]
BGdock=bgdock.png
BGmenu=bgmenu.png
mark=mark.png
Icon1=Icon1.png
Icon2=Icon2.png
Icon3=drawer.png
...


Вот примерный GUI приложения:


Надо, чтобы в список выводились наименования строк из txt (BGdock= 'Фон', BGmenu= 'Фон меню', Mark= 'Выделение иконки' и т.д.), в поле ввода при выделении каждого из пунктов в списке по умолчанию выводилась инфа, которая стоит после знака '=' в соответствующей строчке (для 1 строчки 'bgdock.png', для 2 - 'bgmenu' и т.д.). При изменении данных в поле ввода и нажатии кнопки Set они должны подставляться после знака '=', перезаписывая при этом старое значение.
Можете посодействовать в реализации этой примочки?

Отправлено: 14:49, 05-07-2011

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Не уверен что правильно понял, но вот что получилось:

Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <ListBoxConstants.au3>

OnAutoItExitRegister("_OnExitProc")

Global $sConfig_File = @ScriptDir & "\Config.ini"
Global $aIniData = IniReadSection($sConfig_File, "Variables")

$hGUI = GUICreate("Test Script", 300, 200)

$nList = GUICtrlCreateList("", 20, 20, 260, 120, BitXOR($GUI_SS_DEFAULT_LIST, $LBS_SORT))
$nInput = GUICtrlCreateInput("", 20, 150, 200, 20)
$nSet_Button = GUICtrlCreateButton("Set", 225, 150, 55, 20)

For $i = 1 To UBound($aIniData)-1
    GUICtrlSetData($nList, $aIniData[$i][0])
Next

GUISetState(@SW_SHOW, $hGUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nList
            $sItem = GUICtrlRead($nList)

            For $i = 1 To UBound($aIniData)-1
                If $aIniData[$i][0] = $sItem Then
                    GUICtrlSetData($nInput, $aIniData[$i][1])
                    ExitLoop
                EndIf
            Next
        Case $nSet_Button
            $sItem = GUICtrlRead($nList)

            If $sItem = "" Then
                MsgBox(48, 'Attention', 'No selected item.', 0, $hGUI)
                ContinueLoop
            EndIf

            For $i = 1 To UBound($aIniData)-1
                If $aIniData[$i][0] = $sItem Then
                    $aIniData[$i][1] = GUICtrlRead($nInput)
                    ExitLoop
                EndIf
            Next
    EndSwitch
WEnd

Func _OnExitProc()
    IniWriteSection($sConfig_File, "Variables", $aIniData)
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:02, 05-07-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Creat0R ,
Спасибо огромнейшее!!! Практически то, что нужно!
Пара недочётов - сохраняет после закрытия (может быть так и надо), т.е. не "на лету" непосредственно после нажатия кнопки Set; ну и ещё один - инфу хватает только из ini фалов, у меня же переменные хранятся в txt в соседней директории.
Ну да не беда - допилю, Ваш пример очень поможет в изучении AutoIT (открыл его для себя только 21 час назад )

Отправлено: 17:33, 05-07-2011 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата koc9kaca:
Пара недочётов »
Это не недочёты...

Цитата koc9kaca:
сохраняет после закрытия (может быть так и надо), т.е. не "на лету" непосредственно после нажатия кнопки Set »
Нигде об этом небыло указано, тут главное что скрипт запоминает это, и да, сохраняет всё на выходе, так правильнее (хотя зависит конечно от предназначения программы, и насколько критично обновление данных).

Цитата koc9kaca:
инфу хватает только из ini фалов, у меня же переменные хранятся в txt в соседней директории. »
Инфу “хватает” из указанного файла в переменной $sConfig_File, я предположил что ini-структура должна хранится именно в нём. В любом случае, имя файла и его расширение можно указать любое, это никак не повлияет на работу скрипта.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 22:53, 05-07-2011 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Редактирование txt в GUI

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. OSArev Скриптовые языки администрирования Windows 2 30-01-2011 11:58
Разное - редактирование SchedLgU.txt vovnet Хочу все знать 0 02-02-2010 00:36
[решено] Вставить строчку из одного txt в оределённое место другого txt ZeroCrash AutoIt 7 13-07-2009 07:35
Не работает GUI после выхода другова GUI sashadeg AutoIt 3 15-05-2009 22:03
c++ с gui sad koder Программирование и базы данных 3 16-06-2004 08:51




 
Переход