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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2016, 01:33   #1
Andryan00
Пользователь
 
Регистрация: 19.03.2015
Сообщений: 23
По умолчанию Шифратор

Помогите переделать так, чтобы работал не только для русских символов

Код:
function Cesar_Crypt(s:string):string;
const
  SizeA = 33; //Размер алфавита
  RusA = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; //Алфавит
var i, P :integer;
    temp:string;
begin
s:=AnsiLowerCase(s);
temp:='';
//удаление символов сообщения, не входящих в наш алфавит
for i := 1 to length(s) do if pos(s[i],RusA)<>0 then temp:=temp+s[i];
s:=temp;
for i:=1 to length(s) do
  begin
  P:=pos(s[i],RusA)+3;
  if P>SizeA then P:=P-SizeA;
  Result:=Result+RusA[P];
  end;
end;

//Дешифрование Цезаря
function Cesar_DeCrypt(s:string):string;
const
  SizeA = 33; //Размер алфавита
  RusA = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; //Алфавит
var i, P :integer;
    temp:string;
begin
s:=AnsiLowerCase(s);
temp:='';
//удаление символов сообщения, не входящих в наш алфавит
for i := 1 to length(s) do if pos(s[i],RusA)<>0 then temp:=temp+s[i];
s:=temp;
for i:=1 to length(s) do
  begin
  P:=pos(s[i],RusA)-3;
  if P<=0 then P:=P+SizeA;
  Result:=Result+RusA[P];
  end;
end;

Последний раз редактировалось BDA; 23.05.2016 в 02:13.
Andryan00 вне форума Ответить с цитированием
Старый 23.05.2016, 01:53   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Andryan00 Посмотреть сообщение
Помогите переделать так, чтобы работал не только для русских символов
Что значит "не только для русских символов"? Для китайских символов код тоже должен работать?
northener вне форума Ответить с цитированием
Старый 23.05.2016, 02:06   #3
Andryan00
Пользователь
 
Регистрация: 19.03.2015
Сообщений: 23
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Что значит "не только для русских символов"? Для китайских символов код тоже должен работать?
Не, извиняюсь за не точный вопрос. Шифратор для русских, английских символов и цифр.
Andryan00 вне форума Ответить с цитированием
Старый 23.05.2016, 02:13   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Тогда посмотрите на код и подумайте, для чего нужны константы SizeA и RusA.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.05.2016, 02:15   #5
Andryan00
Пользователь
 
Регистрация: 19.03.2015
Сообщений: 23
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Тогда посмотрите на код и подумайте, для чего нужны константы SizeA и RusA.
Я пробовал изменять, добавляя количество символов и сами символы, не работает таким образом, поэтому и спрашиваю здесь
Andryan00 вне форума Ответить с цитированием
Старый 23.05.2016, 02:23   #6
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Во всемирной помойке полно реализаций кода Цезаря. Ищи другой.
northener вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифратор Patriotik Безопасность, Шифрование 1 17.09.2012 12:48
Шифратор ? Pingvinenok_Lolo Помощь студентам 6 13.11.2011 18:25
Шифратор на C++ Lampard7 Общие вопросы C/C++ 9 12.10.2011 23:54
Шифратор frekoz Общие вопросы C/C++ 6 02.04.2010 13:16