03.12.2009, 16:48
(
Последний раз редактировалось MX_Master; 20.09.2010 в 13:59.
)
Что это за скрипт
Преимущества
Инструменты
Примеры
Тест
Ссылки
Опубликовано только в русском разделе, буржуИны ыдут лесом, кроме ******, стессна ((:
- Это релиз инклуд-файла с инструментами для самого быстрого чтения/записи INI файлов. Более того, этот инклуд не нуждается в настройке. Вы подключаете его в ФС или МОД и можно сразу читать/записывать INI файлы.
Преимущества
- Свободный формат
Во-первых, оформлять ваши INI файлы вы можете как угодно - криво/ровно, с отступами/без, с комментами/без, с любыми пробельными символами вокруг =. И это все никак не влияет на чтение/запись. Нет никаких лимитов на длину ключей или значений. Ключи и значения можно писать даже по-русски. В имени ключа/значении можно использовать любые символы кроме \r и \n. Пробелы и знаки табуляции вокруг имени ключа, вокруг символа = и перед текстовым значением считаются отступами. В одной строке вы можете поместить любое кол-во пар ключ/значение, включая всевозможные варианты оформления.
- Свободное расположение комментов
Чтобы увеличить скорость чтения, считается, что любые строки, где нет символа = это комментарии. Также комментарием может быть любой текст, все зависит от вашего форматирования.
- Скорость
Перед тем как читать что-то из INI файла, его также как и остальные файлы нужно открыть. При открытии весь файл копируется в ОЗУ вместе с именем. Остальные операции чтения/записи производятся непосредственно в ОЗУ. Именно поэтому все это происходит очень быстро. Если контент файла в ОЗУ был изменен, при закрытии он будет записан на диск.
Еще 1 плюс, который ранее в скриптинге не применялся - это сжатое хранение контента файла, что в 4 раза меньше, чем обычный формат. Скорость также достигается за счет отсутствия дополнительных функций, которые могли бы использоваться в функциях чтения/записи, а также за счет использования только встроенных функций скриптинга.
Инструменты
- ini_createFile ( "путь/к/файлу.ini", "Содержимое файла по умолчанию" )
- ini_openFile ( "путь/к/файлу.ini" )
- ini_closeFile ( ИД_открытого_файла )
- ini_setString ( ИД_открытого_файла, "имя ключа", "текстовое значение" )
- ini_setInteger ( ИД_открытого_файла, "имя ключа", 123456 )
- ini_setFloat ( ИД_открытого_файла, "имя ключа", 3.1416 )
- ini_getString ( ИД_открытого_файла, "имя ключа", returnValue )
- ini_getInteger ( ИД_открытого_файла, "имя ключа", returnValue )
- ini_getFloat ( ИД_открытого_файла, "имя ключа", returnValue )
- ini_removeKey ( ИД_открытого_файла, "имя ключа" )
- ini_getErrorInfo ( Код_ошибки )
Примеры
Код:
new iniFile = ini_createFile ( "test4268.ini" ); if ( iniFile < 0 ) iniFile = ini_openFile ( "test4268.ini" ); if ( iniFile >= 0 ) { new returnString[32], returnNumber, Float: returnFloat; ini_setString ( iniFile, "ключ со строкой", "текстовое значение" ); ini_setInteger ( iniFile, "ключ с числом", 123456 ); ini_setFloat ( iniFile, "ключ с дробью", 3.1416 ); ini_removeKey ( iniFile, "ключ с числом" ); ini_getString ( iniFile, "ключ со строкой", returnString ); ini_getInteger ( iniFile, "ключ с числом", returnNumber ); ini_getFloat ( iniFile, "ключ с дробью", returnFloat ); ini_closeFile ( iniFile ); printf ( "\n `ключ_со_строкой` = `%s`,\n `ключ_с_числом` = `%d`,\n `ключ_с_дробью` = `%f` \n", returnString, returnNumber, returnFloat ); } else print( "\n Не удалось открыть INI файл \n" );
-
ТЕСТ скорости 2-х библиотек, которые ориентированы исключительно
на чтение/запись в файлы INI формата.
Тестируются: Dini, mxINI
Для тестирования из библиотек будут использоваться только самые быстрые
функции чтения/записи для строк, т.к. скорость преобразования типов зависит
не от инструментов библиотеки, а от встроенных функций скриптинга.
Каждой библиотеке нужно будет создать и открыть INI файл, записать в него 100 ключей,
прочесть значения этих ключей, закрыть файл.
Это результаты выполнения вышеуказанных операций. Сравните их.
1 секунда = 1000 милисекунд (мсек)
ФС для тестирования
Ссылки
-
( v0.5 от 20.09.2010 ) Исходник на PASTEBIN.com | Исходник (прямая ссылка) | ZIP Архив (прямая ссылка)
( v0.4 от 25.01.2009 ) Исходный код | ZIP Архив
( v0.3 от 16.12.2009 ) ZIP Архив
( v0.2 от 08.12.2009 ) Исходный код | ZIP Архив
( v0.1 от 03.12.2009 ) Исходный код
- Наконец-то pastebin.com стал павильно понимать юникод, поэтому даю ссылки и на pastebin.com.
Чтобы не открывать, а сохранить файл под нужным вам именем,
в браузерах, обычно, есть контекстное меню и пункт "Сохранить как".
Опубликовано только в русском разделе, буржуИны ыдут лесом, кроме ******, стессна ((: