home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / kompon / d123456 / STR_BIT.ZIP / 32 / svkod / ModKod.pas < prev    next >
Pascal/Delphi Source File  |  2000-02-08  |  2KB  |  87 lines

  1. unit ModKod;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   Buttons, StdCtrls, Spin, StrBit32;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     NameIs: TEdit;
  12.     NameRez: TEdit;
  13.     OpenDialog1: TOpenDialog;
  14.     SaveDialog1: TSaveDialog;
  15.     Label1: TLabel;
  16.     Label2: TLabel;
  17.     ReadDlg: TSpeedButton;
  18.     WriteDlg: TSpeedButton;
  19.     BtnSkr: TBitBtn;
  20.     procedure ReadDlgClick(Sender: TObject);
  21.     procedure WriteDlgClick(Sender: TObject);
  22.     procedure BtnSkrClick(Sender: TObject);
  23.   private
  24.     { Private declarations }
  25.   public
  26.     { Public declarations }
  27.   end;
  28.  
  29. var
  30.   Form1: TForm1;
  31.  
  32. implementation
  33.  
  34. {$R *.DFM}
  35.  
  36. procedure Koder(NameIs, NameRez: String);
  37.  { φαδεµσφΦσ φσ±Φ±≥σ∞α≥Φ≈σ±Ωεπε ±Γσ≡≥ε≈φεπε ΩεΣα }
  38. Var  FIn, FOut : TBitFile;
  39.      Reg1, Reg2, RegCoder: TStr_bit;
  40.      PrBit : byte;
  41. begin
  42.  if (NameIs = '') or (NameRez = '') then Exit;
  43.  FIn := TBitFile.Create; {┬√ΣσδσφΦσ ∩α∞ ≥Φ}
  44.  FOut := TBitFile.Create; {┬√ΣσδσφΦσ ∩α∞ ≥Φ}
  45.     { ╟αΣαφΦσ ≡σπΦ±≥≡εΓ ╤╩ ±  R=1/2 }
  46.    Reg1 := TStr_Bit.Create;   Reg1.Init_Sim('1001111');
  47.    Reg2 := TStr_Bit.Create;   Reg2.Init_Sim('1101101');
  48.    RegCoder := TStr_Bit.Create;  RegCoder.Init_1(7);
  49.  Try
  50.    FIn.OpenBitFile(NameIs, btOpenRead,bt8); {╬≥Ω≡√≥Φσ ⌠αΘδα}
  51.    FOut.OpenBitFile(NameRez, btCreate, bt8);
  52.    PrBit := Fin.ReadBit;
  53.     while PrBit < 2 do
  54.      begin
  55.       RegCoder.LastBitDisplase(PrBit );
  56.       FOut.WriteBit( RegCoder.ModReg(Reg1) );
  57.       FOut.WriteBit( RegCoder.ModReg(Reg2) );
  58.       PrBit := Fin.ReadBit;
  59.      end;
  60.  Except   on EfileBitError do {╬°ΦßΩα εß≡αßε≥ΩΦ ⌠αΘδα}
  61.      ShowMessage('╬°ΦßΩα εß≡αßε≥ΩΦ');
  62.  end; {Except}
  63.  FIn.CloseBitFile; { ╟αΩ≡√≥Φσ εß≡αßα≥√Γασ∞√⌡ ⌠αΘδεΓ}
  64.  FOut.CloseBitFile;
  65.  Reg1.Free;     Reg2.Free;         RegCoder.Free;
  66.  FIn.Free; FOut.Free;  {╬±ΓεßεµΣσφΦσ ∩α∞ ≥Φ}
  67.  ShowMessage('╬ß≡αßε≥Ωα ταΓσ≡°σφα');
  68. end;
  69.  
  70.  
  71. procedure TForm1.ReadDlgClick(Sender: TObject);
  72. begin
  73.  if OpenDialog1.Execute then  NameIs.Text := OpenDialog1.FileName;
  74. end;
  75.  
  76. procedure TForm1.WriteDlgClick(Sender: TObject);
  77. begin
  78.   if SaveDialog1.Execute then  NameRez.Text := SaveDialog1.FileName;
  79. end;
  80.  
  81. procedure TForm1.BtnSkrClick(Sender: TObject);
  82. begin
  83.   Koder(NameIs.Text, NameRez.Text);
  84. end;
  85.  
  86. end.
  87.