Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шифрование с ключом в Паскале 
:(
    Опции темы
Lacoste1024
Дата 20.3.2011, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 20.3.2011

Репутация: нет
Всего: 1



Делаю шифратор и дешифратор на паскале. Шифрование осуществляется методом с ключом. Английские тексты шифруются и дешифруются прекрасно. Но вот с русскими текстами проблемы. Например, шифрую очень большой текст (размер txt 500Кб). Весь текст написан на русском. После дешифровки в выходном файле выводится только начало текста (примерно 450 символов). Как мне исправить проблему? И ещё такой вопрос. Помимо шифратора на паскале я делаю его и на Си. Мне нужно сравнить время шифрования одного и того же файла программами, написанными на Си и на Паскале. Как мне это сделать? Желательно какой-нибудь отдельной программой

Шифратор:
Код

program Encoder;

Uses Crt;

var
  key : string;
  i, LenKey : integer;
  input, output : text;
  ch: char;
  count : extended;

Procedure ReadEncodeKey;
Var KeyFile : Text;
Begin
  Assign(KeyFile,'key.txt');
  Reset(KeyFile);
  Read(KeyFile,key);
  Close(KeyFile);
  LenKey := Length(key);
End;

begin
  ClrScr;
  Count:=0; i:=1;
  ReadEncodeKey;
  Assign(input,'input.txt');
  Assign(output,'Encoded.txt');
  Reset(input);
  Rewrite(output);
  While Not EoF(input) Do Begin
    Read(input,ch);
    ch := Chr(Ord(ch) + Ord(key[i]));
    Write(output,ch);
    i:=i+1;
    i:=i mod LenKey + 1;
    Count:=Count+1;
  End;
  Close(input);
  Close(output);
  Write('Symbols encoded: ',Count:0:0);
  ReadKey;
end.


Дешифратор
Код

program Decoder;

Uses Crt;

var
  key : string;
  i, LenKey : integer;
  input, output : text;
  ch : char;
  Count : Extended;

Procedure ReadEncodeKey;
Var KeyFile : Text;
Begin
  Assign(KeyFile,'key.txt');
  Reset(KeyFile);
  Read(KeyFile,key);
  Close(KeyFile);
  LenKey := Length(key);
End;

begin
  ClrScr;
  ReadEncodeKey;
  Count:=0;
  i:=1;
  Assign(input,'Encoded.txt'); Reset(input);
  Assign(output,'Decoded.txt'); Rewrite(output);
  While Not EoF(input) Do Begin
    Read(input,ch);
    ch := Chr(Ord(ch) - Ord(key[i]));
    Write(output,ch);
    i:=i+1;
    i:=i mod LenKey + 1;
    Count:= Count + 1;
  End;
  Close(input);
  Close(output);
  Write('Symbols decoded: ',Count:0:0);
  ReadKey;
end.

PM MAIL   Вверх
salik
Дата 20.3.2011, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 28.1.2011

Репутация: нет
Всего: 1



Цитата(Lacoste1024 @  20.3.2011,  09:12 Найти цитируемый пост)
Но вот с русскими текстами проблемы.


Попробуйте использовать тип "AnsiChar" вместо "Char".
PM MAIL   Вверх
Lacoste1024
Дата 20.3.2011, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 20.3.2011

Репутация: нет
Всего: 1



Цитата
Мне нужно сравнить время шифрования одного и того же файла программами, написанными на Си и на Паскале. Как мне это сделать? Желательно какой-нибудь отдельной программой


Что насчёт этого можете подсказать?
PM MAIL   Вверх
salik
Дата 20.3.2011, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 28.1.2011

Репутация: нет
Всего: 1



Цитата(Lacoste1024 @  20.3.2011,  09:12 Найти цитируемый пост)
сравнить время шифрования одного и того же файла программами

Для этих целей хорошо подойдет AQtime
PM MAIL   Вверх
Lacoste1024
Дата 20.3.2011, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 20.3.2011

Репутация: нет
Всего: 1



А нету случайно отдельной программы(не связанной со средами) для этой цели
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.