БИБЛИОТЕКА ПОДПРОГРАММ ОБРАБОТКИ ДВОИЧНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ

Зарегистрировано в Реестре программ для ЭВМ 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-ти разрядных версий.

Демонстрационные примеры:

(исходные тексты библиотек содержатся в корневом каталоге демонстрационных примеров)

32 разрядные:

16 разрядные:

PRIM

HUFFMAN - программа преобразования факсимильных сообщений 3 группы.

LINPR - программа поиска линейных зависимостей в битовых данных.

Для правильного понимания описанных методов работы с объектно-ориентированными модулями обработки битовых строк желательно предварительно изучить основы объектно-ориентированного программирования.