Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт авг 18, 2017 8:02 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 2 сообщения ] 
Автор Сообщение
 Заголовок сообщения: ini_lite.inc
СообщениеДобавлено: Пн авг 09, 2010 4:35 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб фев 20, 2010 1:27 pm
Сообщения: 41
ini_lite.inc - небольшая библиотека для чтения файлов настройки. Написана с нуля.
Не является полным аналогом LIBINI.
Предназначена для приложений размером до 1кб, для которых нет смысла подгружать динамические библиотеки.
Не использует макросов, самостоятельно выделяет память, в общем полностью автономная.
Поддерживает windows и unix форматы завершения строки.
Несжатая скомпилированная библиотека имеет размер ~300 б. (сжатая LIBINI, с заголовком, весит ~2 Кб).
Размер и скорость достигнуты за счёт отсутствия парсинга пробелов, чувствительности к регистру, ограничения значения чисел четырьмя разрядами(можно увеличить), отсутствием сохранения регистров и передачей праметров через регистры.

Библиотека состоит из 5 функций:
1) Ini.OpenFile - открывает файл настройки.
Входной параметр: ebx - указатель на ASCIIZ имя файла.
Выходной параметр: ebx - результат (0-файл загружен/1-ошибка)
2) Ini.OpenSection - находит и открывает секцию.
Входной параметр: ebx - указатель на ASCIIZ имя секции.
Выходной параметр: ebx - результат (0-секция найдена/1-секция не найдена)
3) Ini.OpenKey - находит и открывает ключ.
Входной параметр: ebx - указатель на ASCIIZ имя ключа.
Выходной параметр: ebx - результат (0-ключ найден/1-ключ не найден)
4) Ini.CompareStrings - сравнивает строки.
Входной параметр: ebx - указатель на ASCIIZ строку.
Выходной параметр: ebx - результат (0- строки разные/1-строки одинаковые)
5) Ini.GetInt - возвращает целочисельное значение ключа.
Входной параметр: нет.
Выходной параметр: ebx - значение ключа.

Использование:
открываем файл->открываем секцию->открываем ключ
В общем всё как и в LIBINI, но обратите внимание на то, что здесь вместо функции получения указателя на строку - функция сравнения строк. Зачем это нужно? Для чтения булевых значений, которые на практике очень часто используются. Например:
Код:
mov  ebx,str_example
call Ini.CompareStrings
test bl,1
.....
str_example db 'yes',0

А доступ к строке можно получить через переменную dword[Ini.KeyPtr], в которой хранится указатель на значение ключа.
Надеюсь, эта библиотека поможет сделать вашу программу более компактной и конфигурируемой.
Если чего, пишите, версия ведь тестовая.


Вложения:
ini_lite.zip [892 байт]
116 скачиваний

_________________
Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда.
Вернуться к началу
 Заголовок сообщения: Re: ini_lite.inc
СообщениеДобавлено: Вс авг 22, 2010 11:21 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
нереентерабельна?

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 2 сообщения ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB