Курсовая работа: Разработка программы сжатия и восстановления файлов с помощью фиксированного блочного кода постоянного смещения
iflength (conR) >=8 then // проверяем длину переменной
begin
conW: =copy (conR,1,8); // копируем первые 8 символов
buff2: = ( (strtoint (conW [1])) *128) + ( (strtoint (conW [2])) *64) + ( (strtoint (conW [3])) *32) + ( (strtoint (conW [4])) *16) + ( (strtoint (conW [5])) *8) + ( (strtoint (conW [6])) *4) + ( (strtoint (conW [7])) *2) + (strtoint (conW [8]));
// переводим скопрированную информацию в десятичное число
buff3: =strtoint (floattostr (buff2));
BlockWrite (f1,buff3,1); // записываем результат в новый файл
Delete (conR,1,8); // удаляем первые 8 символов
end;
if (EOF (f) =true) and (conR<>'') and (length (conR) <8) then
// проверяем наличие остатка
begin
k: =0;
check: =length (conR); // вычисляем длину остатка
dop: =8-check; // вычисляем количество необходимых для заполнения битов
whilek<>dopdo // цикл дополнения нулями
begin
conR: =conR+'0'; // дописываем нули
k: =k+1;
end;
conW: =copy (conR,1,8); // копируем данные
buff2: = ( (strtoint (conW [1])) *128) + ( (strtoint (conW [2])) *64) + ( (strtoint (conW [3])) *32) + ( (strtoint (conW [4])) *16) + ( (strtoint (conW [5])) *8) + ( (strtoint (conW [6])) *4) + ( (strtoint (conW [7])) *2) + (strtoint (conW [8]));
// переводим скопированную информацию в десятичное число
buff3: =strtoint (floattostr (buff2));
BlockWrite (f1,buff3,1); // записываем полученные значения
end;
end;
end;
ProgressBar1.Position: =Round ( (prog/size) *100);