home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 September
/
Chip_2002-09_cd1.bin
/
zkuste
/
delphi
/
kompon
/
d123456
/
STR_BIT.ZIP
/
16
/
PRIM
/
BITPRIN.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1999-11-25
|
3KB
|
88 lines
program BitPrinFile;
{$F+,R+,X+,B+,V-}
{ÅαÑ«íαẫóá¡¿Ñ í¿Γ«ó«ú« »«Γ«¬á ó ß¿¼ó«½∞¡δ⌐ Σá⌐½,¿¼ÑεΘ¿⌐ »Ñα¿«ñ αáß»ÑτáΓ¬¿}
uses StrBit16;
var
InName, OutName, LenName, RegVyv : String;
FileInp : PBitFile; FileOut : text;
LenStr,i : WORD;
Ftest : File;
begin
Writeln('ÅαÑ«íαẫóá¡¿Ñ í¿Γ«ó«ú« »«Γ«¬á ó ß¿¼ó«½∞¡δ⌐ Σá⌐½,¿¼ÑεΘ¿⌐ »Ñα¿«ñ αáß»ÑτáΓ¬¿');
Writeln('ÇóΓ«α : æѼѡ«ó é.ï. éÑαß¿∩ 3.3 «Γ 25.11.99 ú.');
InName := '';
if ParamCount <1
then repeat
if InName <> '' then writeln('öá⌐½ ',InName, ' ¡Ñ ¡á⌐ñÑ¡! éóÑñ¿ΓÑ ¬«ααÑ¬Γ¡«Ñ ¿¼∩ Σá⌐½á');
write('éóÑñ¿ΓÑ ¿¼∩ ¿ßσ«ñ¡«ú« Σá⌐½á: ');
readln(InName);
{$I-}
Assign(Ftest,InName);
FileMode := 0;
Reset(Ftest);
Close(Ftest);
{$I+}
until (IOResult = 0) and (InName <> '')
else InName :=ParamStr(1); { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
if (ParamCount = 1) and ((InName='?') or (InName='/?') or (InName='-?')
or (InName='h') or (InName='/h') or (InName='-h') )
then begin
writeln;
writeln(' ö«α¼áΓ ºáñá¡¿∩ »áαá¼ÑΓα«ó τÑαѺ ¬«¼á¡ñ¡πε ßΓ᫬π:');
writeln('Bitprin [êßσ.Σá⌐½] [öá⌐½ óδó«ñá] [ÅÑα¿«ñ αáß»ÑτáΓ¬¿] [ê¡ó.»«α∩ñ¬á]');
writeln;
writeln('é ß½πτáÑ ºáñá¡¿∩ τáßΓ¿ »áαá¼ÑΓα«ó «ßΓá½∞¡δÑ íπñπΓ ºá»α«ΦÑ¡δ ó αѪ¿¼Ñ ñ¿á½«úá');
writeln('àß½¿ º¡áτÑ¡¿Ñ 4-ú« »áαá¼ÑΓαá αáó¡« "«" ¿½¿ "y", Γ« »α¿ αáß»Ñτá⪥ ñá¡¡δσ');
writeln('íπñÑΓ »α«¿ºóÑñÑ¡ αáºó«α«Γ »«α∩ñ¬á ß½Ññ«óá¡¿∩ í¿Γ ó íá⌐ΓÑ ñá¡¡δσ');
Exit;
end;
if ParamCount < 2 then
begin write('éóÑñ¿ΓÑ ¿¼∩ Σá⌐½á óδó«ñá αѺπ½∞ΓáΓ«ó: ');
readln(OutName);
end
else OutName :=ParamStr(2); { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
if ParamCount < 3 then
begin write('éóÑñ¿ΓÑ ñ½¿¡π »Ñα¿«ñá αáß»ÑτáΓ¬¿: ');
readln(LenName);
end
else LenName :=ParamStr(3); { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
Val(LenName, LenStr, i );
if (i <> 0) or (LenStr>254) then begin
Writeln('ÄΦ¿í¬á »α¿ ºáñá¡¿¿ ñ½¿¡δ ßΓ᫬¿');
Exit end;
if ParamCount > 3 then RegVyv :=ParamStr(4)
else begin
write('ê¡óÑαΓ¿α«óáΓ∞ »«α∩ñ«¬ ß½Ññ«óá¡¿∩ í¿Γ ó íá⌐ΓÑ ñá¡¡δσ? (y/N) : ');
readln(RegVyv);
end;
FileInp := New(PBitFile,Init(4096,4096));
If FileInp^.OpenBitFile(InName,btOpenRead) <> 0 then begin
Writeln('ÄΦ¿í¬á »α¿ «íαáΘÑ¡¿¿ ¬ ¿ßσ«ñ¡«¼π Σá⌐½π');
Exit end;
Assign(FileOut, OutName);
Rewrite(FileOut);
Writeln(FileOut, 'Éáß»ÑτáΓ¬á Σá⌐½á ', InName, ' ß »Ñα¿«ñ«¼ ',LenStr);
if ( (RegVyv = 'o') or (RegVyv = 'O') or (RegVyv = '«') or
(RegVyv = 'Ä') ) or (RegVyv = 'y') or (RegVyv = 'Y')
then begin
Writeln(FileOut, '!!! Å«α∩ñ«¬ ¡π¼Ñαᵿ¿ í¿Γ ó íá⌐Γáσ «íαáΓ¡δ⌐');
FileInp^.ChangeOrderBit;
end;
(********************************************************************)
(* Äß¡«ó¡«Ñ Γѽ« óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ αáß»ÑτáΓ¬¿ ñá¡¡δσ ó Σá⌐½ *)
(********************************************************************)
Writeln(FileOut,'');
for i := 1 to LenStr do Write(FileOut, (i mod 10) );
Writeln(FileOut,'');
i:= 0;
while FileInp^.ReadStr(LenStr) = btOk do begin
inc(i);
Writeln(FileOut, FileInp^.Val_sim(LenStr), i:4 );
end;
Writeln(FileOut,'');
(********************************************************************)
FileInp^.CloseBitFile;
Dispose(FileInp,Done);
Close(FileOut);
Writeln('éδó«ñ ó Σá⌐½ ºá¬«¡τÑ¡');
end.