Показать сообщение отдельно
  #1  
Старый 26.11.2007, 00:16
Lampa Lampa вне форума
Прохожий
 
Регистрация: 26.11.2007
Сообщения: 2
Репутация: 10
По умолчанию Шифрование текстового файла

Всем привет! Пожалуйста, помогите изменить код - в данном примере работа со строками.

А задание заключается вот в чем:
Задан массив, состоящий из букв русского алфавита. Сформировать новый массив, в котором буквы переставлены путем сдвига на 2 позиции и используя этот массив зашифровать заданный текстовый файл. Результат поместить в файл с именем “shifr”.
Код:
procedure TForm1.Button1Click(Sender: TObject);
const A:array[0..65] of char=('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я','а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я');
var B:array[0..65] of char;
s,s2:string;
i,j:word;
begin
For i:=0 to 65 do
    B[i]:=A[(i+2) mod 66];
s:=Edit1.Text;
s2:='';
for i:=1 to length(s) do
  for j:=0 to 65 do
    if s[i]=B[j] then s2:=s2+B[(j+2) mod 66];
Edit2.Text:=s2;
end;
end.
Ответить с цитированием