Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2010, 15:27   #1
cl0oud
 
Регистрация: 18.11.2009
Сообщений: 6
По умолчанию зашифровка и расшифровка данных

Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания, его можно переписать, заменив каждую букву непосредственно следующей за ней по алфавиту (буква я заменяется на а)
а) Зашифровать данный текст.
б) Расшифровать данный текст.
cl0oud вне форума Ответить с цитированием
Старый 01.04.2010, 15:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И что? Проходи циклом и шифруй букву по формуле
Буква=CHR(ORD(Буква)+1)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.04.2010, 16:14   #3
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Написал за 1-2 минуты...
Код:
{--- Сообвстенно функция ---}
function CHR_Coder(Text: string; C_D: Boolean): string;
var
  i: integer;
  s: string;
begin
  for i := 1 to Length(Text) do
    if C_D = True then
      S := S + Chr(Ord(Text[i]) + 1)
    else
      S := S + Chr(Ord(Text[i]) - 1);
  Result := s;
end;
Цитата:
Текст в обычном состоянии: Форум программистов
В зашифрованном: УнптлопнвпЯллзрснб
Stilet, почему-то шифрует не на один символ вперед, а на несколько, а бывает и наоборот)
Может луче, если ТС нужно только русский текст и знаки пунктуации, добавить их в массив и уже их заменять?

Последний раз редактировалось W0LF; 01.04.2010 в 16:18.
W0LF вне форума Ответить с цитированием
Старый 01.04.2010, 16:24   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от W0LF Посмотреть сообщение

if C_D = True then
S := S + Chr(Ord(Text[i]) + 1)
else
S := S + Chr(Ord(Text[i]) - 1);

[CODE]
Извечная ошибка невнимательности...
Переменная C_D уже содержит логическое значение (true или false).
зачем ее с чем-то сравнивать?
достаточно и так
if C_D
then .........
else ..........
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 01.04.2010, 17:02   #5
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Да достаточно и без (= True), но это не как не ошибка...
W0LF вне форума Ответить с цитированием
Старый 01.04.2010, 17:27   #6
cl0oud
 
Регистрация: 18.11.2009
Сообщений: 6
По умолчанию

а слабо всю прогу написать? я на прогера не учился, не самоучка-прогер, не супер модер сайта программистов и т.д. необходимо товарищу, у которого к сожалению временно не работает инет или комп, или мозг.. заранее спасибо.
cl0oud вне форума Ответить с цитированием
Старый 01.04.2010, 17:27   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от W0LF Посмотреть сообщение
Да достаточно и без (= True), но это не как не ошибка...

Да я совсем не это имел ввиду... Просто при огромных циклах лишние вычисления приводят к потерям производительности. Сталкивался с такими огрехами при проведении оптимизации кода, теперь обращаю внимание...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос: Зашифровка текстовых файлов, используемых программой kotzzz Общие вопросы Delphi 12 18.01.2011 16:23
Расшифровка текста. Michelin Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 10.01.2010 21:19
Считывание и расшифровка (интерпретация) данных с lpt порта, передаваемых печатающему устройству Ma3a Общие вопросы Delphi 3 21.12.2009 08:46
зашифровка едит bmb_66 Компоненты Delphi 2 10.04.2008 11:25