Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2010, 23:06   #1
qwertyk
Пользователь
 
Регистрация: 15.07.2009
Сообщений: 52
По умолчанию Поблемы с написаем системы шифрования Вижинера

Пишу программу шифровальщик, на основе шифрования Вижинера.
Написал код для создания самой таблицы Вижинера и немного для кнопки 'зашифровать'. Вот мой код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Memo3: TMemo;
    memo2: TMemo;
    procedure Button4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  alf: array[1..66] of char = ('À','Á','Â','Ã','Ä','Å','¨','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ü','Û','Ú','Ý','Þ','ß','à','á','â','ã','ä','å','¸','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ü','û','ú','ý','þ','ÿ');
  tab: array[1..66,1..66] of Char;
implementation

{$R *.dfm}

procedure TForm1.Button4Click(Sender: TObject);
begin
form1.Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i,j,n,k:integer;
begin
  n:=0;
  For i:=1 to 66 do
  begin
    k:=n+1;
    for j:=1 to 66 do
    begin
      if k=67 then k:=0;
      tab[i,j]:=alf[k];
      k:=k+1;
    end;
    n:=n+1;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i, j, k, stroka, stolbec, slovo, key:integer; s,kl:char; l:boolean;
begin
  memo2.Clear;
  k:=0;
  j:=-1;
  //key:=memo3.GetTextLen;
  //slovo:=memo1.GetTextLen;
  for i:=0 to memo1.Lines.Count-1 do
  begin
    l:=true;
    k:=0;
    J:=J+1;
    s:=memo1.Lines[i][j];
    kl:=memo3.Lines[i][j];
    if (s<>#13) and (s<>#10) and (s<#192) then
    begin
      showmessage('Òåêñò ââîäèòü áåç ïðîáåëîâ è çíàêîâ ïðåïèíàíèÿ');
      memo1.Clear;
      memo2.Clear;
      memo3.Clear;
      break;
    end
    else
    while l do
    if s<>alf[k] then
    k:=k+1
    else
    begin
      stroka:=k;
      k:=0;
      l:=false;
    end;
    l:=true;
    if kl<#224 then
    begin
        showmessage('Êëþ÷ ââîäèòü ìàëåíüêèìè áóêâàìè');
        memo1.Clear;
        memo2.Clear;
        memo3.Clear;
        break;
    end
    else
    while l do
    if kl<>alf[k] then
    k:=k+1
    else
    begin
      stolbec:=k;
      k:=0;
      l:=false;
    end;
    memo2.Lines[i];
    memo2.Lines.Text:=memo2.Lines.Text+tab[stroka, stolbec];
  end;
  end;
end.
Естественно он не шифрует, в чем ошибка не знаю (я слабоват при работе с полями). Если не сложно напишите что не так. Знаю в интернете есть исходники, но хотелось бы самому разобраться!
qwertyk вне форума Ответить с цитированием
Старый 03.10.2010, 16:08   #2
qwertyk
Пользователь
 
Регистрация: 15.07.2009
Сообщений: 52
По умолчанию

Тема закрыта сам разобрался!
qwertyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод вижинера Ghost_Dante Помощь студентам 12 01.12.2011 21:58
Tbassplayer некторые поблемы((( Anfall Мультимедиа в Delphi 5 10.02.2009 18:10
Системы шифрования, но... elsin Общие вопросы Delphi 3 07.01.2009 08:22
Метод Вижинера Light69 Помощь студентам 16 13.10.2008 18:56