home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 September
/
Chip_2002-09_cd1.bin
/
zkuste
/
delphi
/
kompon
/
d123456
/
STR_BIT.ZIP
/
16
/
PRIM
/
CIKLKOD.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
2000-07-21
|
2KB
|
41 lines
program CiklKod;
{$F+,R+,X+,B+}
{ è«ñ¿α«óá¡¿Ñ ñá¡¡¡δσ µ¿¬½¿τÑ߬¿¼ ¬«ñ«¼ »« »«α«ªñáεΘÑ¼π ¼¡«ú«τ½Ñ¡π }
{ ÅÑαÑñáτá ñá¡¡δσ Γ«½∞¬« τÑαѺ ¬«¼á¡ñ¡πε ßΓ᫬π!!! }
{ ö«α¼áΓ ó맮óá : }
{ CiklKod <¿¼∩ ¿ßσ«ñ¡«ú« Σá⌐½á>, <¿¼∩ Σá⌐½á αѺπ½∞ΓáΓá>, <ñ½¿¡á ¬«ñá>, <«íαáºπεΘ¿⌐ »«½¿¡«¼> }
uses StrBit16;
var Msig_is, SigRez : PBitFile;
Polin : PStr_Bit;
I, DlKomb, DlCode : Integer;
MasPol : Array [0..40] of PStr_Bit;
begin
Writeln('è«ñ¿α«óá¡¿Ñ ñá¡¡¡δσ µ¿¬½¿τÑ߬¿¼ ¬«ñ«¼ »« »«α«ªñáεΘÑ¼π ¼¡«ú«τ½Ñ¡π');
if ParamCount <> 4 Then Exit;
Val(ParamStr(3), DlKomb, DlCode); { ÅαÑ«íαẫóá¡¿Ñ ñ½¿¡δ ó ß¿¼ó«½∞¡δ⌐ ó¿ñ }
If (DlCode <> 0) or (DlKomb > 40) Then Halt(1);
{ ÄΓ¬αδΓ¿Ñ Σá⌐½«ó ñ½∩ «íαáí«Γ¬¿ }
Msig_is:= New(PBitFile,Init(DlKomb,4096)); {¿¼∩ ¿ßσ«ñ¡«ú« Σá⌐½á}
Msig_is^.OpenBitFile(ParamStr(1),btOpenRead); {¿º 1-ú« »áα.¬«¼á¡ñ¡«⌐ ßΓ᫬¿}
SigRez:= New(PBitFile,Init(DlKomb,4096)); {¿¼∩ Σá⌐½á αѺπ½∞ΓáΓá}
SigRez^.OpenBitFile(ParamStr(2),btCreate); {¿º 2-ú« »áα.¬«¼á¡ñ¡«⌐ ßΓ᫬¿}
Polin := New(PStr_Bit,Init(DlKomb));
Polin^.Init_Sim( ParamStr(4) ); { ÄíαáºπεΘ¿⌐ »«½¿¡«¼ ¿º 4-ú« »áα.}
DlCode := DlKomb - Polin^.Length + 1;
For I := 0 to DlCode-1 do begin { ö«α¼¿α«óá¡¿Ñ Γáí½¿µδ »«½¿¡«¼«ó }
MasPol[i] := New(PStr_Bit,Init(DlKomb));
MasPol[i]^.Init_0;
MasPol[i]^.Replace(Polin,I)
end;
While Msig_is^.ReadStr(DlCode) = btOk do begin
SigRez^.Init_0; { ö«α¼¿α«óá¡¿Ñ ñ«»«½¡¿Γѽ∞¡δσ αáºα∩ñ«ó }
SigRez^.Replace(Msig_is,0); { ¬«ñ«ó«⌐ ¬«¼í¿¡áµ¿¿ (èè) µ¿¬½.¬«ñá }
For I := 0 to DlCode-1 do
if SigRez^.GetBit(I) = bt1 then SigRez^.Mod2(MasPol[i]);
SigRez^.Replace(Msig_is,0);
SigRez^.WriteStr; { éδó«ñ èè ó Σá⌐½ }
end;
{ çá¬αδΓ¿Ñ «íαáíáΓδóáѼδσ Σá⌐½«ó }
Msig_is^.CloseBitFile; SigRez^.CloseBitFile;
Dispose(Msig_is,Done); Dispose(SigRez,Done);
end.