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 >
Wrap
Pascal/Delphi Source File
|
2000-02-08
|
2KB
|
87 lines
unit ModKod;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls, Spin, StrBit32;
type
TForm1 = class(TForm)
NameIs: TEdit;
NameRez: TEdit;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Label2: TLabel;
ReadDlg: TSpeedButton;
WriteDlg: TSpeedButton;
BtnSkr: TBitBtn;
procedure ReadDlgClick(Sender: TObject);
procedure WriteDlgClick(Sender: TObject);
procedure BtnSkrClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure Koder(NameIs, NameRez: String);
{ φαδεµσφΦσ φσ±Φ±≥σ∞α≥Φ≈σ±Ωεπε ±Γσ≡≥ε≈φεπε ΩεΣα }
Var FIn, FOut : TBitFile;
Reg1, Reg2, RegCoder: TStr_bit;
PrBit : byte;
begin
if (NameIs = '') or (NameRez = '') then Exit;
FIn := TBitFile.Create; {┬√ΣσδσφΦσ ∩α∞ ≥Φ}
FOut := TBitFile.Create; {┬√ΣσδσφΦσ ∩α∞ ≥Φ}
{ ╟αΣαφΦσ ≡σπΦ±≥≡εΓ ╤╩ ± R=1/2 }
Reg1 := TStr_Bit.Create; Reg1.Init_Sim('1001111');
Reg2 := TStr_Bit.Create; Reg2.Init_Sim('1101101');
RegCoder := TStr_Bit.Create; RegCoder.Init_1(7);
Try
FIn.OpenBitFile(NameIs, btOpenRead,bt8); {╬≥Ω≡√≥Φσ ⌠αΘδα}
FOut.OpenBitFile(NameRez, btCreate, bt8);
PrBit := Fin.ReadBit;
while PrBit < 2 do
begin
RegCoder.LastBitDisplase(PrBit );
FOut.WriteBit( RegCoder.ModReg(Reg1) );
FOut.WriteBit( RegCoder.ModReg(Reg2) );
PrBit := Fin.ReadBit;
end;
Except on EfileBitError do {╬°ΦßΩα εß≡αßε≥ΩΦ ⌠αΘδα}
ShowMessage('╬°ΦßΩα εß≡αßε≥ΩΦ');
end; {Except}
FIn.CloseBitFile; { ╟αΩ≡√≥Φσ εß≡αßα≥√Γασ∞√⌡ ⌠αΘδεΓ}
FOut.CloseBitFile;
Reg1.Free; Reg2.Free; RegCoder.Free;
FIn.Free; FOut.Free; {╬±ΓεßεµΣσφΦσ ∩α∞ ≥Φ}
ShowMessage('╬ß≡αßε≥Ωα ταΓσ≡°σφα');
end;
procedure TForm1.ReadDlgClick(Sender: TObject);
begin
if OpenDialog1.Execute then NameIs.Text := OpenDialog1.FileName;
end;
procedure TForm1.WriteDlgClick(Sender: TObject);
begin
if SaveDialog1.Execute then NameRez.Text := SaveDialog1.FileName;
end;
procedure TForm1.BtnSkrClick(Sender: TObject);
begin
Koder(NameIs.Text, NameRez.Text);
end;
end.