home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 September
/
Chip_2002-09_cd1.bin
/
zkuste
/
delphi
/
kompon
/
d123456
/
STR_BIT.ZIP
/
16
/
PRIM
/
STRVU.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
2000-02-24
|
3KB
|
85 lines
program StrVu;
{******************************************************************}
{ ö«α¼¿α«óá¡¿Ñ ß¿ú¡á½á Γ¿»á 47ö1 ß óαѼѡ¡δ¼ π»½«Γ¡Ñ¡¿Ñ¼ ¬á¡á½«ó }
{ αáß»αÑñѽѡ¡á∩ ß¿¡σα«¡¿ºáµ¿∩ ó ¡π½Ñó«¼ í¿ΓÑ »Ñα¿«ñá ó¿ñá 0101... }
{ Éáí«ΓáεΘ¿⌐ ¬á¡á½ αẼÑΘáÑΓß∩ ó »Ñαó«¼ óαѼѡ¡«¼ ¿¡ΓÑαóá½Ñ }
{ ê¡Σ«α¼áµ¿«¡¡δÑ ñá¡¡δÑ ñ½∩ ¬á¡á½á íÑαπΓß∩ ¿º Σá⌐½á ¿ »αÑ«íαáºπεΓß∩ }
{ ó ßΓáαΓ-ßΓ«»¡δ⌐ ¬«ñ ó¿ñá 11ßΓ7 (ß¿¡σα«¡¡δ⌐ 8-¼¿ φ½Ñ¼Ñ¡Γ¡δ⌐ ASCII }
{ ¬«ñ »αÑ«íαáºπÑΓß∩ ó 7-¼¿ φ½Ñ¼Ñ¡Γ¡δ⌐ πßÑτÑ¡¿Ñ¼ ßΓáαΦÑú« αáºα∩ñá, }
{ τΓ« »α¿ó«ñ¿Γ ¬ ¿ß¬áªÑ¡¿ε απß߬¿σ ΓѬßΓ«ó) }
{ }
{ ö«α¼áΓ ºáñá¡¿∩ »áαá¼ÑΓα«ó τÑαѺ ¬«¼á¡ñ¡πε ßΓ᫬π: }
{ StrVu [êßσ.Σá⌐½] [öá⌐½ óδó«ñá] }
{******************************************************************}
{$F+,R+,X+,B+,V-}
uses StrBit16;
var InName, OutName : string;
Ftest : File;
procedure SigVu(NameIs, NameRez: String);
var Fin, FOut : PBitFile;
Fpreob, FZnak : PStr_bit;
Znak, J : Byte;
Begin
FIn := New (PbitFile, Init(8,1024) ); {éδñѽѡ¿Ñ »á¼∩Γ¿}
FOut := New (PbitFile, Init(47,1024) ); {éδñѽѡ¿Ñ »á¼∩Γ¿}
FOut^.OpenBitFile (NameRez, btCreate); {ÄΓ¬αδΓ¿Ñ Σá⌐½á}
FIn^.OpenBitFile (NameIs, btOpenRead); {ÄΓ¬αδΓ¿Ñ Σá⌐½á}
{ê¡¿µ¿á½¿ºáµ¿∩ ßΓαπ¬Γπαδ »Ñα¿«ñá »ÑαÑñáτ¿}
FOut^.Init_Sim
('00101010101010101010101101010101010101010101010');
Fpreob := New(PStr_bit,Init(11));
Fznak := New(PStr_bit,Init(8));
Fpreob^.Init_Sim('0xxxxxxxp11'); {ê¡¿µ¿á½¿ºáµ¿∩ ßΓáαΓ-ßΓ«».}
while Fin^.ReadStr(8) = btOk do begin {æτ¿ΓáΓ∞ ¿¡Σ«α¼áµ¿«¡¡δ⌐ º¡á¬}
Fin^.PutBit(8,bt0); {«í¡π½¿Γ∞ »«ß½Ññ¡¿⌐ αáºα∩ñ}
Fin^.PutBit(8, Fin^.Kol_ed); {ñ«íáó¿Γ∞ αáºα∩ñ τÑΓ¡«ßΓ¿}
Fznak^.Replace(Fin,1); {ÅÑαÑ»¿ßáΓ∞ º¡á¬ ó ßΓáαΓ-ßΓ«»¡.ó¿ñ}
For J:=0 to 10 do {çừ½¡¿Γ∞ í¿ΓἿ º¡á¬á óαѼѡ¡«⌐ ¿¡ΓÑαóá½ ¡á 11 µ¿¬½áσ}
begin
FOut^.PutBit(3, Fznak^.GetBit(J));
FOut^.InvBit(0); {æΣ«α¼¿α«óáΓ∞ ß¿¡σα«¡¿ºáµ¿ε "¼Ñá¡ñα" }
FOut^.WriteStr; {çỿßáΓ∞ µ¿¬½ »ÑαÑñáτ¿ ¡á ñ¿ß¬}
end end;
Fin^.CloseBitFile; { çá¬αδΓ¿Ñ «íαáíáΓδóáѼδσ Σá⌐½«ó}
Fout^.CloseBitFile;
Dispose(Fin,Done); Dispose(FOut,Done); {Äßó«í«ªñÑ¡¿Ñ »á¼∩Γ¿}
end;
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('Vu16 [êßσ.Σá⌐½] [öá⌐½ óδó«ñá]');
writeln;
writeln('é ß½πτáÑ ºáñá¡¿∩ τáßΓ¿ »áαá¼ÑΓα«ó «ßΓá½∞¡δÑ íπñπΓ ºá»α«ΦÑ¡δ ó αѪ¿¼Ñ ñ¿á½«úá');
Exit;
end;
if ParamCount < 2 then
begin write('éóÑñ¿ΓÑ ¿¼∩ Σá⌐½á óδó«ñá αѺπ½∞ΓáΓ«ó: ');
readln(OutName);
end
else OutName :=ParamStr(2); { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
SigVu(InName, OutName);
end.