Код:
![Выделить весь код](images/misc/selectcode.png)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_EVENT_DROPPED
If StringRight(@GUI_DragFile, 4) <> '.ini' Then
GUICtrlSetData($nInputIni, 'Это не ini-файл')
Else
FileCopy(@GUI_DragFile, @TempDir & '\' & _
StringRegExpReplace(@GUI_DragFile, '^.*\\', ''), 1)
$fLV = False
_GUICtrlListView_DeleteAllItems($hListView)
GUICtrlSetData($nComboSection, '')
GUICtrlSetData($nInputIni, '')
For $i = $nComboSection To $nListView
GUICtrlSetState($i, $GUI_DISABLE)
Next
GUICtrlSetData($nInputIni, @GUI_DragFile)
GUICtrlSetState($nComboSection, $GUI_ENABLE)
GUICtrlSetState($nButtonGet, $GUI_ENABLE)
$aIniTemp = IniReadSectionNames(GUICtrlRead($nInputIni))
If Not @error Then
$sData = ''
For $i = 1 To $aIniTemp[0]
$sData &= $aIniTemp[$i] & '|'
Next
$sData = StringTrimRight($sData, 1)
GUICtrlSetData($nComboSection, $sData, $aIniTemp[$aIniTemp[0]])
EndIf
$aIniTemp = 0
EndIf
Case $nButtonIni
$sFileIni = FileOpenDialog('Выберите ini-файл', _
@ScriptDir & '\', 'ini-файл (*.ini)', 1)
If Not @error Then
FileCopy($sFileIni, @TempDir & '\' & _
StringRegExpReplace($sFileIni, '^.*\\', ''), 1)
$fLV = False
_GUICtrlListView_DeleteAllItems($hListView)
GUICtrlSetData($nComboSection, '')
GUICtrlSetData($nInputIni, '')
For $i = $nComboSection To $nListView
GUICtrlSetState($i, $GUI_DISABLE)
Next
GUICtrlSetData($nInputIni, $sFileIni)
GUICtrlSetState($nComboSection, $GUI_ENABLE)
GUICtrlSetState($nButtonGet, $GUI_ENABLE)
$aIniTemp = IniReadSectionNames($sFileIni)
If Not @error Then
$sData = ''
For $i = 1 To $aIniTemp[0]
$sData &= $aIniTemp[$i] & '|'
Next
$sData = StringTrimRight($sData, 1)
GUICtrlSetData($nComboSection, $sData, $aIniTemp[$aIniTemp[0]])
EndIf
$aIniTemp = 0
Else
GUICtrlSetData($nInputIni, 'Вы не выбрали ini-файл')
EndIf
Case $nButtonGet
$aIniTemp = IniReadSection(GUICtrlRead($nInputIni), GUICtrlRead($nComboSection))
If Not @error Then
GUICtrlSetState($nSubMenuDelAll, $GUI_ENABLE)
GUICtrlSetState($nComboSection, $GUI_DISABLE)
GUICtrlSetState($nButtonGet, $GUI_DISABLE)
_GUICtrlListView_DeleteAllItems($hListView)
_GUICtrlMenu_DeleteMenu($hContextMenu, 2)
$nSubMenu = GUICtrlCreateMenu('Поменять значение местами с', $nContextMenu)
Dim $aSB_Item[$aIniTemp[0][0]]
$iCount = $aIniTemp[0][0] - 1
For $i = 1 To $iCount + 1
GUICtrlCreateListViewItem($aIniTemp[$i][0] & _
'|' & $aIniTemp[$i][1], $nListView)
$aSB_Item[$i - 1] = GUICtrlCreateMenuItem($aIniTemp[$i][1], $nSubMenu)
Next
GUICtrlSetState($nListView, $GUI_ENABLE)
GUICtrlSetState($nButtonSave, $GUI_ENABLE)
GUICtrlSetState($nButtonDefault, $GUI_ENABLE)
GUICtrlSetState($nButtonDelAll, $GUI_ENABLE)
$fLV = True
EndIf
Case $nButtonDefault
$aIniTemp = IniReadSection(@TempDir & '\' & _
StringRegExpReplace(GUICtrlRead($nInputIni), '^.*\\', ''), _
GUICtrlRead($nComboSection))
If Not @error Then
GUICtrlSetState($nSubMenuDelAll, $GUI_ENABLE)
_GUICtrlListView_DeleteAllItems($hListView)
_GUICtrlMenu_DeleteMenu($hContextMenu, 2)
$nSubMenu = GUICtrlCreateMenu('Поменять значение местами с', $nContextMenu)
Dim $aSB_Item[$aIniTemp[0][0]]
$iCount = $aIniTemp[0][0] - 1
For $i = 1 To $iCount + 1
GUICtrlCreateListViewItem($aIniTemp[$i][0] & _
'|' & $aIniTemp[$i][1], $nListView)
$aSB_Item[$i - 1] = GUICtrlCreateMenuItem($aIniTemp[$i][1], $nSubMenu)
Next
EndIf
Case $nButtonDelAll
$fLV = False
_GUICtrlListView_DeleteAllItems($hListView)
GUICtrlSetData($nComboSection, '')
GUICtrlSetData($nInputIni, '')
GUICtrlSetState($nSubMenuDelAll, $GUI_ENABLE)
For $i = $nComboSection To $nListView
GUICtrlSetState($i, $GUI_DISABLE)
Next
Case $nButtonSave
GUICtrlSetState($nSubMenuDelAll, $GUI_ENABLE)
$iLV = _GUICtrlListView_GetItemCount($hListView)
If $iLV Then
For $i = 0 To $iLV - 1
IniWrite(GUICtrlRead($nInputIni), GUICtrlRead($nComboSection), _
_GUICtrlListView_GetItemText($hListView, $i), _
_GUICtrlListView_GetItemText($hListView, $i, 1))
Next
EndIf
Case $nSubMenuDel
_GUICtrlListView_SetItemText($hListView, $iLast_LV_Index, 0, 1)
For $i = 0 To $iCount
GUICtrlSetData($aSB_Item[$i], _
_GUICtrlListView_GetItemText($hListView, $i, 1))
Next
Case $nSubMenuDelAll
_GUICtrlListView_DeleteItem($hListView, $iLast_LV_Index)
$iCount = _GUICtrlListView_GetItemCount($hListView) - 1
If $iCount > 0 Then
_GUICtrlMenu_DeleteMenu($hContextMenu, 2)
$nSubMenu = GUICtrlCreateMenu('Поменять значение местами с', $nContextMenu)
Dim $aSB_Item[$iCount + 1]
For $i = 0 To $iCount
$aSB_Item[$i] = GUICtrlCreateMenuItem(_GUICtrlListView_GetItemText( _
$hListView, $i, 1), $nSubMenu)
Next
Else
GUICtrlSetState($nSubMenuDelAll, $GUI_DISABLE)
_GUICtrlMenu_DeleteMenu($hContextMenu, 2)
$nSubMenu = GUICtrlCreateMenu('Поменять значение местами с', $nContextMenu)
Dim $aSB_Item[1]
$aSB_Item[0] = GUICtrlCreateMenuItem(_GUICtrlListView_GetItemText( _
$hListView, 0, 1), $nSubMenu)
EndIf