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

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

Ответить
Настройки темы
Перемешивание и сортировка в INI файле

Аватара для Centrinar

Старожил


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

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


Изменения
Автор: Creat0R
Дата: 23-06-2011
Помогите пожалуйста.
Есть INI файл, куда скрипт записывает программы, типа:
[Progs]
prog1=<tetsprog1.exe><........
prog2=<tetsprog2.exe><........
.....
Необходима графическая оболочка с пом. которой можно перемешивать или сортировать программы. Ну например, поменять tetsprog1 и tetsprog1 местами при этом порядковый номер prog* должен остаться!
СПАСИБО!

Отправлено: 22:49, 13-01-2011

 

Аватара для madmasles

Ветеран


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

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


Centrinar,
Попробуйте с ComboBox.

Последний раз редактировалось madmasles, 13-08-2011 в 14:30.

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

Отправлено: 09:52, 13-02-2011 | #31



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

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


Аватара для Centrinar

Старожил


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

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


Подскажите пож. а где прописывается в каком столбце появляться ComboBox, я пытаюсь сделать что бы в 3ем столбце был вариант ComboBox Да-Нет а в четвертом и последующих never-every эт как пример....

Отправлено: 13:46, 16-02-2011 | #32


Аватара для madmasles

Ветеран


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

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


Centrinar,
В момент двойного клика ($NM_DBLCLK) или клика правой кнопкой ($NM_RCLICK) по ячейке ListView в функции WM_NOTIFY() глобальным переменным $iLast_LV_Index и $iLast_LV_SubIndex присваиваются значения индексов этой ячейки (строки и колонки соответственно). Эти индексы начинаются с 0, т.е., например, первая строка имеет индекс 0, а вторая колонка - индекс 1. Потом функция _Editor_LV_Show() на основании полученных индексов узнает месторасположение выбранной ячейки и перемещает туда дочернее окно $hEditor. Сейчас (в 4-Ini.au3), если $iLast_LV_SubIndex = 0, т.е. выбрана первая колонка, отображается ComboBox, если выбрана любая другая колонка, кроме первой, то отображается Input. В этой функции можно менять как колонки, в которых будет появляться ComboBox, так и варианты выбора. Это будет зависить от заданных значений $iLast_LV_SubIndex, например:
Код: Выделить весь код
;...
Switch $iLast_LV_SubIndex
    Case 0 ;первая колонка.
        ;показываем ComboBox с "да-нет".
    Case 4 ;пятая колонка
        ;показываем ComboBox с "может быть-всегда-никогда".
        ;и т.д.
    Case Else ;любая, кроме тех, которые указаны выше.
        ;показываем Input
EndSwitch
;...
Где-то так.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:39, 16-02-2011 | #33


Аватара для Centrinar

Старожил


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

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


Код: Выделить весь код
Func _Editor_LV_Show()

	$aRect = _GUICtrlListView_GetSubItemRect($hListView, $iLast_LV_Index, $iLast_LV_SubIndex)
	WinMove($hEditor, '', $aRect[0] + $iLeft + $iDelta, $aRect[1] + $iY_LV, $iColumn_W, _
			($aRect[3] - $aRect[1]) + $iDelta)
	If $iLast_LV_SubIndex Then
		Switch $iLast_LV_SubIndex
    Case 3 ;первая колонка.
		GUICtrlSetPos($nComboEditor, 0, 0, $iColumn_W, ($aRect[3] - $aRect[1]) + $iDelta)
		GUICtrlSetData($nComboEditor, 'May be|Never')
		GUICtrlSetState($nComboEditor, $GUI_SHOW)
		GUICtrlSetState($nInputEditor, $GUI_HIDE)
		GUISetState(@SW_SHOW, $hEditor)
		$fCombo = True
    Case 4 ;пятая колонка
        GUICtrlSetPos($nComboEditor, 0, 0, $iColumn_W, ($aRect[3] - $aRect[1]) + $iDelta)
		GUICtrlSetData($nComboEditor, 'May be|Never')
		GUICtrlSetState($nComboEditor, $GUI_SHOW)
		GUICtrlSetState($nInputEditor, $GUI_HIDE)
		GUISetState(@SW_SHOW, $hEditor)
		$fCombo = True
    Case Else ;любая, кроме тех, которые указаны выше.
		GUICtrlSetPos($nInputEditor, 0, 0, $iColumn_W, ($aRect[3] - $aRect[1]) + $iDelta)
		$sText = _GUICtrlListView_GetItemText($hListView, $iLast_LV_Index, $iLast_LV_SubIndex)
		GUICtrlSetData($nInputEditor, $sText)
		GUICtrlSetState($nInputEditor, $GUI_SHOW)
		GUICtrlSetState($nComboEditor, $GUI_HIDE)
		GUISetState(@SW_SHOW, $hEditor)
		$fCombo = False
