AutoIt: 3.
Версия: 1.1
Категория: Элементы GUI
Описание: Работает с GUI ListView привязанным к INI файлу
Код/Пример:
Автор: Max98
Версия: 1.1
Категория: Элементы GUI
Описание: Работает с GUI ListView привязанным к INI файлу
Код/Пример:
Код:
#cs--------------------------------------------------------------
Имя ...............: GUIListViewINI
Версия AutoIt .....: 3.2.10++
Язык ..............: Русский
Описание ..........: Функции для работы с таблицами в INI файлах
Автор .............: Max98
Версия ............: 1.1
#ce--------------------------------------------------------------
#include <GUIListView.au3>
#cs-------------------------------------------------------------------------------------------------------------------
Имя ....................: _GUIListViewLoadFromINI
Описание ...............: Загружает таблицу из INI файла
Синтаксис ..............: _GUICtrlListView_LoadFromINI($hListView, $hFile, $sSection, $sItemPrefix)
Параметры ..............: $hListView - Идентификатор элемента ListView
$hFile - INI файл
$sSection - Имя секции
$sItemPrefix - Префикс пункта
Возвращаемое значение ..: Успех - Количество граф
Ошибка - 0 @error равен 1
Связано с функциями ....: Нет
#ce-------------------------------------------------------------------------------------------------------------------
Func _GUICtrlListViewINI_LoadFromFile($hListView, $hFile, $sSection, $sItemPrefix)
Local $iNum = -1, $sString, $aData[_GUICtrlListViewINI_CountItems($hFile, $sSection, $sItemPrefix) + 1]
If Not FileExists($hFile) Then SetError(1)
_GUICtrlListView_DeleteAllItems($hListView)
While 1 = 1
$iNum += 1
$sString = IniRead($hFile, $sSection, $sItemPrefix & $iNum, "")
If $sString = "" Then ExitLoop
GUICtrlCreateListViewItem($sString, $hListView)
$aData[$iNum] = $sString
WEnd
Return $aData
EndFunc
#cs-----------------------------------------------------------------------------------------------------------------------
Имя ....................: _GUICtrlListView_AddItemToINI
Описание ...............: Добавляет в INI графу ListView
Синтаксис ..............: _GUICtrlListView_AddItemToINI($hFile, $sString, $sSection, $sItemPrefix)
$hFile - INI файл
$sString - строка для ListViewItem с разделителями (например: "1|2|3")
$sSection - Имя секции
$sItemPrefix - Префикс пункта
Возвращаемое значение ..: Успех - Количество граф
Ошибка - 0 @error равен 1
Связано с функциями ....: _GUICtrlListViewINI_CountItems
#ce-----------------------------------------------------------------------------------------------------------------------
Func _GUICtrlListViewINI_AddItem($hFile, $sString, $sSection, $sItemPrefix)
Local $iTotal
If Not FileExists($hFile) Then SetError(1)
$iTotal = _GUICtrlListViewINI_CountItems($hFile, $sSection, $sItemPrefix)
IniWrite($hFile, $sSection, $sItemPrefix & $iTotal, $sString)
EndFunc
#cs------------------------------------------------------------------------------------------------------------------
Имя ....................: _GUICtrlListViewINI_CountItems
Описание ...............: Считает количество граф ListView в INI
Синтаксис ..............: _GUICtrlListViewINI_CountItems($hFile, $sSection, $sItemPrefix)
$hFile - INI файл
$sSection - Имя секции
$sItemPrefix - Префикс пункта
Возвращаемое значение ..: Успех - Количество граф
Ошибка - 0, @error равен 1
Связано с функциями ....: Нет
#ce------------------------------------------------------------------------------------------------------------------
Func _GUICtrlListViewINI_CountItems($hFile, $sSection, $sItemPrefix)
Local $iNum = 0, $sString
If Not FileExists($hFile) Then SetError(1)
While 1 = 1
$sString = IniRead($hFile, $sSection, $sItemPrefix & $iNum, "")
If $sString = "" Then
ExitLoop
EndIf
$iNum += 1
WEnd
Return $iNum
EndFunc
#cs------------------------------------------------------------------------------------------------------------------
Имя ....................: _GUICtrlListViewINI_DeleteItem
Описание ...............: Удаляет графу ListView INI
Синтаксис ..............: _GUICtrlListViewINI_DeleteItem($hFile, $sSection, $sItemPrefix, $iItem)
$hFile - INI файл
$sSection - Имя секции
$sItemPrefix - Префикс пункта
$iItem - ID пункта
Возвращаемое значение ..: Нет
Связано с функциями ....: Нет
#ce------------------------------------------------------------------------------------------------------------------
Func _GUICtrlListViewINI_DeleteItem($hFile, $sSection, $sItemPrefix, $iItem)
Local $iTotal = _GUICtrlListViewINI_CountItems($hFile, $sSection, $sItemPrefix), $iNum = 0
IniDelete($hFile, $sSection, $sItemPrefix & $iItem)
$aSection = IniReadSection($hFile, $sSection)
If @error Then
MsgBox(16, "", "Ошибка. Не найден INI файл.")
SetError(1)
EndIf
For $i = 1 To $aSection[0][0]
If StringInStr($aSection[$i][0], $sItemPrefix, 1) > 0 Then
IniWrite($hFile, $sSection, $sItemPrefix & $iNum, $aSection[$i][1])
$iNum += 1
EndIf
Next
IniDelete($hFile, $sSection, $sItemPrefix & $iTotal - 1)
EndFunc
Автор: Max98