{ Общие типы данных для реализации методов сжатия } { ╬с∙шх Єшя√ фрээ√ї фы  ЁхрышчрЎшш ьхЄюфют ёцрЄш  } {--------------------------------------------------------------------------- (c) Copyright Aleksandrov O.E., 2000 Molecular Physics department, USTU, Ekaterinsburg, K-2, 620002, RUSSIA phone 75-47-15 E-mail: aleks@dpt.ustu.ru (c) Copyright Александров О.Е., 2000 620002, Екатеринбург, К-2, УГТУ, Кафедра молекулярной физики тел. 75-47-15 E-mail: aleks@dpt.ustu.ru ----------------------------------------------------------------------------} {--------------------------------------------------------------------------- (c) Copyright Aleksandrov O.E., 2000 Molecular Physics department, USTU, Ekaterinsburg, K-2, 620002, RUSSIA phone 75-47-15 E-mail: aleks@dpt.ustu.ru (c) Copyright └ыхъёрэфЁют ╬.┼., 2000 620002, ┼ърЄхЁшэсєЁу, ╩-2, ╙├╥╙, ╩рЇхфЁр ьюыхъєы Ёэющ Їшчшъш Єхы. 75-47-15 E-mail: aleks@dpt.ustu.ru ----------------------------------------------------------------------------} Unit ComTypes; INTERFACE type { Порция данных, которыми будем оперировать (далее именуется байт). В данном случае это байт, но можно использовать и слово (WORD - два байта).} { ╧юЁЎш  фрээ√ї, ъюЄюЁ√ьш сєфхь юяхЁшЁютрЄ№ (фрыхх шьхэєхЄё  срщЄ). ┬ фрээюь ёыєўрх ¤Єю срщЄ, эю ьюцэю шёяюы№чютрЄ№ ш ёыютю (WORD - фтр срщЄр).} tByte=byte; { ВНИМАНИЕ! использование WORD не тестировалось и ассемблерные процедуры требуют переработки для работы с WORD.} { ┬═╚╠└═╚┼! шёяюы№чютрэшх WORD эх ЄхёЄшЁютрыюё№ ш рёёхьсыхЁэ√х яЁюЎхфєЁ√ ЄЁхсє■Є яхЁхЁрсюЄъш фы  ЁрсюЄ√ ё WORD.} { вспомогательный тип для счетчиков степени сжатия } { тёяюьюурЄхы№э√щ Єшя фы  ёўхЄўшъют ёЄхяхэш ёцрЄш  } tUINT={$IfNDef Delphi}word{$ELSE}cardinal{$EndIf}; tINT={$IfNDef Delphi}longint{$ELSE}int64{$EndIf}; tINTEx=packed record case byte of 0:(int:tINT); 2:(lo,hi:{$IfNDef Delphi}word{$ELSE}cardinal{$EndIf}); end; const { Размер tByte в битах } { ╨рчьхЁ tByte т сшЄрї } cSizeOftByteInBit=8*SizeOf(tByte); type tByteBitsCounter=0..cSizeOftByteInBit; tByteBitsNumber=0..Pred(cSizeOftByteInBit); type tCardinal={$IfNDef Delphi} word{$ELSE} cardinal{$EndIf}; { Типы для буфера данных ------------------- } { ╥шя√ фы  сєЇхЁр фрээ√ї ------------------- } const { Максимальная длина обрабатываемого буфера } { ╠ръёшьры№эр  фышэр юсЁрсрЄ√трхьюую сєЇхЁр } cMaxBufferLength={$IfDef Delphi} (High(integer) div 2) {$Else} (High(word)-16){$EndIf} div SizeOf(tByte); type { Номер порции данных в буфере } { ═юьхЁ яюЁЎшш фрээ√ї т сєЇхЁх } tBufferIndex=0..cMaxBufferLength; tSignedBufferIndex=-High(tBufferIndex)..High(tBufferIndex); { Буфер для сжатия данных } { ┴єЇхЁ фы  ёцрЄш  фрээ√ї } tBuffer=array[tBufferIndex] of tByte; tPBuffer=^tBuffer; { Типы для буфера данных --END----------------- } { ╥шя√ фы  сєЇхЁр фрээ√ї --END----------------- } IMPLEMENTATION END.