/ . . / , , . 1.
( ) 2.
2.1
: ( , ) / 2.2
. 2.3
IBM- . : Pentium ; 32 . 2.4
Windows, Win32 API. 3.
, . BorlandDelphi 7, ObjectPascal. , , . . Delphi 7 , , , . 1. DQ_decoder ( 2.) : : 2. . DQ_decoder . 3. . 4.
1) ; 2) /; 3)/; 4) ; 5) ; 5.
, . -.(. 4) , . 5.1
: . .1 , . 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 , : . , , . . , , . : OSWindows - > .
. . , . . , .
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).
unitUnit1; 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.
|