Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница:

 

  Вопрос: Чисто технический вопрос... Добавлено: 13.01.04 16:54  

Автор вопроса:  GlooM | Web-сайт: newlc.info | ICQ: 348453688 

У меня есть модуль ini (дал Chill), он читает/сохраняет форму в файл. Мне нужен кусок кода для кнопок "Save" и "Open", т.е. чтобы он открывал и сохранял в этот файл ini... Сам модуль:

МОДУЛЬ ДЛЯ РАБОТЫ С *.ini ФАЙЛАМИ
'**************************************************************************************
'Приведенные здесь три основные функции служат для работы
'с ini-файлами 2 на запись (для строкового и целочисленного
'параметров) и одна на чтение.
Private Declare Function GetPrivateProfileInt Lib "KERNEL32" Alias "GetPrivateProfileIntA" (ByVal strSection As String, ByVal strKeyName As String, ByVal lngDefault As Long, ByVal strFileName As String) As Long
Private Declare Function GetPrivateProfileString Lib "KERNEL32" Alias "GetPrivateProfileStringA" (ByVal strSection As String, ByVal strKeyName As String, ByVal strDefault As String, ByVal strReturned As String, ByVal lngSize As Long, ByVal strFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "KERNEL32" Alias "WritePrivateProfileStringA" (ByVal strSection As String, ByVal strKeyNam As String, ByVal strValue As String, ByVal strFileName As String) As Long
'**************************************************************************************
'**************************************************************************************
Private Declare Function GetPrivateProfileSection Lib "KERNEL32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
'**************************************************************************************
'Данная функция возвращает целочисленное значение из ini-файла.
'Где имя секции – strSection, имя ключа – strKey и strFile – полный путь к ini-файлу.
Public Function GetValueInteger(strSection As String, strKey As String, strFile As String) As Integer
Dim intValue As Integer

On Error GoTo PROC_ERR
 
  intValue = GetPrivateProfileInt(strSection, strKey, 0, strFile)
  GetValueInteger = intValue

PROC_EXIT:
  Exit Function
PROC_ERR:
  MsgBox "Ошибка: <" & Err.Number & "> - " & Err.Description, vbExclamation + vbOKOnly, "GetValueInteger"
  Resume PROC_EXIT
End Function
'**************************************************************************************

'**************************************************************************************
'Данная функция возвращает строковое значение из ini-файла.
'Где имя секции – strSection, имя ключа – strKey и
'strFile – полный путь к ini-файлу. Обратите внимание,
'что вначале резервируется пустая строка, а из результата функции выкидываются пустоты.
Public Function GetValueString(strSection As String, strKey As String, strFile As String) As String
Dim strBuffer As String * 256
Dim intSize As Integer

On Error GoTo PROC_ERR
  intSize = GetPrivateProfileString(strSection, strKey, "", strBuffer, 256, strFile)
  GetValueString = Left$(strBuffer, intSize)

PROC_EXIT:
  Exit Function
PROC_ERR:
  MsgBox "Ошибка: <" & Err.Number & "> - " & Err.Description, vbExclamation + vbOKOnly, "GetValueString"
  Resume PROC_EXIT
End Function
'**************************************************************************************

'**************************************************************************************
'Данная функция записывает в файл значение strValue
'и возвращает целочисленное значение: True, если запись
'произведена и False, в случае ошибки записи.
'Имя секции – strSection, имя ключа – strKey и strFile – полный путь к ini-файлу.
Public Function SetValue(strSection As String, strKey As String, strValue As String, strFile As String) As Integer
Dim intStatus As Integer

On Error GoTo PROC_ERR
  intStatus = WritePrivateProfileString(strSection, strKey, strValue, strFile)
  SetValue = (intStatus <> 0)

PROC_EXIT:
  Exit Function
PROC_ERR:
  MsgBox "Ошибка: <" & Err.Number & "> - " & Err.Description, vbExclamation + vbOKOnly, "SetValue"
  Resume PROC_EXIT
End Function
'**************************************************************************************

 

'**************************************************************************************
'Данная функция возвращает двумерный массив значений конкретной секции.
'Вначале, с помощью API-функции в буферизованную строку (strBuffer)
'считывается значение всей секции и определяется количество знаков (intSize).
'Далее, обрезаем строку от пустот и передаем это значение переменной strTemp.
'Затем в цикле Do-Loop считываем значение каждой строки (они разделены символом Chr(0))
'и, предварительно разделив их на имя ключа и его значение, сбрасываем в двумерный массив.
'Первый параметр в массиве – будет означать, что мы считываем: имя ключа (0) или его значение (1).
Public Function GetSection(strSection As String, strFile As String)

Dim strBuffer As String * 512
Dim intSize As Integer
Dim strTemp As String
Dim intTemp As Integer
Dim Index As Integer
Dim arrSection() As String
Dim key As String, value As String, str As String

On Error GoTo PROC_ERR
  intSize = GetPrivateProfileSection(strSection, strBuffer, 512, strFile)
  strTemp = Left$(strBuffer, intSize)
  Do Until Len(strTemp) = 0
    intTemp = InStr(1, strTemp, Chr(0))
    ReDim Preserve arrSection(1, Index) As String
    str = Mid(strTemp, 1, intTemp)
    key = Mid(str, 1, InStr(1, str, "=") - 1)
    value = Mid(str, InStr(1, str, "=") + 1)
    arrSection(0, Index) = key
    arrSection(1, Index) = value
    Index = Index + 1
    strTemp = Mid(strTemp, intTemp + 1, Len(strTemp))
  Loop
  GetSection = arrSection

PROC_EXIT:
  Exit Function
PROC_ERR:
  MsgBox "Ошибка: <" & Err.Number & "> - " & Err.Description, vbExclamation + vbOKOnly, "GetValueString"
  Resume PROC_EXIT
End Function
'**************************************************************************************

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам