{Библиотека AllLib - набор исходников для расширения функционала стандартных библиотек Delphi. Краткая справка. Список модулей:
ComConst.pas, Consts.pas, DBConsts.pas, OleConst.pas, RTLConsts.pas, SysConst.pas - двуязычные (руссифицированные) константы; GExcept.pas, GExcepts.pas - упрощенные версии SysUtils, которые могут использоваться вместо данного модуля для создания небольших приложений; GConsts.pas, GGlbUtil.pas, GVariant.pas, GDifUtil.pas, GVCLUtil.pas - служебные функции и объекты общего назначения; GWinCryp.pas, GWinCPro.pas, GMProAPI.pas, GCryAPI.pas, GMsgPro.pas - отдельные существующие дополнения к библиотеке, реализующие использование криптографии CryptoAPI RSA и Крипто-Про, Сигнал-КОМ Message-PRO} {
I. ОБЩИЕ ФУНКЦИИ (типы, строки, варианты, память, списки, таблицы, потоки, файлы, ini, реестр, многопоточность, исключения, языки).
1. КОНВЕРТАЦИЯ. Конвертация строк и вариантов в типы и наоборот с автораспознаванием многих форматов независимо от настроек разделителей Windows, варианты функций без порождения исключений и использования SysUtils и с порождением исключений:
2. КОДИРОВАНИЕ. Кодирование и декодирование, в том числе поддерживается быстрое кодирование длинных строк, разбор DFM, проверка соответствия и извлечение по маске, округление дат, поиск и замена, массив в строке, парсинг и работа с текстом:
3. ПАМЯТЬ. Контроль утечек объектов и возможность контроля утечек памяти, дескрипторов; работа со списком и списком списков без SysUtils и использования объектов с заданием емкости, работа со строкой с заданием емкости и перераспределением памяти при превышении емкости, наращиваемой шагами, операции с указателями:
4. СПИСКИ. Индексируемые списки и таблицы без изменения порядка элементов с построением индекса при первой попытке поиска, поиск в таблице по любому набору колонок (списки и таблицы - указателей, строк, вариантов); иерархия без VCL:
5. ПОТОКИ. Обертки потоков с кэшированием чтения и записи, возможностью чтения следующего фрагмента данных без смещения позиции благодаря кэшу, извлечением следующей строки до перевод строки:
6. ФАЙЛЫ. Список файлов, копирование и удаление по маске подкаталогами и прогрессом, собственное имя DLL, чтение версий библиотек, полное имя запускаемого файла по краткому, запись в лог, на консоль и поддержка отладки многими функциями, разбор командной строки, диалоги выбора файла и папки без VCL, работа с Map-файлами, текстом буфера обмена с корректным чтением русских букв, работа с ярлыками:
7. INI. Ini в памяти или потоке, возможность работы с секцией без имени, значениями параметров любой длины; быстрое чтение иерархической конфигурации в многомерный массив вариантов:
8. РЕЕСТР. Реестр с корректной работой при ограниченных правах доступа, экспортом, импортом и удалением ключа с подразделами:
9. МНОГОПОТОЧНОСТЬ. Threadvar с инициализацией и завершением, правильной работой в Delphi 3, поддержка многопоточности всем кодом, инициализация и автоосвобождение объектов без увеличения кода приложения в случае подключения библиотеки без обращений к объекту библиотеки из приложения, работа с критическими секциями без SysUtils:
10. ИСКЛЮЧЕНИЯ. Отдельные модули сокращенных аналогов SysUtils для небольших приложений; объекты исключений с именем процедуры и кодом ошибки, в том числе поддержкой определения текста по коду ошибки Windows; список информации об исключениях:
11. ЯЗЫКИ. Русские и английские языковые константы, динамический выбор языка; чтение текущего языка системы; сумма прописью для разных валют на русском и английском с torry.ru без необходимости ini-файла; проверка ключевания счета:
12. УДОБНЫЕ ФУНКЦИИ И ДР. Прочие функции для конвертации типов, удобной работы со строками вроде IIf, IfEmpty, AddPrefix, AddPostfix, JoinStr, вариантами, файлами:
II. СПЕЦИАЛЬНЫЕ ФУНКЦИИ (окна, база, интернет, COM, интерпретация скриптов, процессы, сжатие, привязка к компьютеру, графика).
1. ДИАЛОГИ. Диалоги без VCL, SysUtils и ресурсов; добавление иконки в системную область панели задач; получение списка окон верхнего уровня или иерархии с дочерними окнами; скроллирование в конец и поиск в TRichEdit в VCL, быстрое получение и обновление списка TListView и иерархии TTreeView из списка и иерархии в памяти:
2. БАЗЫ ДАННЫХ. Работа с базами данных через ADO без VCL, загрузка выборки таблиц в индексируемую таблицу вариантов в памяти и обновление выборки таблицы в базе по таблице; получение версии ADO; чтение структуры базы:
3. ИНТЕРНЕТ. Работа с сокетами для сервера и клиента без VCL и SysUtils, работа с HTTP, проверка подключения и подключение к интернету, выход из Offline-режима браузера, получение собственных IP-адресов, разбор HTTP-ссылки; обертки ASP- и HTML-объектов, общий метод чтения из ASP параметров сертификата CryptoAPI/Крипто-Про и Сигнал-КОМ Inter-PRO Client; отсылка почты:
4. СКРИПТЫ. Поддержка интерпретатора скриптов JScript, VBScript; поддержка интерфейса IDispatch; внутренний парсер функции строки обращения к COM-объекту с параметрами; получение GUID:
5. ПРОЦЕССЫ. Список имен и идентификаторов процессов; запуск задачи с ожиданием ее завершения или ожиданием создания ею первого окна, открытие документа; ожидание создания файла, ожидание указанного промежутка времени без загрузки процессора; объекты межзадачного обмена; запуск приложения от имени пользователя; запуск и остановка сервиса с таймаутом; запуск и остановка приложений COM+ в Component Services:
6. СЖАТИЕ. Сжате и распаковка с использованием Delphi ZLib (без внешних dll); распаковка CAB-файла:
7. ПРИВЯЗКА К КОМПЬЮТЕРУ. Привязка приложения к компьютеру путем чтения из оборудования информации о BIOS, CPU, HDD; также чтение системной информации тактовой частоте процессора, PCI-драйверах, версии Windows и Internet Explorer, доступных шрифтах:
8. ГРАФИКА. Поддержка загрузки GIF, PCX - позаимствованы с torry.ru; поддержка загрузки других форматов графики, в том числе TIF, PNG с помощью GDI+ (сделана динамически, т.к. библиотека может отсутствовать в старых Windows); функция изменения яркости картинки:
9. ФИНАНСОВЫЕ И ДР. Прочие специализированные функции и классы конвертации, в том числе в и из формата 1С, поддержки HTTP-транспорта, получения информации об автозагружаемых процессах Windows:
10. СИММЕТРИЧНОЕ ШИФРОВАНИЕ И CRC, ХЭШИРОВАНИЕ. Шифрование по алгоритмам Blowfish, RC6, GOST с кэшированием и CRC32, хэширование MD5, SHA1, SHA256, разбор X500:
ОСОБЕННОСТИ БИБЛИОТЕК :
исправлен Access violation, который мог возникать в AddValueToArrayStr; перенос текста на строки, по-возможности, по словам LinesByWord; AddSQLBlock, TCustomDatabaseAccess.ExecSQLBlocks и TTableAccess.LoadSQLBlocks для конструирования длинных SQL-запросов из множества частей; диалог отображения прогресса TProgressForm, прогресс закачки файла TWinInetAPI.DownloadDlg, обновление ресурса в исполняемом модуле или библиотеке WindowsAPI.UpdateResource, загрузка ресурса в строку LoadResourceStr, перечисление ресурсов EnumResources; вычитание десятичных чисел в строках любой длины SubtractDec, шестнадцатеричных SubtractHex, поиск последнего среди файлов с номером в имени GetNextFileName, переименование файлов с номером в имени с увеличением номера на единицу ShiftFileNames; информация об установленных в системе Сигнал-КОМ Admin-PKI, начиная с наиболее старшей версии, запрос сертификата с использованием Admin-PKI TBaseMessagePro.CertRequest, установка сертификата по предыдущему запросу TBaseMessagePro.CertAccept; генерация короткого уникального для пользователя идентификатора на базе даты и времени LibGenId, уникальность реализуется с помощью мэп-файлов, идентификатора на базе тиков с момента загрузки и GUID GetUniqueId, генерация нового идентификатора с контролем уникальности для таблицы GenNextId; проверка правильности заполнения и наличия только одного email-адреса CheckEmail; проверка соответствия шаблону очередного читаемого из потока набора строк StreamReadByTemplate; тип базы данных по строке соединения ADODetectDatabaseType, TADODatabaseAccess.DatabaseType; в функцию определения размера физической памяти TotalPhysicalMemory добавлена поддержка объемов памяти выше 2 Гб; уменьшение оперативной памяти, занимаемой приложением, полезно, например, для критичных к использованию памяти приложений, сервисов, запускаемых при загрузке системы, DefineProcessWorkingSetSize(GetCurrentProcess, DWORD(-1), DWORD(-1)); в результате исправления ошибки начительно ускорена функция ArrayStrAddStr при работе с объемными строками - до скорости, которая предполагалась изначально; GetPasItemPos, ExtractPasFilesItems - извлечение строк и комментариев языка из текста исходника, файлов на языке Pascal, соответственно; DebugWrite, W, WM, WC, WF - исправлена ошибка возможного неправильного обращения к памяти при записи в отладочный лог; ZipAddStream, ZipNextStream, ZipPack, ZipUnpack, ZipPackFiles, ZipUnpackFiles - упаковка и распаковка потока, строк в памяти, файлов в формат ZIP 2.0 без пароля, используемого и современными версиями WinZip, если не выбрана повышенная степень сжатия, не требует внешних dll, используется стандартная библиотека Delphi ZLib; SendEMail - диалог отправки письма, совместимый с различными системами и почтовыми клиентами, используется Simple MAPI; SocketAPI.IsUDP - использовать UDP при работе с сокетами; SocketAPI.SendCached - отправка большого буфера по частям с кэшированием; SocketAPI.Ping - посылка Ping; NTPTime - получение текущего времени через интернет по протоколу NTP; MACAddress - получение MAC-адресов; PictureGraphics, BitmapAxis - рисование одного или нескольких графиков, координатной оси с делениями; SAXXMLReaderParse, TSAXXMLWriter - разбор и формирование XML с помощью SAX, используя библиотеки, поставляемые с Internet Explorer 4.0 и выше; CurrNumCodeToCharCode, CurrCharCodeToNumCode - по цифровому коду валюты возвращает буквенный, по буквенному - цифровой; CleaningDirList - получение каталогов временных файлов Windows, Internet Explorer и Mozilla FireFox для всех пользователей системы, кэша драйверов, библиотек, обновлений Windows, Internet Explorer, каталогов недавних документов, истории, cookies, корзины; EmptyRecycleBin, SHAddToRecentDocs, AutoCompleteClear, IEAutoCompleteClear, FFAutoCompleteClear - очистка корзины, добавление файла в список последних открытых документов или очистка этого списка, очистка истории автозаполнения системы и FAR, очистка ссылок и автозаполнения Internet Explorer, Mozilla FireFox; RhythmsLevel - расчет различных ритмов человека; IntToRoman, RomanToInt, StrToMorse, MorseToStr - представление числа в виде римских цифр, включая расширенные, и обратно, представление текста в виде азбуки Морзе и обратно, включая представление в виде русских букв; DeviceNameToInstanceId, DriveToDeviceInstanceId, GetFlashDisks, DeviceList, DeviceEject, - определение идентификатора устройства по его имени, по имени диска, буквы Flash-дисков, список устройств, извлечение устройства, например, отключение Flash-диска, ADSL-модема; CodePageToInfo, CharsetToInfo, CPInfoEx, SystemCodePages, IECodePages, CodePages - получение информации о множестве символов и номере кодовой страницы из внутреннего справочника, получение информации о кодовой страницы из системы, список с информацией о кодовых страницах по данным Windows, Internet Explorer c MIME-информацией, комбинированный; TInterfaceStream, TInterfacedStream, TCacheStream - открытие потока над IStream и реализация IStream, ISequentialStream над потоком, файлом или строкой, поток с кэшем, реализующий чтение исходного потока с добавлением вначале данных из кэша или отрезание части данных при записи в поток с записью их в кэш; GetLangId, SetLangId, LangId - добавлена поддержка задания языка для текущего потока, в каждом потоке может быть задан свой язык, также можно задать язык, применяемый по умолчанию в каждом новом потоке, где язык потока не был переопределен; InternetEntryConnect, InternetEntryActive - выполнение указанного подключения к интернет, проверка наличия подключения с указанным именем; StrToVBScriptStr, ASPToVBScript - конвертация строки S в строку для вставки в VBScript, преобразование страницы с ASP-вставками в единую ASP-вставку, строки вне ASP-вставок заменяются на вызовы Response.Write и конвертируются в строки VBScript, удобно для реализации динамических вставок кода в ASP-страницу; TrimedEmpty, TrimRangeCount, TrimExcept, TrimLeavingLeft, TrimLeavingRight - проверка, состоит ли строка только из пробелов и спецсимволов, подсчет длины строки после удаления пробелов и спецсимволов по краям, удаление пробелов и спецсимволов по краям строки с сохранением указанного количества пробелов, сохранением длины строки, дополняя при необходимости пробелами слева, справа; IntDigits, MoveStr, FillCharSafe - определение количества десятичных цифр в числе без преобразования его в строку, перенос содержимого строки в буфер, заполнение буфера символом с контролем заданности адреса и количества символов; TCustomDatabaseAccess.PackTable - упаковка таблицы, может быть необходима, например, при использовании dBase, упаковка производится путем копирования содержимого таблицы во временную, пересоздания таблицы и копирования содержимого обратно, это единственный метод, рекомендуемый Microsoft для ADO; ODBCAPI.AddDSN, ODBCAPI.AddDBASE - добавление DSN, то есть источника данных в ODBC, если он отсутствует, добавление стандартного источника данных для dBase, если он отсутствует, такой источник данных обычно добавляется при установке Microsoft Office и имеет строку соединения через ADO "Provider=MSDASQL;Data Source=dBASE Files" НОВЫЕ ФУНКЦИИ И КЛАССЫ, ИЗМЕНЕНИЯ: прочее новое}