mail mail

Чтение и запись INI файлов

Функции WIF и RIF являются обёртками для WinAPI функций WritePrivateProfileString и GetPrivateProfileString, и предназначены для записи и чтения параметров из файлов конфигурации INI.

INI-файлы - это обычные текстовые файлы, предназначенные для хранения настроек программ.

Примерный вид структуры INI -файла:

; комментарий

[Section1]
var1 = значение_1
var2 = значение_2

[access]
changed=02.06.2009 08:15
[client]
name=ООО «Рога и копыта»
[files]
good=Название товара

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

Комментарии

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

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
2 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.