Главная страница
    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-1270824697
aalleexxaa
2010-04-09 18:51
2010.08.27
записать все содержимое базы данных Access в массивы


15-1267614248
Сергей
2010-03-03 14:04
2010.08.27
Дуэт Пугачева Орбакайте


2-1274079491
pro_xaoc
2010-05-17 10:58
2010.08.27
удаление последнего символа


2-1265742686
Константин
2010-02-09 22:11
2010.08.27
Интернационализация приложения


11-1222203375
dron9999
2008-09-24 00:56
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский