Board.KolibriOS.org
http://board.kolibrios.org/

ini_lite.inc
http://board.kolibrios.org/viewtopic.php?f=24&t=1480
Страница 1 из 1

Автор:  konstantin_666. [ Пн авг 09, 2010 4:35 am ]
Заголовок сообщения:  ini_lite.inc

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 байт]
156 скачиваний

Автор:  Gluk [ Вс авг 22, 2010 11:21 am ]
Заголовок сообщения:  Re: ini_lite.inc

нереентерабельна?

Страница 1 из 1 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/