Сайт AZJIO
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Скрипты для LiveCD [0]
Скрипты для WindowsXP [8]
Примеры скриптов [15]
Функции [5]
Поиск
Главная » Статьи » Скрипты AutoIt3 » Функции

IniVirtual + IniVirtualSPE
IniVirtual + IniVirtualSPE v0.4 - виртуальный ini-файл.

IniVirtual - (рекомендуется) создаёт виртуальный ini-файл в виде массив массивов. При частых запросах общее время доступа меньше, наилучший баланс скорости.

IniVirtualSPE - работает с ini-файлом, находящимся в памяти в виде текста. Скорость однократного доступа быстрее чем инициализация массива, но при частых запросах сумма времени затраченная на доступ превышает аналогичное время доступа варианта с массивом.

Назначение UDF в отличии от нативных функций
1. Снять ограничения 32767 при выполнении IniReadSection
2. Возможность загрузить ini-файл с интернета и работать с ним без сохранения на жёсткий диск.
3. Не переживать что при сохранении данных нужно будет заключать в кавычки строку с пробелом в конце, потому что за это переживать будет UDF.

_IniVirtual_Delete
_IniVirtual_Initial
_IniVirtual_Read
_IniVirtual_ReadSection
_IniVirtual_ReadSectionNames
_IniVirtual_RenameSection
_IniVirtual_Write
_IniVirtual_WriteSection
_IniVirtual_Save
_IniVirtual_IsDuplicateKeys
_IniVirtual_IsDuplicateSection
__IniVirtual_GetKeysVal


_IniVirtualSPE_Delete
_IniVirtualSPE_IsDuplicateKeys
_IniVirtualSPE_IsDuplicateSection
_IniVirtualSPE_Read
_IniVirtualSPE_ReadSection
_IniVirtualSPE_ReadSectionNames
_IniVirtualSPE_RenameSection
_IniVirtualSPE_Write
_IniVirtualSPE_WriteSection
_SectionExists

Формат возвращаемых значений и ошибок максимально приближен к нативным функциям, кроме некоторых исключений:
1. Если значение имеет пробел в начале или в конце, то значение автоматически заключаются в кавычки при записи/сохранении. Это позволяет записывать и считывать подобные строки не заботясь о том, что пробел будет обрезан движком UDF.
2. Ошибки записи быть не может, так как данные записываются в памяти.
3. Параметр ' param' и 'param' (без пробела) в нативных является одним и тем же параметром и это либо баг так как текст параметров разный, либо правило, по которому пробел с краю не может являтся частью параметра, соответственно в UDF параметр с пробелом скраю никогда не будет найден, так как любые пробелы параметра игнорируются.
4. В нативных параметр '=param' не будет найден, в то время как в UDF допускается символ "=" первым (если второй, то это будет уже разделитель), пока не понятно насколько это является недопустимым. Если поставить запрет на это, то "=" можно использовать как комментарий.

Некоторые правила INI-файла:

1. Примеры имени секции.
Допускаются пробельные символы до и после обрамляющих скобок
Допускается отсутствие закрывающей скобки, при этом имя секции может содержать пробелы но последняя буква не может быть пробелом. Например:
[sec]
[sec]
[ sec ]
[ sec ]
[ sec

2. Параметры (ключи) секции. Параметры не могут начинаться с символов [ и ; так как они будут является именем секции или закомментированными данными, т.е. описание, которое игнорируется. Внутри имени могут содержаться символы [ и ; а также пробел, русские и любые другие, кроме символа "=". Первый и последний символ параметра не может быть пробельным. Например:
param
param
param
pa[ram
pa;ram
pa ram

3. Символ отделяющий параметр от значения это первый попавшийся в строке символ "=", символы правее него уже будут являтся содержащимися в значении.

4. Значением является текст после символа "=" и может содержать любые символы, но крайние символы любой непробельный, иначе любые пробелы по краям значения обрезаются. Чтобы пробелы разрешить с краёв допускается использовать одинатрные или двойные кавычки, которые не будут являтся частью значения, то есть обрезаются при чтении, причём кавычки могут быть одного типа, либо двойные либо одинарные, иначе если они разные, то они будут частью значения. Кавычки обрезаются в любом случае, даже если значение совсем не содержит пробела. Если требуется, чтобы прочитанное значение имело кавычки по краям, необходимо продублировать их. Например:
значение
"значение"
значение
""значение""

5. Пример полной строки:
param = значение
param = "значение"
param=значение
param = ""значение""


Категория: Функции | Добавил: AZJIO (13.01.2013)
Просмотров: 1640 | Комментарии: 3 | Рейтинг: 0.0/0
Всего комментариев: 3
3 Leony  
0
Спасибо большое за UDF!

2 AZJIO  
0
Цель проста:
1. Снять ограничения 32767 при выполнении IniReadSection
2. Возможность загрузить ini-файл с интернета и работать с ним без сохранения на жёсткий диск.
3. Не переживать что при сохранении данных нужно будет заключать в кавычки строку с пробелом в конце, потому что за это переживать будет UDF.

1 Leony  
0
А какова практическая цель этого чуда?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вход
Друзья сайта
  • Справки AZJIO
  • USBTOR
  • PureBasic (Ru)
  • PureBasic (En)
  • AutoIT3 - Ru.Board
  • autoit-script.ru
  • autoitscript.com
  • WinPE - Ru.Board
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    ЮMoney

    Мой кошелёк

    ЮMoney: 4100117604217624


    AZJIO © 2024