Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ini / 8 сообщений из 8, страница 1 из 1
17.08.2004, 12:54
    #32652627
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ini
Поискала на форуме создание, считывание, запись в INI файлы
Некоторые отправляют посмотреть TasTrade
У меня его нет. Если можно - ссылку или еще что-то...
Может кто-то ответит
Заранее спа
...
Рейтинг: 0 / 0
17.08.2004, 13:57
    #32652815
1234567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ini
*Объявление ф-ций API
DECLARE INTEGER GetPrivateProfileString IN Win32API AS GetPrivStr;
String cSection,String cKey,String cDefault,String @cBuffer,;
Integer nBufferSize, String cINIFile
DECLARE INTEGER WritePrivateProfileString IN Win32API AS WritePrivStr;
String cSection,String cKey,String cValue,String cINIFile

Текст метода класса для чтения из INI-файла:

LPARAMETERS lcType1,lcType2
LOCAL lcRetValue,lcBuffer,lnLength

lcType1=ALLTRIM(lcType1)
lcType2=ALLTRIM(lcType2)

lcRetValue=''

IF FILE(THIS.cINIFileName)
lnLength=0
lcBuffer=SPACE(2000)
lnLength=GetPrivStr(lcType1,lcType2,'',@lcBuffer,LEN(lcBuffer),ALLTRIM(THIS.cINIFileName))
IF lnLength>0
lcRetValue=LEFT(ALLTRIM(lcBuffer),lnLength)
ENDIF
ENDIF

RETURN lcRetValue
...
Рейтинг: 0 / 0
17.08.2004, 15:32
    #32653125
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ini
1234567

В том, что написано больше не понятного
Изучаю Лис недавно с постоянным отрывом на основную работу.
Поэтому, если можно подробнее
А - нет, вернусь к этому вопросу позже
...
Рейтинг: 0 / 0
17.08.2004, 16:01
    #32653204
1234567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ini
Чтобы работать с файлом настроек, нужно задействовать функции API. Их надо сначала объявить, причем желательно на уровне видимости всего приложения, например, в классе запуска приложения.

Объявляем:

DECLARE INTEGER GetPrivateProfileString IN Win32API AS GetPrivStr;
String cSection,String cKey,String cDefault,String @cBuffer,;
Integer nBufferSize, String cINIFile
DECLARE INTEGER WritePrivateProfileString IN Win32API AS WritePrivStr;
String cSection,String cKey,String cValue,String cINIFile

Теперь с помощью функции GetPrivStr можно читать из INI-файла.

Чтобы каждый раз не заморачиваться со специфическим вызовом функции GetPrivStr, создаем метод (опять же, желательно на уровне приложения, чтобы его можно было вызвать отовсюду)

Текст метода:

LPARAMETERS lcType1,lcType2
LOCAL lcRetValue,lcBuffer,lnLength

lcType1=ALLTRIM(lcType1)
lcType2=ALLTRIM(lcType2)

lcRetValue=''

IF FILE(THIS.cINIFileName)
lnLength=0
lcBuffer=SPACE(2000)
lnLength=GetPrivStr(lcType1,lcType2,'',@lcBuffer,LEN(lcBuffer),ALLTRIM(THIS.cINIFileName))
IF lnLength>0
lcRetValue=LEFT(ALLTRIM(lcBuffer),lnLength)
ENDIF
ENDIF

RETURN lcRetValue

Теперь просто вызываем этот метод, передаем ему два параметра и получаем пустое значение, если ничего из INI не считано, и непустое, если что-то в INI имеем.

Например, есть INI-файл, в нем записано:

[Database]
SQLServer=SomeServer
DBName=SomeDatabase

Надо считать имя сервера для коннекта. Вызываем вышеуказанный метод, передаем ему два параметра: 'Database', 'SQLServer', получаем значение SomeServer.

Надо считать имя базы данных. Вызываем вышеуказанный метод, передаем ему два параметра: 'Database', 'DBName', получаем значение SomeDatabase.
...
Рейтинг: 0 / 0
17.08.2004, 16:03
    #32653209
1234567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ini
Хочу еще пояснить, что THIS.cINIFileName - это свойство класса, в которое записано имя файла настроек. Можно вместо него писать напрямую путь и имя INI-файла.
...
Рейтинг: 0 / 0
18.08.2004, 14:25
    #32654842
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ini
1234567

Пробовала класс для кнопки.
А класс запуска прилож - нет
Что для него явл. базовым
...
Рейтинг: 0 / 0
18.08.2004, 20:09
    #32655706
Khor_olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ini
1234567

Спасибо! Все получилось.
Но есть вопрос.
Если нет INI первоначально , я могу его функциями API создать программно?
Или только через функции доступа низкого уровня типа FWRITE?
Если знаешь - поделись
...
Рейтинг: 0 / 0
19.08.2004, 13:06
    #32656613
1234567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ini
А не легче создать его в текстовом редакторе? )))))))))

Лучше функцией FPUTS()
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ini / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]