Показать сообщение отдельно
  #9  
Старый 07.12.2015, 06:56
EnumaElish EnumaElish вне форума
Прохожий
 
Регистрация: 30.11.2015
Сообщения: 6
Версия Delphi: pascal
Репутация: 10
По умолчанию

Pascal: Работа с файлами + немного криптографии.
2 процедуры:
1- Шифровка:берет исходный текст из файла A шифрует и записывает в файл B
2 -Дешифровка: берет исходный файл B расшифровывает и записывает в файл C;
Код:
procedure Crypts(var T,G:text); //Ссылаемся на 2 текстовых файла
var S:string; i:integer;
 begin
  reset(t);  //открываем для чтения Файл T
 while not Eof(T) do 
  begin
    readln(t,s);     //Присваеваем строке S строку текстового файла T
     for i:=0 to length(s) do
       begin
        ord(s[i]):=ord(s[i])+Ckey;
    {после прибавления ключа проверяем не ушел ли за границы ASCII}
          if ord(s[i])>256 then ord(s[i]):=ord(s[i])-256+32;
    {+32 так как первые 32 цифры - управляющие символы ASCII}
          end;
        writeln(G,S);              //впиываем в файл G строку S
  end;
  close(t);
 end;


Procedure Uncrypts(var G,Y:text);
var S:string; i:integer;
begin
 reset(g);
  while not Eof(g) do
   begin
    readln(g,s);
     for i:=0 to length(s) do
      begin
       ord(s[i]):=ord(s[i])-3;
        if ord(s[i])<32 then ord(s[i]):=ord(s[i])+256-32;
      end;
     writeln(Y,S);
    end;
   close(G);
 end;

Шифрует нормально, но все равно добавляет лишние символы
из True получается - Wuxhvvv
из I - Luxh откуда берутся эти лишние символы???

При дешифрации сначала вылетали непонятно почему ошибки потом
вроде стало дешифроваться но в файле дешифровке например
получилось не обратно I а-
Код:
Truessssэээ    ЊюAB       xюA                                . ёШ_            ёШ_    |      аюAF?u`   Ђ @       дюAТV@ ·   дЧ^дЧ^ъС^иЧ^дM@ 0   tѓ@     vA@ p`@ tѓ@  А¦@ §@ ,яAТV@ ·   tѓ@ <яAТV@ D
Ответить с цитированием