БИБЛИОТЕКА ПОДПРОГРАММ ОБРАБОТКИ ДВОИЧНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ
Зарегистрировано в Реестре программ для ЭВМ 06 октября 1999 г. № 990723. Правообладатель Семенов В.Л.
FREEWARE.
Язык PASCAL не имеет встроенных функций обработки битовых последовательностей, что значительно ограничивает возможности его использования в ряде приложений. При этом стоит отметить, что использование другого языка высокого уровня не облегчит задачу обработки битовых массивов информации (если не считать языка PL-1, который не нашел применения на персональных ЭВМ). Наиболее простым решением проблемы является написание ряда подпрограмм на ассемблере, выполняющих необходимый круг функций.
Обращение к объектно-ориентированному программированию позволяет избавить программиста от необходимости ручного распределения памяти для битовых последовательностей, контроля выхода индексов элементов битовой последовательности за объем выделенной памяти и других рутинных операций.
Для доступа к битовым последовательностям в файле используются два типа объектов TBitFile и TBitFileLong, полученные статическим способом наследования от объекта TStr_Bit, и по своим функциям аналогичены объекту TBufStream.
Объект TBitFileLong использует стандартные методы буферизированного обмена данными и позволяет обрабатывать файлы размер которых ограничен только возможностями файловой системы.
Объект TBitFile для работы с файлами использует механизм отображения данных файла в память. От стандартных методов буферизированного обмена данными пришлось отказаться для обеспечения:
Величина файла, обрабатываемого объектом TBitFile не может превышать 256 Мбайт. Реальное увеличение скорости обработки данных получается только в случае, если обрабатываемый файл может целиком разместиться в физической памяти ЭВМ, в противном случае лучше использовать объект TBitFileLong.
Внутреннее представление последовательности бит в поле данных объекта совпадает с форматами хранения целых чисел. Номера бит могут принимать значения от 0 до 65520 (16 разрядная версия) или от 0 до 1'073'741'823 (32 разрядная версия).
Все инкапсулированные процедуры и функции можно разделить на четыре основных типа, выполняющих:
Названия всех процедур и функций максимально приближены к обозначениям соответствующих процедур и функций обработки символьных строк.
Осуществлялась проверка работоспособности разработанных подпрограмм для трансляторов Turbo Pascal версий 6.0, 7.0 и Delphi 1.0 (16-ти разрядная версия), и Delphi 2.0, 3.0, 3.1, 3.2, 4.0, 5.0, 6.0, 7.0 (32-х разрядная версия)
Так как большинство операций для разновидностей библиотек совпадает, то описание работы процедур и функций приведено совместно для 32-х и 16-ти разрядных версий.
Демонстрационные примеры:
(исходные тексты библиотек содержатся в корневом каталоге демонстрационных примеров)
PRIM
HUFFMAN - программа преобразования факсимильных сообщений 3 группы.
LINPR - программа поиска линейных зависимостей в битовых данных.
Для правильного понимания описанных методов работы с объектно-ориентированными модулями обработки битовых строк желательно предварительно изучить основы объектно-ориентированного программирования.