EndSwitch
			
	EndIf
	$fEdit = True
	HotKeySet('{ENTER}', '_Editor_LV_Save')
	HotKeySet('{UP}', '_Editor_LV_Save')
	HotKeySet('{DOWN}', '_Editor_LV_Save')
EndFunc   ;==>_Editor_LV_Show
Все работает но кроме столбца Ключ т.е. первого.

Отправлено: 15:02, 16-02-2011 | #34


Аватара для madmasles

Ветеран


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

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


Цитата Centrinar:
Все работает но кроме столбца Ключ т.е. первого. »
И не должно работать. У Вас перед Switch ... идет If $iLast_LV_SubIndex Then, т.е. будет показывать то, что Вам надо, но только не в первой колонке, т.к. для нее $iLast_LV_SubIndex = 0.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:18, 16-02-2011 | #35


Аватара для Centrinar

Старожил


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

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


Разобрался, спасибо

Только он не сохраняет изменения т.е. выбрав значение из ComboBox оно все равно возвращается на то которое было указано в столбце

Обнаружил что он записывает изменения в значение Ключ. Даже если я редактировал 4 столбец. If $iLast_LV_SubIndex Then - я убрал

Последний раз редактировалось Centrinar, 16-02-2011 в 15:38.


Отправлено: 15:27, 16-02-2011 | #36


Аватара для madmasles

Ветеран


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

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


Centrinar,
Про сохранение забыл. Надо менять функцию _Editor_LV_Save(). Поменяйте в ней
Код: Выделить весь код
;...
_GUICtrlListView_SetItemText($hListView, $iLast_LV_Index, $sFromComboEditor)
;на
_GUICtrlListView_SetItemText($hListView, $iLast_LV_Index, $sFromComboEditor, $iLast_LV_SubIndex)
;...
Вроде, должно исправиться.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:57, 16-02-2011 | #37


Аватара для Centrinar

Старожил


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

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


Спасибо, работает

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


Аватара для Centrinar

Старожил


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

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


madmasles подскажи пож. как добавить кнопку сортировки т.е. при ее нажатии он ставил бы все по порядку. Например: я удалил одну строчку и у меня теперь стоит:
prog1=<tetsprog1.exe><........
prog3=<tetsprog2.exe><........

т.е. нехватает prog 2

А необходимо что бы он проставлял их порядок т.е. pog1, prog2 и т.д.

Отправлено: 16:38, 22-06-2011 | #39


Аватара для madmasles

Ветеран


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

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


Centrinar,
Пробуйте.

Последний раз редактировалось madmasles, 13-08-2014 в 08:44.

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

Отправлено: 03:11, 23-06-2011 | #40



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Изменить настройки в *.ini файле через *.bat CyberMaster Скриптовые языки администрирования Windows 53 13-10-2017 23:09
Система - Что у Вас в файле Finish.ini для GUI интегратора? wolkow70 Наборы обновлений для Windows XP/2003/Windows 7 13 15-01-2011 02:07
CMD/BAT - [решено] Поиск и изменение содержимого в INI файле avb_trader Скриптовые языки администрирования Windows 6 11-10-2010 08:20
[решено] Скрипт для удаления нужных слов в ini файле Pozia AutoIt 23 27-10-2009 18:42
Решено | Можно ли задать параметры в файле boot.ini пред инсталляцией? botvin Автоматическая установка Windows 2000/XP/2003 2 15-04-2006 02:46




 
Переход