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 >
Wrap
Pascal/Delphi Source File
|
1999-11-25
|
2KB
|
49 lines
program Bit_Reorder;
{ ¡á óσ«ñ »α«úαá¼¼δ »«ñáÑΓß∩ Σá⌐½, óδσ«ñ¡«⌐ Σá⌐½ »«½πτáÑΓß∩ }
{ c »αÑ«íαẫóá¡¡δ¼ »«α∩ñ¬«¼ ß½Ññ«óá¡¿∩ í¿Γ ó íá⌐Γáσ Σá⌐½á }
{$F+,R+,X+,B+,V-}
var
InName, OutName : String;
FileInp, FileOut : File;
NumRead, NumWritten: Word;
Buff: Array [0..4096] of byte;
{$L OrderBit.obj}
Procedure OrderBit(Mreor : pointer; KolBayt : integer); external;
{ Åα«µÑñπαá ¿º¼Ñ¡∩ÑΓ »«α∩ñ«¬ ß½Ññ«óá¡¿∩ í¿Γ ó ¼áßß¿óÑ (»ÑαÑó«α«Γ íá⌐Γá)}
begin { Äß¡«ó¡«Ñ Γѽ« »p«úpá¼¼δ }
writeln('ÅαÑ«íαẫóá¡¿Ñ »«α∩ñ¬á ß½Ññ«óá¡¿∩ í¿Γ ó íá⌐Γáσ Σá⌐½á');
writeln('ÇóΓ«α : æѼѡ«ó é.ï. éÑαß¿∩ 3.3 «Γ 25.11.99 ú.');
if ParamCount <1 then
begin write('éóÑñ¿ΓÑ ¿¼∩ ¿ßσ«ñ¡«ú« Σá⌐½á: ');
readln(InName);
end
else InName :=ParamStr(1); { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
if ParamCount < 2 then
begin write('éóÑñ¿ΓÑ ¿¼∩ Σá⌐½á óδó«ñá αѺπ½∞ΓáΓ«ó: ');
readln(OutName);
end
else OutName :=ParamStr(2); { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
{$I-}
Assign(FileInp,InName);
Reset(FileInp,1);
{$I+}
if IOResult <> 0 then begin
Writeln('ÄΦ¿í¬á »α¿ «íαáΘÑ¡¿¿ ¬ Σá⌐½π: ',InName);
Close(FileInp);
Exit end;
Assign(FileOut,OutName);
Rewrite(FileOut,1);
repeat
BlockRead(FileInp, Buff, 4096, NumRead);
If NumRead <= 0 then break;
OrderBit(@Buff, NumRead);
BlockWrite(FileOut, Buff, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
Close(FileInp);
Close(FileOut);
Writeln('ÅαÑ«íαẫóá¡¿Ñ »«α∩ñ¬á ß½Ññ«óá¡¿∩ í¿Γ ºá¬«¡τÑ¡«');
end.