unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm8 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
CodeTable: TRadioGroup;
procedure Memo1Change(Sender: TObject);
procedure CodeTableClick(Sender: TObject);
private
public
{ Public declarations }
end;
const
ACodeTable: Array[0..1,1..33,1..2] of String = ((('а','a'),('б','b'),('в','v'),('г','g'),('д','d'),('е','e'),('ё','jo'),('ж','zh'),
('з','z'),('и','i'),('й','j'),('к','k'),('л','l'),('м','m'),('н','n'),
('о','o'),('п','p'),('р','r'),('с','s'),('т','t'),('у','uh'),('ф','f'),
('х','h'),('ц','ch'),('ч','ch'),('ш','sh'),('щ','shh'),('ъ','#'),('ы','y'),
('ь',''''),('э','je'),('ю','ju'),('я','ja')),
(('а','ka'),('б','zu'),('в','ru'),('г','ji'),('д','te'),('е','ku'),('ё','ku'),('ж','su'),
('з','z'),('и','ki'),('й','ki'),('к','me'),('л','ta'),('м','rin'),('н','to'),
('о','mo'),('п','no'),('р','shi'),('с','ari'),('т','chi'),('у','do'),('ф','lu'),
('х','ri'),('ц','mi'),('ч','ke'),('ш','hi'),('щ','hi'),('ъ',''),('ы',''),
('ь','zuk'),('э','mei'),('ю','fu'),('я','na')));
var
Form8: TForm8;
implementation
{$R *.dfm}
procedure TForm8.CodeTableClick(Sender: TObject);
begin
Memo1Change(Memo1)
end;
procedure TForm8.Memo1Change(Sender: TObject);
Var i,j: Integer;
EncodeText: String;
Skipped: Boolean;
begin
if Sender = Memo1
then begin
EncodeText := '';
for i := 1 to Length(Memo1.Text)
do begin
Skipped := True;
for j := 1 to Length(ACodeTable[CodeTable.ItemIndex])
do if Memo1.Text[i] = ACodeTable[CodeTable.ItemIndex,j, 1]
then begin
EncodeText := EncodeText + ACodeTable[CodeTable.ItemIndex, j, 2];
Skipped := False;
Break;
end;
if Skipped
then EncodeText := EncodeText + Memo1.Text[i];
end;
Memo2.Text := EncodeText;
end
else begin
end;
end;
end.