Функции WIF и RIF являются обёртками для WinAPI функций WritePrivateProfileString и GetPrivateProfileString, и предназначены для записи и чтения параметров из файлов конфигурации INI. INI-файлы - это обычные текстовые файлы, предназначенные для хранения настроек программ. Примерный вид структуры INI -файла:
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _ ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _ ByVal lpString As Any, ByVal lpFileName As String) As Long Public Sub WIF(ByVal sName$, ByVal val$, ByVal sPart$, ByVal FilePath$) ' функция ищет в ini файле FilePath$ раздел sPart$ (если раздела нет - он создаётся), ' и добавляет в него параметра с именем sName$ и значением val Dim intRet As Integer: intRet = WritePrivateProfileString(sPart, sName, val, FilePath) 'If intRet <> 1 Then 'Неудачное завершение'(Проверка результата записи) End Sub Public Function RIF(ByVal sName$, ByVal DefVal$, ByVal sPart$, ByVal FilePath$) As String ' функция ищет в ini файле FilePath$ раздел sPart$, ' и читает из него значение параметра с именем sName$ ' Если такой параметр не найден, возвращается значение по умолчанию DefVal$ Const strNoValue As String = "" Dim intRet As Integer 'Длина возвращаемой строки (функцией GetPrivateProfileString) Dim strRet As String 'Возвращаемая строка 'Получаем значение из файла - если его нет будет возвращен 3й аргумент = strNoValue strRet = String(255, Chr(0)): intRet = GetPrivateProfileString(sPart, sName, strNoValue, strRet, 255, FilePath) strRet = Left$(strRet, intRet) 'Определяем было найдено значение или нет (если возвращено знач. константы strNoValue то = НЕТ) If strRet = strNoValue Then strRet = DefVal 'Значение не было найдено - возвращаем значение по умолчанию RIF = strRet End Function
|
|||

Комментарии
Отправить комментарий