Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Шифрация текста по таблице Виженера.   Найти похожие ветки 

 
Lyonux ©   (2010-04-27 19:51) [0]

Доброго времени суток!
При написания данного шифратора возникла проблема с кодировкой: при выводе алфавитов ключевого слова в StringGrid выводятся первые две буквы алфавита, остальное пространство заменяется символами "|".


type
   ABCmatr=array[1..32] of char;
var
 Form1: TForm1;
//массивы, содержащие алфавиты ключевого слова
//OrgABC-стандартный алфавит а..я
 OrgABC,ABC1,ABC2,ABC3,ABC4,ABC5,ABC6,ABC7,ABC8:ABCmatr;

//создание оригинального алфавита и запись в заголовок StringGrid"a
Procedure AlphaBetOriginal(Sender:TObject);
var i:byte;
   lit:char;
begin
i:=1;
for lit:="а" to "я" do
 begin
  Form1.StringGrid1.Cells[0,i]:=lit;
  OrgABC[i]:=lit;
  inc(i);
 end;
end;

//создание нового алфавита по конкретной букве слова
function NewMiniAlphaBet(x:char):ABCmatr;
//вычисление закодированной буквы
function NewLittera(y,y1:char):char;
begin
 NewLittera:=chr(ord(y)+ord(y1));
end;
var i:byte;
    a:ABCmatr;
begin
for i:=1 to 32 do
  if i+ord(x)<=182 then
   a[i]:=NewLittera(OrgABC[i],x)
  else
  a[i]:=chr(ord(NewLittera(OrgABC[i],x))-31);
end;

//запись алфавитов всех букв ключевого слова
procedure NewGrateAlphaBet(Sender: TObject);
var s:string;
   i:byte;
begin
s:=Form1.Edit1.Text;
 for i:=1 to length(s) do
  case i of
  1:ABC1:=NewMiniAlphaBet(s[i]);
  2:ABC2:=NewMiniAlphaBet(s[i]);
  3:ABC3:=NewMiniAlphaBet(s[i]);
  4:ABC4:=NewMiniAlphaBet(s[i]);
  5:ABC5:=NewMiniAlphaBet(s[i]);
  6:ABC6:=NewMiniAlphaBet(s[i]);
  7:ABC7:=NewMiniAlphaBet(s[i]);
  8:ABC8:=NewMiniAlphaBet(s[i]);
  end;
end;

//загрузка алфавитов в StringGrid
procedure LoadToGrid(Sender: TObject);
var i:byte;
begin
for i:=1 to 32 do
 with Form1.StringGrid1 do
begin
 Cells[1,i]:=ABC1[i];
 Cells[2,i]:=ABC2[i];
 Cells[3,i]:=ABC3[i];
 Cells[4,i]:=ABC4[i];
 Cells[5,i]:=ABC5[i];
 Cells[6,i]:=ABC6[i];
 Cells[7,i]:=ABC7[i];
 Cells[8,i]:=ABC8[i];
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
AlphaBetOriginal(Sender);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
NewGrateAlphaBet(Sender);
LoadToGrid(Sender);
end;


Помогите, кто чем сможет, пожалуйста :) В чём проблема: неправильное создание новых алфавитов, неправильная запись в StringGrid или что-нибудь ещё? Буду очень благодарна. :)


 
И. Павел ©   (2010-04-27 21:01) [1]

ABC[i] заполняется функцией NewMiniAlphaBet, а она ничего не возвращает.

И еще: может я чего-то не понял, но этот кусок кода выглядит странновато:

for i:=1 to length(s) do
 case i of
 1:ABC1:=NewMiniAlphaBet(s[i]);
 2:ABC2:=NewMiniAlphaBet(s[i]);
 3:ABC3:=NewMiniAlphaBet(s[i]);
 4:ABC4:=NewMiniAlphaBet(s[i]);
 5:ABC5:=NewMiniAlphaBet(s[i]);
 6:ABC6:=NewMiniAlphaBet(s[i]);
 7:ABC7:=NewMiniAlphaBet(s[i]);
 8:ABC8:=NewMiniAlphaBet(s[i]);
 end;


 
Lyonux ©   (2010-04-27 21:09) [2]


> И. Павел ©   (27.04.10 21:01) [1]
> ABC[i] заполняется функцией NewMiniAlphaBet, а она ничего
> не возвращает.


Оооогромное спасибо! Т_Т Я бы сама никогда этого не заметила) Вы - мой спаситель) Оно заработало!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.059 c
11-1221347021
Лотос
2008-09-14 03:03
2010.08.27
Папка из OpenSaveDialog


2-1273817025
stas
2010-05-14 10:03
2010.08.27
idTcpServer/idTcpClient


2-1268605992
Дмитрий
2010-03-15 01:33
2010.08.27
отправка пакета ( TcpClient )


2-1271155086
JohnKorsh
2010-04-13 14:38
2010.08.27
Как программно нажать кнопку?


15-1275337563
Tim
2010-06-01 00:26
2010.08.27
Помощь с переводом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский