Главная страница
    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.067 c
2-1274079841
Евгений Р.
2010-05-17 11:04
2010.08.27
Работа со средой


2-1275846857
worldmen
2010-06-06 21:54
2010.08.27
TMediaPlayer воспроизведение используя БД


2-1265953833
n_sch
2010-02-12 08:50
2010.08.27
Rave Reports 5


15-1271686611
БарЛог
2010-04-19 18:16
2010.08.27
А как будет по-английки...


2-1267644344
Nostalgia
2010-03-03 22:25
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский