Главная страница
    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.065 c
15-1266047756
oldman
2010-02-13 10:55
2010.08.27
Ну вот и началась Олимпиада!


4-1236677806
Demo_nik
2009-03-10 12:36
2010.08.27
как перехватить функцию копирования


2-1267706023
А№
2010-03-04 15:33
2010.08.27
Приобразовать любой бинарный символ в код


15-1267615251
noob_one
2010-03-03 14:20
2010.08.27
Можно ли готовую dll прикомпилировать к программе?


15-1275337781
Юрий
2010-06-01 00:29
2010.08.27
С днем рождения ! 1 июня 2010 вторник





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