home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / kompon / d123456 / STR_BIT.ZIP / 16 / PRIM / BITREORD.PAS < prev    next >
Pascal/Delphi Source File  |  1999-11-25  |  2KB  |  49 lines

  1. program Bit_Reorder;
  2.  {  ¡á óσ«ñ »α«úαá¼¼δ »«ñáÑΓß∩ Σá⌐½, óδσ«ñ¡«⌐ Σá⌐½ »«½πτáÑΓß∩  }
  3.  {  c »αÑ«íαẫóá¡¡δ¼ »«α∩ñ¬«¼ ß½Ññ«óá¡¿∩ í¿Γ ó íá⌐Γáσ Σá⌐½á   }
  4. {$F+,R+,X+,B+,V-}
  5. var
  6.  InName, OutName : String;
  7.  FileInp, FileOut : File;
  8.  NumRead, NumWritten: Word;
  9.  Buff: Array [0..4096] of byte;
  10.  
  11. {$L OrderBit.obj}
  12. Procedure OrderBit(Mreor : pointer; KolBayt : integer);     external;
  13. { Åα«µÑñπαá ¿º¼Ñ¡∩ÑΓ »«α∩ñ«¬ ß½Ññ«óá¡¿∩ í¿Γ ó ¼áßß¿óÑ (»ÑαÑó«α«Γ íá⌐Γá)}
  14.  
  15. begin { Äß¡«ó¡«Ñ Γѽ« »p«úpá¼¼δ }
  16.   writeln('ÅαÑ«íαẫóá¡¿Ñ »«α∩ñ¬á ß½Ññ«óá¡¿∩ í¿Γ ó íá⌐Γáσ Σá⌐½á');
  17.   writeln('ÇóΓ«α : æѼѡ«ó é.ï. éÑαß¿∩ 3.3 «Γ 25.11.99 ú.');
  18.  if ParamCount <1 then
  19.   begin write('éóÑñ¿ΓÑ ¿¼∩ ¿ßσ«ñ¡«ú« Σá⌐½á: ');
  20.         readln(InName);
  21.   end
  22.   else InName :=ParamStr(1);   { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
  23.  if ParamCount < 2 then
  24.   begin write('éóÑñ¿ΓÑ ¿¼∩ Σá⌐½á óδó«ñá αѺπ½∞ΓáΓ«ó: ');
  25.         readln(OutName);
  26.   end
  27.   else OutName :=ParamStr(2);   { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
  28. {$I-}
  29.   Assign(FileInp,InName);
  30.   Reset(FileInp,1);
  31. {$I+}
  32.   if IOResult <> 0 then begin
  33.      Writeln('ÄΦ¿í¬á »α¿ «íαáΘÑ¡¿¿ ¬ Σá⌐½π: ',InName);
  34.      Close(FileInp);
  35.      Exit               end;
  36.   Assign(FileOut,OutName);
  37.   Rewrite(FileOut,1);
  38.  
  39.   repeat
  40.    BlockRead(FileInp, Buff, 4096, NumRead);
  41.    If NumRead <= 0 then break;
  42.    OrderBit(@Buff, NumRead);
  43.    BlockWrite(FileOut, Buff, NumRead, NumWritten);
  44.   until (NumRead = 0) or (NumWritten <> NumRead);
  45.  
  46.   Close(FileInp);
  47.   Close(FileOut);
  48.  Writeln('ÅαÑ«íαẫóá¡¿Ñ »«α∩ñ¬á ß½Ññ«óá¡¿∩ í¿Γ ºá¬«¡τÑ¡«');
  49. end.