[Include] [INC] mxINI - Самый быстрый INI ридер/райтер
#1

Что это за скрипт
  • Это релиз инклуд-файла с инструментами для самого быстрого чтения/записи 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 милисекунд (мсек)


    ФС для тестирования

Ссылки Возможные недочеты, если они есть, опишите здесь.
Опубликовано только в русском разделе, буржуИны ыдут лесом, кроме ******, стессна ((:
Reply


Messages In This Thread
[INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 03.12.2009, 16:48
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by Serafim_sd - 03.12.2009, 19:32
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by Riaz - 03.12.2009, 20:05
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by xomka - 04.12.2009, 07:49
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 04.12.2009, 11:28
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by xomka - 04.12.2009, 13:03
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 04.12.2009, 14:46
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by Serafim_sd - 04.12.2009, 14:49
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by Riaz - 04.12.2009, 15:32
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 04.12.2009, 16:07
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by Serafim_sd - 04.12.2009, 17:40
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by Riaz - 04.12.2009, 20:55
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 05.12.2009, 05:48
Re: [PRE.INC] mxINI - Самый быстрый INI ридер/райтер - by Riaz - 05.12.2009, 12:42
Re: [INC] mxINI - Самый быстрый INI ридер/райтер [v0.2] - by MX_Master - 07.12.2009, 21:53
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by Zlayer - 08.12.2009, 18:36
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by Riaz - 08.12.2009, 18:51
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 09.12.2009, 09:42
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by JesterX - 10.12.2009, 17:41
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 10.12.2009, 18:46
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by JesterX - 11.12.2009, 04:26
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by ^Woozie^ - 12.12.2009, 13:29
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 12.12.2009, 18:05
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by ^Woozie^ - 12.12.2009, 18:28
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 13.12.2009, 10:48
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by ^Woozie^ - 13.12.2009, 11:01
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 14.12.2009, 06:46
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by [JIeXa] - 15.12.2009, 06:39
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by MX_Master - 16.12.2009, 16:24
Re: [INC] mxINI - Самый быстрый INI ридер/райтер - by ^Woozie^ - 17.12.2009, 12:08
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by MrDeath537 - 16.09.2010, 09:06
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by ZiGGi - 16.09.2010, 10:23
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by Johnny_Xayc - 16.09.2010, 11:04
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by ZiGGi - 16.09.2010, 11:38
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by Johnny_Xayc - 16.09.2010, 12:14
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by toneysix - 16.09.2010, 14:59
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by ZaR - 16.09.2010, 15:02
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by Stepashka - 16.09.2010, 15:24
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by DANGER1979 - 16.09.2010, 18:40
Re: [INC] mxINI - Самый быстрый INI ридер/райтер (v0.4 final) - by ZiGGi - 17.09.2010, 03:09

Forum Jump:


Users browsing this thread: 14 Guest(s)