b> VAR f, f1: Text;
FileName, PassW, Line: string;
men: integer;
{Перетворимо пароль в числове значення}
FUNCTION Password (Psw: string): integer;
VAR i, res: integer;
BEGIN
res: = 0;
for i: = 1 to length (psw) do res: = res + ord (psw [i]);
Password: = res;
END;
{Функція шифрування тексту}
FUNCTION Crypt (CryptStr: string): string;
VAR s, s1: string;
i, rez: integer;
BEGIN
s1: ='';
for i: = 1 to length (CryptStr) do
begin
s: = CryptStr;
s: = copy (s, 1,1);
CryptStr: = copy (CryptStr, 2, length (CryptStr) -1);
rez: = ord (s [1]) + Password (PassW);
str (rez, s);
s1: = s1 + s + ' ';
end;
delete (s1, length (s1), 1);
Crypt: = s1;
END;
{Функція дешифрування тексту}
FUNCTION Decrypt (DecryptStr: string): string;
VAR Xpos, i, v, e: integer;
Code, s1: string;
BEGIN
s1: ='';
for i: = 1 to length (DecryptStr) do
begin
xpos: = pos (' ', DecryptStr);
if xpos <= 0 then
begin
val (DecryptStr, v, e);
s1: = s1 + chr (v-password (PassW));
Decrypt: = s1;
exit;
end;
code: = copy (DecryptStr, 1, xpos-1);
val (code, v, e);
s1: = s1 + chr (v-password (PassW));
delete (DecryptStr, 1, xpos);
end;
Decrypt: = s1;
END;
{ Процедура шифрування тексту }
PROCEDURE CryptP;
BEGIN
writeln;
write (' Введіть шлях і ім'я файлу : ');
readln (FileName);
write (' Введіть ключ :');
readln (PassW);
Assign (F, FileName);
Assign (F1, 'crypter.txt');
Rewrite (F1);
Reset (F);
while not EOF (F) do
begin
readln (F, Line);
line: = crypt (line);
writeln (F1, line);
end;
writeln;
writeln ('Файл успішно зашифрований! ');
Close (F);
Close (F1);
writeln;
write ('Натисніть будь-яку клавішу ... ');
ReadKey;
END;
{Процедура дешифрування тексту}
PROCEDURE DecryptP;
BEGIN
writeln;
write (' Введіть шлях і ім'я файлу : ');
readln (FileName);
write (' Введіть ключ :');
readln (PassW);
Assign (F, FileName);
Assign (F1, 'crypter.txt');
Rewrite (F1);
Reset (F);
while not EOF (F) do
begin
readln (F, Line);
line: = decrypt (line);
writeln (F1, Line);
end;
writeln;
writeln ('Файл успішно розшифрований! ');
Close (F);
Close (F1);
writeln;
write ('Натисніть будь-яку клавішу ... ');
ReadKey;
END;
{Процедура виведення основного меню}
PROCEDURE Menu;
BEGIN
repeat
begin
ClrScr;
writeln ('Програма шифровки і дешифрування тексту! ');
writeln;
writeln ('1. Шифрувати текст ');
writeln ('2. Дешифрувати текст ');
writeln ('3. Вихід ');
writeln;
write ('Виберіть пункт меню:');
readln (men);
case men of
1: CryptP;
2: DecryptP;
end;
end;
until men = 3;
END;...