. , , ,

,,,

/ — ,

/ . .

/ , , .


1. 

 

( )


2.

 

2.1

:

  ( , )

  /

 

 

 

2.2

.

2.3

IBM- . : Pentium ; 32 .

2.4

Windows, Win32 API.


3.

, .

Borland Delphi 7, Object Pascal. , , . .

Delphi 7 , , , .

1.

DQ_decoder ( 2.)

:

 

 

:

 

2.

. DQ_decoder .

3.

.


4.

1) ;

2) /;

3)/;

4) ;

5) ;


5.

, .

-.(. 4) , .

5.1

: .

.1

1. (123) Hello, World! z,  S Hello, World!
2. 1 Hello, World! 2:@=%=::3 Hello, World!
3. 2 Hello, World! <DJG/GDD= Hello, World!

, .

5.2

DQ_decoder / ( , 1 , 2). , . .

, .

( 4652 ) .

5.3

:

  DQ_decoder

  ( D:\ProgramFiles\DQ_decoder\DQ_decoder.exe)

  DQ_decoder, .

5.4

DQ_decoder . , . 6

 

 

, :

  . , , .

  . , , .

:

  OS Windows

  - > .


. . , . . , .


1. 654600 " " 230105 " ".

2. 2.105-79 . .

3. 2.105-95 . .

4. 7.1-84 , . . .

5. 7.32-2001 , . - . .

6. : - ./ .., - : , 2005. - 67 .

7. (google.ru).


unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, Menus;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

Edit1: TEdit;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

GroupBox3: TGroupBox;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

Memo1: TMemo;

Memo2: TMemo;

N8: TMenuItem;

procedure N8Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure RadioButton3Click(Sender: TObject);

procedure RadioButton1Click(Sender: TObject);

procedure RadioButton2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

function Chislo: integer;

procedure Button6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1; f,k:string; t:array[1..1000] of integer;

implementation

uses Unit2, Unit3, Unit4;

{$R *.dfm}

function TForm1.Chislo: integer;

var

i: integer;

begin

for i:=0 to Length(Edit1.Text) do

result:=result+Ord(Edit1.Text[i])+17;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

memo1.Text:='';

memo2.Text:='';

end;

procedure TForm1.N2Click(Sender: TObject);

begin

if OpenDialog1.Execute then

begin

f:=OpenDialog1.FileName;

Memo1.Lines.LoadFromFile(f);

end;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

if SaveDialog1.Execute then

begin

k:=SaveDialog1.FileName;

Memo2.Lines.SaveToFile(k);

end;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

close;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

form2.visible:=true;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

form3.visible:=true;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

form4.visible:=true;

end;

procedure TForm1.RadioButton1Click(Sender: TObject);

begin

Button1.visible:=true;

Button2.visible:=true;

Button3.visible:=false;

Button4.visible:=false;

Button5.visible:=false;

Button6.visible:=false;

edit1.visible:=true;

end;

procedure TForm1.RadioButton2Click(Sender: TObject);

begin

Button1.visible:=false;

Button2.visible:=false;

Button3.visible:=true;

Button4.visible:=true;

Button5.visible:=false;

Button6.visible:=false;

edit1.visible:=false;

end;

procedure TForm1.RadioButton3Click(Sender: TObject);

begin

Button1.visible:=false;

Button2.visible:=false;

Button3.visible:=false;

Button4.visible:=false;

Button5.visible:=true;

Button6.visible:=true;

edit1.visible:=false;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

d: byte;

i: integer;

begin

f:=memo1.Text;

k:=Edit1.Text;

for i := 1 to Length(f) do

if (f[i]<>' ')AND(f[i]<>'.')AND(f[i]<>';')AND(f[i]<>',') then

f[i]:=Chr( Ord(f[i])+Ord(k[i mod length(k)+1])mod 256) else f[i]:=f[i];

memo2.Text:=f;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

d: byte;

i: integer;

begin

f:=memo1.Text;

for i := 1 to Length(f) do

if (f[i]<>' ') AND(f[i]<>'.')AND(f[i]<>';')AND(f[i]<>',') then

f[i]:=Chr((Ord(f[i])-Ord(Edit1.text[(i mod length(Edit1.text))+1]))mod 256);

memo2.Text:=f;

{ ProgressBar1.Max:=f.Size;

for i:=0 to f.Size-1 do

begin

f.Position:=i;

k.Position:=i;

f.Read(d,1);

d:=d-((i*85)-i+Chislo+28*i+(2*i+5-i-1));

k.Write(d,1);

ProgressBar1.Position:=i;

Application.ProcessMessages;

if Application.Terminated then Break;

end;

ProgressBar1.Position:=i;

k.Free;

f.Free; }

end;

procedure TForm1.Button3Click(Sender: TObject);

var i:longint;u,t:integer; y,w,o:string;

begin

f:=memo1.Text;

k:=Edit1.Text;

for i := length(f) downto 1 do

begin

y:=y+f[i];

end;

for i:=1 to length(f) do

begin

u := Ord(y[i]) ;

u:=u-50;

w:=w+chr(u);

end;

memo2.Text:=w;

memo2.Text:=w;

end;

procedure TForm1.Button4Click(Sender: TObject);

var i,u:integer; y,w,o:string;

begin

f:=memo2.Text;

for i := length(f) downto 1 do

begin

y:=y+f[i];

end;

for i:=1 to length(f) do

begin

u := Ord(y[i]) ;

u:=u+50;

w:=w+chr(u);

end;

memo2.Text:=w;

end;

procedure TForm1.Button5Click(Sender: TObject);

var i,u:integer; y,w,o:string;

begin

f:=memo1.Text;

for i := length(f) downto 1 do

begin

y:=y+f[i];

end;

for i:=1 to length(f) do

begin

u := Ord(y[i]) ;

u:=u-40;

w:=w+chr(u);

end;

memo2.Text:=w;

end;

procedure TForm1.Button6Click(Sender: TObject);

var i,u:integer; y,w,o:string;

begin

f:=memo1.Text;

for i := length(f) downto 1 do

begin

y:=y+f[i];

end;

for i:=1 to length(f) do

begin

u := Ord(y[i]) ;

u:=u+40;

w:=w+chr(u);

end;

memo2.Text:=w;

end;

end.

/ . .

 

 

 

! , , , .
. , :