home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 September
/
Chip_2002-09_cd1.bin
/
zkuste
/
delphi
/
kompon
/
d123456
/
STR_BIT.ZIP
/
16
/
PRIM
/
OTL.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
2002-06-11
|
4KB
|
93 lines
program StrBitDemo;
{$F+,R+,X+,B+,V-}
uses StrBit16;
const
Nazn : string =
#10#13'ÆÑßΓ«óá∩ »α«úαá¼¼á ñ½∩ ¼«ñπ½∩ «íαáí«Γ¬¿ í¿Γ«óδσ ßΓ᫬ óÑαß¿¿ 3.4';
Is_dan : array [1..3] of integer = ( 12, 225, -3 );
Is_str : string[90] = '01011100000011111110'+ '110111000101001011000';
var S1,S2,S4 : PStr_Bit;
S3 : PBitFile;
Rez_s : string;
i, D1,Nach : word; D2 : Byte;
Mrasp : array [1..200] of byte;
begin
Writeln(Nazn);
S2 := New(PStr_Bit,Init(37));
S3 := New(PBitFile,Init(3000,4));
Writeln('û¿¬½¿τÑ߬¿⌐ ßñó¿ú ßΓp«¬¿ ¡á «ñ¿¡ í¿Γ ó½Ñó«');
With S3^ do begin
if OpenBitFile('aa.dat',btCreate) <> btOk Then Halt(1);
Init_array(Is_dan, SizeOf(Is_dan)); { ÅpÑ«íp.¼áßß¿ó ó í¿Γ.ßΓp«¬π}
Writeln (Val_sim(SizeOf(Rez_s)-1) ); { Éáß»ÑτáΓ¬á í¿Γ«ó«⌐ ßΓp«¬¿ }
D2 := GetBit(0); { û¿¬½¿τÑ߬¿⌐ ßñó¿ú ßΓp«¬¿ S3 }
LastBitDisplase(D2); { ¡á «ñ¿¡ í¿Γ ó½Ñó« }
Writeln (Val_sim(SizeOf(Rez_s)-1) ); { Éáß»ÑτáΓ¬á í¿Γ«ó«⌐ ßΓp«¬¿ }
end;
Writeln('û¿¬½¿τÑ߬¿⌐ ßñó¿ú ßΓp«¬¿ ¡á 6 í¿Γ ó»αáó«');
D1 := 6; Writeln(Is_str);
S1 := New(PStr_Bit,Init(3000)); { éδñѽѡ¿Ñ »á¼∩Γ¿ ñ½∩ ßΓp«¬¿ S1 }
With S1^ do begin
Init_Sim(Is_Str); { ê¡¿µ¿á½¿ºáµ¿∩ º¡áτÑ¡¿∩ ßΓp«¬¿ í¿Γ S1 }
S2^.Copy(S1,Length - D1, D1 ); { û¿¬½¿τÑ߬¿⌐ ßñó¿ú }
Delete(Length - D1, D1 ); { ßΓp«¬¿ S3 ¡á }
Insert(S2,0); { D1 í¿Γ ó»páó« }
Write (Val_sim(SizeOf(Rez_s)-1) ); { Éáß»ÑτáΓ¬á í¿Γ«ó«⌐ ßΓp«¬¿ }
end;
S3^.CopyAllBit(S1); S2^.Init_1;
S3^.WriteStr; Writeln(' çỿß∞ φΓ«⌐ ßΓ᫬¿ ó Σá⌐½');
Writeln('ê¡óÑαß¿∩ »αÑñδñ.ßΓ᫬¿ c «ñ¡«óαѼѡ¡δ¼ πßÑτÑ¡¿Ñ¼ ñ½¿¡δ ¿ πñá½Ñ¡¿Ñ¼ 3 »Ñαóδσ í¿Γ');
S4 := New(PStr_Bit,Init(156));
S4^.Bool_op(S1,S2,3,btXOR); { çỿß∞ ó ßΓp«¬π S4 »«ñßΓp«¬¿ ¿º S1 }
{ ñ½¿¡«⌐ S2^.length ó ¿¡óÑpß¡«¼ ó¿ñÑ }
Write(' ', S4^.Val_sim(SizeOf(Rez_s)-1) );
Writeln(' çỿß∞ φΓ«⌐ ßΓ᫬¿ ó Σá⌐½');
S3^.CopyAllBit(S4);
S3^.WriteStr; { çỿß∞ í¿Γ«ó«⌐ ßΓp«¬¿ ó Σá⌐½ }
Write('è«¡¬áΓѡᵿ∩ »«ß½Ññ¡Ñ⌐ ßΓp«¬¿ ß »αÑñδñπΘÑ⌐ ');
D2 := S4^.Length;
S4^.Concat(S1); { è«¡¬áΓѡᵿ∩ ßΓp«¬ S4,S1 }
Writeln(S4^.Length,' = ', D2, '+',S1^.Length , ' :');
Writeln (S4^.Val_sim(SizeOf(Rez_s)-1) ); { Éáß»ÑτáΓ¬á í¿Γ«ó«⌐ ßΓp«¬¿ }
Writeln('»«¿ß¬ ¬«¼í¿¡áµ¿¿ í¿Γ ó¿ñá "10000" ¿ páß»ÑτáΓ¬á ¡á⌐ñÑ¡δσ »«º¿µ¿⌐');
Nach := 0; S1^.Init_sim('10000'); { »«¿ß¬ ¬«¼í¿¡áµ¿¿ í¿Γ }
With S4^ do repeat { ó¿ñá "1000" ¿ páß»ÑτáΓ¬á}
Nach := Pos(S1,Nach,1); { ¡á⌐ñÑ¡δσ »«º¿µ¿⌐ }
Write(Nach:10);
if Nach <> btNotFound then inc(Nach)
until Nach = btNotFound;
Writeln(#10#13'ÅpÑñßΓáó.í¿Γ«ó.ßΓp«¬¿ ó ó¿ñÑ αá߻ᬫóá¡¡«ú« ¼áßß¿óá íá⌐Γ ¿ αáß».φ½Ñ¼.¼áßß¿óá');
D1 := s4^.Val_Mas(Mrasp,sizeof(Mrasp));
for nach := 1 to D1 do write( Mrasp[nach]); Writeln;
S3^.CloseBitFile;
Writeln('ê¡óÑαß¿∩ 3-ú« ¿ 14 -ú« í¿Γ ßΓ᫬¿');
s4^.InvBit(14);
s4^.InvBit(3);
Writeln (S4^.Val_sim(SizeOf(Rez_s)-1) ); { Éáß»ÑτáΓ¬á í¿Γ«ó«⌐ ßΓp«¬¿ }
Writeln('012345678901234567890123456789012345678901234567890123456789');
S4^.PutBit(17,1); S4^.PutBit(0,1);
Writeln (S4^.Val_sim(SizeOf(Rez_s)-1) ); { Éáß»ÑτáΓ¬á í¿Γ«ó«⌐ ßΓp«¬¿ }
Writeln(#24' çỿß∞ "1" ó 0 ¿ 17 -δ⌐ í¿Γδ ßΓ᫬¿ '#24);
Writeln('78 í¿Γ ßτ¿Γá¡« »«í¿Γ¡« ¿º Σá⌐½á');
if S3^.OpenBitFile('aa.dat',btOpenRead) <> btOk Then Halt(1);
for nach := 0 to 77 do write(S3^.ReadBit);
Writeln;
S3^.SeekStr(0);
nach := S3^.ReadNomer(3);
while Error_File_bit = 0 do begin write(nach:3);
nach := S3^.ReadNomer(3) end;
Writeln(#10#13#24' Å«óΓ«α¡«Ñ τΓÑ¡¿Ñ í¿Γ«ó«⌐ ßΓ᫬¿ ¿º Σá⌐½á ¿ »αÑ«íαẫóá¡¿Ñ ó 8 ó¿ñ '#24);
S3^.SeekStr(0); S3^.ReadStr(78);
S3^.BitDisplase(0);
Writeln('ä«íáó½Ñ¡¿Ñ 0 í¿Γá ó αÑú¿ßΓα ßΓó¿úá, »αÑñßΓáó½Ñ¡¡δ⌐ »αÑñδñ ßΓ᫬«⌐');
Writeln ( S3^.Val_sim(90) );
S2^.Copy( S4, 2, 16);
Writeln(' ', S2^.Val_Sim(120) );
Write('æπ¼¼á »« ¼«ñ.2 í¿Γ »Ñαó.ßΓ᫬¿ ¡á »«º¿µ¿∩σ,»αÑñßΓáó½ 1 í¿ΓἿ óΓ«α.ßΓ᫬¿:= ');
Write (S3^.Modreg(S2,2));
S3^.CloseBitFile;
{ Äßó«í«ªñÑ¡¿Ñ »á¼∩Γ¿, ºá¡∩Γ«⌐ ßΓp«¬«⌐ S3 !! éδ»«½¡∩Γ∞ «í∩ºáΓѽ∞¡«}
Dispose(S3,Done);
{ àß½¿ óδ ºáí뫨 ºá¬αδΓ∞ Σá⌐½, Γ« «¡ ºá¬αδóáÑΓß∩ áóΓ«¼áΓ¿τÑ߬¿ }
Dispose(S4,Done); Dispose(S1,Done); Dispose(S2,Done);
end.