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 >
Pascal/Delphi Source File  |  2000-07-21  |  2KB  |  41 lines

  1. program CiklKod;
  2. {$F+,R+,X+,B+}
  3. { è«ñ¿α«óá¡¿Ñ ñá¡¡¡δσ µ¿¬½¿τÑ߬¿¼ ¬«ñ«¼ »« »«α«ªñáεΘÑ¼π ¼¡«ú«τ½Ñ¡π }
  4. { ÅÑαÑñáτá ñá¡¡δσ Γ«½∞¬« τÑαѺ ¬«¼á¡ñ¡πε ßΓ᫬π!!!                 }
  5. { ö«α¼áΓ ó맮óá :                                                  }
  6. { CiklKod <¿¼∩ ¿ßσ«ñ¡«ú« Σá⌐½á>, <¿¼∩ Σá⌐½á αѺπ½∞ΓáΓá>, <ñ½¿¡á ¬«ñá>, <«íαáºπεΘ¿⌐ »«½¿¡«¼> }
  7.  uses  StrBit16;
  8.  var Msig_is, SigRez : PBitFile;
  9.      Polin : PStr_Bit;
  10.      I, DlKomb, DlCode : Integer;
  11.      MasPol : Array [0..40] of PStr_Bit;
  12. begin
  13.  Writeln('è«ñ¿α«óá¡¿Ñ ñá¡¡¡δσ µ¿¬½¿τÑ߬¿¼ ¬«ñ«¼ »« »«α«ªñáεΘÑ¼π ¼¡«ú«τ½Ñ¡π');
  14.  if ParamCount <> 4 Then Exit;
  15.  Val(ParamStr(3), DlKomb, DlCode); { ÅαÑ«íαẫóá¡¿Ñ ñ½¿¡δ ó ß¿¼ó«½∞¡δ⌐ ó¿ñ }
  16.  If (DlCode <> 0) or (DlKomb > 40) Then Halt(1);
  17.    { ÄΓ¬αδΓ¿Ñ Σá⌐½«ó ñ½∩ «íαáí«Γ¬¿ }
  18.  Msig_is:= New(PBitFile,Init(DlKomb,4096));    {¿¼∩ ¿ßσ«ñ¡«ú« Σá⌐½á}
  19.  Msig_is^.OpenBitFile(ParamStr(1),btOpenRead); {¿º 1-ú« »áα.¬«¼á¡ñ¡«⌐ ßΓ᫬¿}
  20.  SigRez:= New(PBitFile,Init(DlKomb,4096));   {¿¼∩ Σá⌐½á αѺπ½∞ΓáΓá}
  21.  SigRez^.OpenBitFile(ParamStr(2),btCreate);  {¿º 2-ú« »áα.¬«¼á¡ñ¡«⌐ ßΓ᫬¿}
  22.  Polin := New(PStr_Bit,Init(DlKomb));
  23.  Polin^.Init_Sim( ParamStr(4) );       { ÄíαáºπεΘ¿⌐ »«½¿¡«¼ ¿º 4-ú« »áα.}
  24.  DlCode := DlKomb - Polin^.Length + 1;
  25.   For I := 0 to DlCode-1 do begin { ö«α¼¿α«óá¡¿Ñ Γáí½¿µδ »«½¿¡«¼«ó }
  26.     MasPol[i] := New(PStr_Bit,Init(DlKomb));
  27.     MasPol[i]^.Init_0;
  28.     MasPol[i]^.Replace(Polin,I)
  29.   end;
  30.   While Msig_is^.ReadStr(DlCode) = btOk do begin
  31.     SigRez^.Init_0;             { ö«α¼¿α«óá¡¿Ñ ñ«»«½¡¿Γѽ∞¡δσ αáºα∩ñ«ó }
  32.     SigRez^.Replace(Msig_is,0); { ¬«ñ«ó«⌐ ¬«¼í¿¡áµ¿¿ (èè) µ¿¬½.¬«ñá    }
  33.      For I := 0 to DlCode-1 do
  34.        if SigRez^.GetBit(I) = bt1 then SigRez^.Mod2(MasPol[i]);
  35.     SigRez^.Replace(Msig_is,0);
  36.     SigRez^.WriteStr;      { éδó«ñ èè ó Σá⌐½ }
  37.   end;
  38.   { çá¬αδΓ¿Ñ «íαáíáΓδóáѼδσ Σá⌐½«ó }
  39.  Msig_is^.CloseBitFile;   SigRez^.CloseBitFile;
  40.  Dispose(Msig_is,Done);   Dispose(SigRez,Done);
  41. end.