Перетворення форматів графічних файлів
while result=1 do begin
Ініціалізуються рахівники, та змінна виходу з циклу, при закінченні даних файла.
blockread(PCXF, b, 1, result);
Читається один байт, причому, якщо зчитування неможливе (кінець файлу), result прийме значення нуль, і виконається умова виходу з циклу.
if (b and $C0) = $C0 then begin
b:=b and $3F;
blockread(PCXF, val, 1, result);
end else begin
val:=b;
b:=1;
end;
Стандартний алгоритм розпаковки RLE-закодованих даних формату PCX. Тут обробляється зчитаний байт та якщо потрібно зчитується наступний, і на виході маємо b – кількість повторів, val – значення, яке потрібно повторити.
gotoxy(1, wherey); write(size); clreol; inc(size);
Для індикаціі того, що програма щось робить, а не зависла, на екран виводиться кількість вже перетворених пікселів, яка (кількість) після цього інкрементується.
for i:=1 to b do begin
buf[curx]:=val;
inc(curx);
end;
Відбувається запис у буфер значення b val разів.
if (curx=BPL*3) then begin
for i:=0 to BPL-1 do begin
blockwrite(BMPF, buf[i+2*BPL], 1);
blockwrite(BMPF, buf[i+BPL], 1);
blockwrite(BMPF, buf[i+000], 1);