|
|||||||
Настройки - Работа с INI файлом
Время создания: 16.03.2019 23:43
Раздел: Разные закладки - VBA - Access - msa.polarcom.ru - 10 Приложение MSA
Запись: xintrea/mytetra_db_adgaver_new/master/base/1532017026ndwr3qd73i/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Настройки - Работа с INI файломСоздаём , пишем и читaем INI файл в формате: Private Sub INITest() 'Пишем: Назв_Параметра , Знач_Параметра, Назв_Наздела INIWrite "Путь к БАЗЕ", CurrentProject.Path, "Настройка Приложения" 'Читаем: Назв_Параметра, Знач_Параметра_по_Умолчанию, Назв_Наздела MsgBox INIRead("Путь к БАЗЕ", "НЕ ЗНАЮ!", "Настройка Приложения") End Sub Сам модуль: '-------------------------------------------------------------------- ' Module : modINI ' Author : es ' Date : 07.01.2004 ' Purpose : Модуль Записи - Чтения INI файла локальных настроек приложения ' Файл создаётся в папке приложения - автоматом '-------------------------------------------------------------------- Option Compare Database Option Explicit 'Сразу задаём название файла !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Private Const INIFileName As String = "My Application.ini" '-------------------------------------------------------------------- 'Декларация API ...... Private 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 Private 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 INIWrite(sName As String, ByVal sValue As String, Optional sPart As String = "Settings") 'Запись данных в INI файл - аргументы: ' sName = Название параметра ' sValue = Значение параметра ' sPart = Название раздела '-------------------------------------------------------------------- Dim filePath As String Dim intRet As Integer On Error GoTo INIWriteErr 'Получаем путь .... filePath = CurrentProject.Path & "\" & INIFileName 'Пишем значения intRet = WritePrivateProfileString(sPart, sName, sValue, filePath) 'Проверка результата записи If intRet <> 1 Then 'Неудачное завершение MsgBox "Процедура INIWrite не смогла записать параметр INI Файла:" & vbCrLf & _ filePath & vbCrLf & _ "-----------------------------------------------------------------" & vbCrLf & _ "[" & sPart & "]" & vbCrLf & sName & "=" & sValue End If Exit Sub INIWriteErr: MsgBox "Процедура INIWrite привела к ошибке:" & vbCrLf & _ "#" & Err.Number & " " & Err.Description, vbCritical End Sub Public Function INIRead(sName As String, Optional sDefaultValue As String = "", Optional sPart As String = "Settings") As String 'Чтение данных из файла INI - с возможностью записи значения по умолчанию где аргументы: ' sName = Название параметра ' sDefaultValue = Значение по умолчанию (на случай его отсутствия) ' sPart = Название раздела '-------------------------------------------------------------------- 'Значение возвращаемое функцией GetPrivateProfileString если искомое значение параметра не найдено Const strNoValue As String = "" Dim filePath As String 'Путь к INI файлу Dim intRet As Integer 'Длина возвращаемой строки (функцией GetPrivateProfileString) Dim strRet As String 'Возвращаемая строка On Error GoTo INIReadErr 'Получаем путь .... filePath = CurrentProject.Path & "\" & INIFileName 'Получаем значение из файла - если его нет будет возвращен 3й аргумент = strNoValue strRet = String(255, Chr(0)) intRet = GetPrivateProfileString(sPart, sName, strNoValue, strRet, 255, filePath) strRet = Left$(strRet, intRet) 'Определяем было найдено значение или нет (если возвращено знач. константы strNoValue то = НЕТ) If strRet = strNoValue Then 'Значение не было найдено If sDefaultValue <> "" Then 'Если знач по умолчанию задано INIWrite sName, sDefaultValue, sPart 'Записываем заданное аргументом DefVal значение по умолчанию strRet = sDefaultValue 'и возвращаем его же End If End If 'Возвращаем найденное INIRead = strRet Exit Function INIReadErr: MsgBox "Функция INIRead привела к ошибке:" & vbCrLf & _ "#" & Err.Number & " " & Err.Description, vbCritical End Function |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|