Другие языки программирования и технологии

Здравствуйте!Нужно написать программу в Pascale

Помогите,пожалуйста,написать программу в Pascal.
Это стеганография.Вот условие:

Есть текст и в нем надо скрыть некоторую фразу, состоящую из букв.
Буквы этой фразы представляются как байты.
Эти байты надо разбить на биты.
Текст, в котором будет прятаться сообщение, должен иметь много строчек (как стихотворение).
Мы должны разбить скрываемый текст на биты.
И если очередной бит скрываемой информации равен единице, то в конец очередной строки текста-контейнера дописываем пробел.
Если же бит равен нулю, то в конец строки не пишем пробел.
После шифрования, шифровку надо будет обратно раскодировать.
program N73313493;
uses crt;
const inFileName = 'text.txt';
outFileName = 'result.txt';

procedure Encode;
var inFile, outFile: Text;
c: byte;
t, s: string;
i, j: word;
begin
assign(inFile, inFileName);
assign(outFile, outFileName);
{$I-}
reset(inFile);
if IOResult = 0 then
begin
rewrite(outFile);
if IOResult = 0 then
begin
writeln('Введите текст для шифрования: ');
readln(t);
for i := 1 to length(t) do
begin
c := ord(t[ i ]);
for j := 1 to 8 do
begin
if not EOF(inFile) then
begin
readln(inFile, s);
while (length(s) > 0) and (s[length(s)] = #32) do
delete(s, length(s), 1)
end
else
s := '';
if c and $80 > 0 then
s := s + #32;
writeln(outFile, s);
c := c and $7F shl 1
end
end;
while not EOF(inFile) do
begin
readln(inFile, s);
while (length(s) > 0) and (s[length(s)] = #32) do
delete(s, length(s), 1);
writeln(outFile, s)
end;
close(outFile);
writeln('Текст зашифрован'#13#10)
end
else
writeln('Не удалось создать файл ', outFileName);
close(inFile)
end
else
writeln('Не удалось открыть файл ', inFileName)
{$I+}
end;

procedure Decode;
var inFile: Text;
c: byte;
t, s: string;
i: word;
begin
assign(inFile, outFileName);
{$I-}
reset(inFile);
if IOResult = 0 then
begin
t := '';
c := 255;
while (c <> 0) and not EOF(inFile) do
begin
for i := 1 to 8 do
begin
c := c and $7F shl 1;
if not EOF(inFile) then
begin
readln(inFile, s);
if s[length(s)] = #32 then
c := c or 1
end
end;
t := t + chr(c)
end;
close(inFile);
writeln('Расшифрованный текст: ');
writeln(t, #13#10)
end
else
writeln('Не удалось открыть файл ', outFileName)
{$I+}
end;

var op: char;
begin
repeat
writeln('Выберите операцию: ');
writeln('1. Шифрование');
writeln('2. Расшифровка');
write('3. Выход'#13#10'> ');
op := readkey;
writeln(op);
case op of
'1': Encode;
'2': Decode;
end
until op = '3';
end.

Файл с "Евгением Онегиным" text.txt должен лежать рядом с экзешником программы.
Файл со скрытым текстом result.txt создаётся в этой же папке.

P.S. Оптимальнее использовать свой алфавит, например 6-тиразрядный. И буквы одного языка, и цифры, и знаки препинания в него уместятся.
Ещё лучше использовать кодировку методом Хаффмана по фиксированной частотности встречи букв в языке шифровки (чтобы не включать в результирующий файл словарь) : строк в маскирующем тексте требуется ещё меньше.

P.P.S. O_o программа получилась стоимостью аж на 150 рублей. Жду перевода :))
Сергей Куликов
Сергей Куликов
51 590
Лучший ответ