read(inf, b[1], b[2], b[3]);
//читаем 3 байта из входного файла
//и формируем "двоичную" строку
bin:= toanysys(b[1],2)+toanysys(b[2],2)+toanysys(b[3],2);
//разбиваем строку на куски по 6 бит и добавляем 32
t:= mid(bin, 19, 24);
b[4]:= frombin(t)+32;
t:=mid(bin, 13, 18);
b[3]:= frombin(t)+32;
t:= mid(bin, 07, 12);
b[2]:= frombin(t)+32;
t:= mid(bin, 01, 06);
b[1]:= frombin(t)+32;
//запихиваем полученнные байты во временный массив
uue[oum]:= b[1];
oum:= oum+1;
uue[oum]:= b[2];
oum:= oum+1;
uue[oum]:= b[3];
oum:= oum+1;
uue[oum]:= b[4];
oum:= oum+1;
end;
//входной файл больше не нужен - закрываем его
closefile(inf);
//формируем выходной файл
assignfile(ouf, edit2.text); //выходной файл
rewrite(ouf);
oum:= 1;
sxh:= (szh+szl) div 60; //число строк в UUE файле
sxl:= (szh+szl)-sxh*60;
//заголовок UUE-файла
writeln(ouf, 'begin 644 '+extractfilename(edit1.text));
//записываем строки в файл
for i:=1 to sxh do begin
write(ouf, 'M');
// 'M' значит, что в строке 60 символов
for j:= 1 to 60 do begin
write(ouf, chr(uue[oum]));
oum:= oum+1;
end;
writeln(ouf);
end;
//записываем последнюю строку, которая//обычно короче 60 символов
sxh:= (sxl*6) div 8;
write(ouf, chr(sxh+32));
for i:= 1 to sxl do begin
write(ouf, chr(uue[oum]));
oum:= oum+1;
end;
// "добиваем" строку незначащими символами
for i:= sxl+1 to 60 do write(ouf, '`');
//записываем последние строки файла
writeln(ouf);
writeln(ouf, '`');
writeln(ouf, 'end');
closefile(ouf);
freemem(uue, szh+szl);
//освобождаем память
showmessage('DONE.'); //Готово. Забирайте!
end;
end.