Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Служба Рассылок Городского Кота


Служба Рассылок Городского Кота
VB Хитрости - советы и ответы на вопросы

 

Здравствуйте, уважаемые читатели.
Меня сильно удивил поток писем с просьбой рассказать о сохранении настроек программы в реестре и в INI файлах. Что-ж, этот выпуск будет посвящен работе с конфигурационными файлами, следующий - реестру.


Итак, ini файлы появились в миру давно. Во времена операционной системы DOS (а может и раньше). Программам нужно было хранить свои настройки , и делать это в удобном для последующего чтения виде. Так родился формат этих файлов, который остался неизменным до сих пор.

Любой ini файл несет в себе три основопологающих элемента
Во первых - это имя секции. Имя секции заключено в квадратные скобки и обычно не содержит внутри себя пробелов (не уверен будет - ли оно вообще работать с пробелами - поэкспериментируйте на досуге ) Имя секции является важным указателем - где искать

Второй элемент - имя параметра(ключа) . Имя параметра обычно тоже не содержит пробела и стоит с левой стороны знака равно (=)

Последний элемент - это значение параметра(ключа) , Тут вы можете разгуляться - значением может быть любой ряд текстовых символов ограниченный в конце знаком перевода строки Т.е. наглядно ini фаqл выглядит так -

[SectionName]
KeyName = Key Value can keep Any value

Так как структура ini файла не поддерживает вложенных структур - т.е. перечень ключей , входящие в секцию ограничен снизу или следуюшей секцией или концом файла - то возможность для организации такой структуры реализуется через секции, содержащие имена секций. Эдакий раздел "Содержание"
Т.е. простейший файл может выглядеть так -

[Company]
Roga&Kopita = RK
DengiDavay = MMM

[RK]
ShowMoney = True
ShowReport = True

[MMM]
ShowMoney = False
ShowReport = True

Т.е. если программа поддерживает несколько компаний, то она лезет в первую секцию чтобы определить название секции с настройками для текущей компани и после этого берет настройки из нужной секции. В принципе ничего не мешает органиховать таким образом еще несколько уровней вложенности.

Вы уже дочитали до этого места, и вероятнее всего удивляетесь, что это я не начинаю обьяснять как работать с этим добром. В самом деле все проще , чем вы думаете в моем архиве лежит модуль, которым я пользуюсь со времен VB4 - он служит мне верой и правдой. Я чуть доработатл его, так что не уверен, пойдет ли он под четвертым бэйсиком. А единственное, что я хотел бы дополнительно сделать для вас- дать к нему несколько комментариев
Дружно идем сюда ( http://vbrussian.com/Files/IniPrj.zip ) И забираем архив с проектом. Если вы еще не в курсе - http://vbrussian.com - это мой сайт - посвященный Бэйсику - заходите в гости :-)
Открываем проект . Идея его - показать как можно открывать , удалять и перебирать все существующие секции и ключи. Модуль от этого проекта самодостаточен, его можно включать в любой ваш проект , и использовать функции.

Коротенько о непонятностях, которые могут возникнуть - При получении списка (листа) ключей или секций этот лист возвращается от API функции в виде одной строки, элементы внутри этой стороки разделены символом с кодом 0 . Это вообще подход, свойственный API, Вас, как конечного пользователя уже написанного модуля не должно это беспокоить, так как мои функции возвращают вам массивы. Первый элемент имеет индекс 0, количество элементов возвращается в виде результата функции. Например

GetKeyNames(SectionName As String, FileName As String, KeyNames As Variant) As Integer

Сама функция вернет значение в виде числа - это количество ключей в зкданной секции, а KeyNames - массив с одержащий эти ключи.
Все просто. Думаю указанного примера достаточно.
Однако - как взгляд немного с другой стороны на проблему на моем сайте опубликован пример класса для работы с INI файлами. Заходите, забирайте, если интересует . и , настоятельно рекомендую там же скачать русскоязычный хелп по API он еше не закончен. Но автор все время пополняет его . Подробности на www.vbrussian.com

Теперь публикую пришедшую мне просьбу -

Меня зовут Андрей, возраст 35 лет, живу в городе Новосибирске.|
По образованию и занимаемой должности я инженер - строитель. И все вроде бы ничего, но года два назад, решил написать для своего предприятия сметную программу в Excel, самое смешное, что я еe: написал. За эти два года стало понятно - я не строитель, потому что теперь кроме программирования заниматься ничем не могу. Но программист я тоже никакой в виду наличия отсутствия образования. Выход один - учиться. И в этом - то самая большая проблема.
В России Visual Basic не популярен, и найти преподавателя, который мог бы меня подготовить для дальнейшей деятельности, практически невозможно. С интернетом я не очень дружен, хоть и подписался на Вашу рассылку . Думаю меня это не спасe:т, нужны фундаментальные знания, которые в письме не получишь. Мне кажется, что Вы можете знать тех людей, которые работают в Visual Basic на достаточно высоком уровне, живут в городе Новосибирске и не прочь позаниматься со "студентом" (естественно за деньги). Помогите пожалуйста найти таких людей, если конечно это возможно. Заранее благодарен. С Уважением, Андрей.

Связаться с Андреем можно здесь

Ну, а напоследок ,пара рассылок, которая, по моему мнению вам может пригодится:

"Русские документы" - самые свежие компьютерные статьи

Еженедельные анонсы компьютерных статей, появившихся на сайте "Русские документы"
Вся самая интересная информация: от программирования и хитростях операционных систем до безопасности и программных руководств. И все это - на русском языке !

Подписаться:

COM/DCOM - вокруг да около
Подписаться :
Успехов в программировании!

Борис Рудой

Автор сайта - Visual Basic на русском



http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное