Четвертый BORLAND С++ и его окружение




Наш декомпрессор в стиле фильтра


Декомпрессор, работающий в посимвольном режиме будет выглядеть

так:

int decompressor_next(decompressor* dc)

{

if (dc->rcnt && dc->rcnt-- > 0) /* Контроль декомпрессии */

return dc->c; /* Возврат повторного символа */

if (!dc->srclen dc->srclen-- <= 0) /* Пропуск ... */

return -1;

dc->c = *(dc->p)++; /* Обработка следующего символа буфера */

if (dc->c == 0xff) {

dc->rcnt = (*(dc->p)++)-1; /* Сброс первого символа в записи */

dc->c = *(dc->p)++; /* Здесь повторить символ */

dc->srclen -= 2;

}

return dc->c;

}




Содержание  Назад  Вперед