Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Apr 20, 2019 7:42 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 2 posts ] 
Author Message
 Post subject: ini_lite.inc
PostPosted: Mon Aug 09, 2010 4:35 am 
Offline
User avatar

Joined: Sat Feb 20, 2010 1:27 pm
Posts: 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, но обратите внимание на то, что здесь вместо функции получения указателя на строку - функция сравнения строк. Зачем это нужно? Для чтения булевых значений, которые на практике очень часто используются. Например:
Code:
mov  ebx,str_example
call Ini.CompareStrings
test bl,1
.....
str_example db 'yes',0

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


Attachments:
ini_lite.zip [892 Bytes]
Downloaded 182 times

_________________
Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда.
Top
   
 Post subject: Re: ini_lite.inc
PostPosted: Sun Aug 22, 2010 11:21 am 
Offline
User avatar

Joined: Mon Apr 16, 2007 6:38 pm
Posts: 1222
нереентерабельна?

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 2 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited