:: Главная :: Решения :: Статьи :: Проект "Русский help" :: Файловый архив :: Фотоальбом :: Ссылки :: | ||
Л и с о в о д ы в с е х с т р а н, о б ъ е д и н я й т е с ь !!! |
Как работать с ini-файлами | ||
---|---|---|
Вопрос
Как работать (читать и записывать) с ini-файлами? Ответ ini-файл или файл с расширением из 3 букв "INI" (от слов initialization file - файл инициализации) - это обычный текстовый файл, который имеет специфическое содержание. Выглядит его содержимое примерно так: // Комментарий [Имя_раздела_1] Имя_реквизита_1 = значение реквизита Имя_реквизита_2 = значение реквизита // Комментарий [Имя_раздела_2] Имя_реквизита_1 = значение реквизита Имя_реквизита_2 = значение реквизитаТ.е. в квадратных скобках указывается имя раздела (другое название - "секция"), затем идет список реквизитов (другое название - "ключ") этого раздела и их значение. Количество разделов и количество реквизитов внутри раздела не ограничено. Желательно давать имена разделам и реквизитам в одно слово из латинских букв без пробелов и спец.символов. Но это скорее перестраховка. Если для Вас удобнее воспринимать имя раздела или реквизита с пробелом (в два слова) - пишите с пробелом! В качестве значения реквизита принимается вся строка от первого отличного от пробела символа после символа равенства до окончания строки, включая пробелы. Т.е. здесь для задания текстовой строки использовать кавычки не надо. Предполагается, что все значения имеют только и исключительно символьный тип. Символом комментария обычно служит две наклонные черты подряд. Хотя, в принципе, можно использовать абсолютно любой символ (вот только пробел нельзя ). Для используемых ниже API-функций важен факт совпадения искомого имени начиная с первого символа. Достаточно того, чтобы первый символ не совпадал с искомым. В принципе, можно прочитать такой файл из FoxPro функциями чтения текстовых файлов (FOPEN(), FREAD(), FileToStr() и т.п.) и сделать его разбор. "Но есть способ лучше" (с). Существуют специальные API-функции предназначенные для чтения и записи INI-файлов. GetPrivateProfileString - считывает значение указанного реквизита из указанного раздела. WritePrivateProfileString - записывает значение указанного реквизита в указанный раздел указанного ini-файла. Если указанного раздела или реквизита не существует, то он будет создан. Если указанного ini-файла не существует, то он также будет создан. Выглядит это примерно так: Запись значения в ini-файл
Чтение значения из ini-файл
Удаление раздела или реквизита Удаление - это запись не определенного значения
Определение структуры ini-файла Если структура ini-файла, т.е. имена секций и ключей, заранее не известны, то получить структуру ini-файла можно также используя функцию GetPrivateProfileString указав вместо имени секции или ключа число 0. В этом случае в качестве возвращаемого значения Вы получите либо список имен секций (если указать 0 первым параметром), либо список имен ключей указанной секции (если указать 0 вторым параметром). Имена будут разделены символом Chr(0)
Разумеется, объявлять API-функции каждый раз перед записью или чтением значений нет необходимости. Достаточно объявить эти функции один раз в стартовом файле. Также пример работы с INI-файлами можно посмотреть в классе, поставляемом вместе с FoxPro
Хотя в новейшей идеологии Microsoft предполагается, что вместо ini-файлов следует использовать запись/чтение в системный реестр Windows. Применительно к FoxPro следует рассмотреть возможность хранения дополнительных настроек в обычном файле DBF, поскольку FoxPro предназначен, прежде всего, именно для работы с файлами DBF. Исправлено 1 раз(а). Последнее : Владимир Максимов, 30.12.06 15:43 |
||
Тема | Просмотров | Написано | Написано |
---|---|---|---|
Program | 5567 | Владимир Максимов | 01.03.05 22:02 |
Как определить директорию, из которой запущена программа | 9808 | Владимир Максимов | 22.03.05 10:41 |
Как проверить факт существования переменной памяти, поля таблицы, метода формы | 14048 | Владимир Максимов | 20.04.05 18:31 |
Как работать с ini-файлами | 15804 | Владимир Максимов | 01.05.05 12:17 |
Символьные поля, переменные памяти и константы | 9755 | Владимир Максимов | 25.09.05 13:31 |
Как работать с путями доступа и именами файлов, содержащих пробелы | 7904 | Владимир Максимов | 22.02.06 22:00 |
Как вывести приложение на передний план | 18074 | Владимир Максимов | 04.03.07 14:17 |
Как получить разницу двух дат в формате: лет, месяцев, дней | 10789 | Владимир Максимов | 25.02.08 18:32 |
© 2006 Fox Club  |