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 >
Pascal/Delphi Source File  |  2000-02-24  |  3KB  |  85 lines

  1. program StrVu;
  2. {******************************************************************}
  3. { ö«α¼¿α«óá¡¿Ñ ß¿ú¡á½á Γ¿»á 47ö1 ß óαѼѡ¡δ¼ π»½«Γ¡Ñ¡¿Ñ¼ ¬á¡á½«ó   }
  4. { αáß»αÑñѽѡ¡á∩ ß¿¡σα«¡¿ºáµ¿∩ ó ¡π½Ñó«¼ í¿ΓÑ »Ñα¿«ñá ó¿ñá 0101... }
  5. { Éáí«ΓáεΘ¿⌐ ¬á¡á½ αẼÑΘáÑΓß∩ ó »Ñαó«¼ óαѼѡ¡«¼ ¿¡ΓÑαóá½Ñ        }
  6. { ê¡Σ«α¼áµ¿«¡¡δÑ ñá¡¡δÑ ñ½∩ ¬á¡á½á íÑαπΓß∩ ¿º Σá⌐½á ¿ »αÑ«íαáºπεΓß∩ }
  7. { ó ßΓáαΓ-ßΓ«»¡δ⌐ ¬«ñ ó¿ñá 11ßΓ7 (ß¿¡σα«¡¡δ⌐ 8-¼¿ φ½Ñ¼Ñ¡Γ¡δ⌐ ASCII }
  8. { ¬«ñ »αÑ«íαáºπÑΓß∩ ó 7-¼¿ φ½Ñ¼Ñ¡Γ¡δ⌐ πßÑτÑ¡¿Ñ¼ ßΓáαΦÑú« αáºα∩ñá,  }
  9. { τΓ« »α¿ó«ñ¿Γ ¬ ¿ß¬áªÑ¡¿ε απß߬¿σ ΓѬßΓ«ó)                        }
  10. {                                                                  }
  11. { ö«α¼áΓ ºáñá¡¿∩ »áαá¼ÑΓα«ó τÑαѺ ¬«¼á¡ñ¡πε ßΓ᫬π:                }
  12. { StrVu [êßσ.Σá⌐½] [öá⌐½ óδó«ñá]                                   }
  13. {******************************************************************}
  14. {$F+,R+,X+,B+,V-}
  15.  uses  StrBit16;
  16.  
  17. var InName, OutName : string;
  18.     Ftest : File;
  19.  
  20. procedure SigVu(NameIs, NameRez: String);
  21. var Fin, FOut : PBitFile;
  22.     Fpreob, FZnak : PStr_bit;
  23.     Znak, J : Byte;
  24. Begin
  25.   FIn  := New (PbitFile, Init(8,1024) ); {éδñѽѡ¿Ñ »á¼∩Γ¿}
  26.   FOut := New (PbitFile, Init(47,1024) ); {éδñѽѡ¿Ñ »á¼∩Γ¿}
  27.   FOut^.OpenBitFile (NameRez, btCreate); {ÄΓ¬αδΓ¿Ñ Σá⌐½á}
  28.   FIn^.OpenBitFile (NameIs, btOpenRead); {ÄΓ¬αδΓ¿Ñ Σá⌐½á}
  29.      {ê¡¿µ¿á½¿ºáµ¿∩ ßΓαπ¬Γπαδ »Ñα¿«ñá »ÑαÑñáτ¿}
  30.   FOut^.Init_Sim
  31.       ('00101010101010101010101101010101010101010101010');
  32.   Fpreob := New(PStr_bit,Init(11));
  33.   Fznak := New(PStr_bit,Init(8));
  34.   Fpreob^.Init_Sim('0xxxxxxxp11'); {ê¡¿µ¿á½¿ºáµ¿∩ ßΓáαΓ-ßΓ«».}
  35.   while Fin^.ReadStr(8) = btOk do begin {æτ¿ΓáΓ∞ ¿¡Σ«α¼áµ¿«¡¡δ⌐ º¡á¬}
  36.     Fin^.PutBit(8,bt0); {«í¡π½¿Γ∞ »«ß½Ññ¡¿⌐ αáºα∩ñ}
  37.     Fin^.PutBit(8, Fin^.Kol_ed); {ñ«íáó¿Γ∞ αáºα∩ñ τÑΓ¡«ßΓ¿}
  38.     Fznak^.Replace(Fin,1); {ÅÑαÑ»¿ßáΓ∞ º¡á¬ ó ßΓáαΓ-ßΓ«»¡.ó¿ñ}
  39.     For J:=0 to 10 do {çừ½¡¿Γ∞ í¿ΓἿ º¡á¬á óαѼѡ¡«⌐ ¿¡ΓÑαóá½ ¡á 11 µ¿¬½áσ}
  40.     begin
  41.      FOut^.PutBit(3, Fznak^.GetBit(J));
  42.      FOut^.InvBit(0); {æΣ«α¼¿α«óáΓ∞ ß¿¡σα«¡¿ºáµ¿ε "¼Ñá¡ñα" }
  43.      FOut^.WriteStr; {çỿßáΓ∞ µ¿¬½ »ÑαÑñáτ¿ ¡á ñ¿ß¬}
  44.     end end;
  45.  Fin^.CloseBitFile; { çá¬αδΓ¿Ñ «íαáíáΓδóáѼδσ Σá⌐½«ó}
  46.  Fout^.CloseBitFile;
  47.  Dispose(Fin,Done); Dispose(FOut,Done); {Äßó«í«ªñÑ¡¿Ñ »á¼∩Γ¿}
  48. end;
  49.  
  50. begin
  51.   Writeln('ö«αନα«óá¡¿Ñ í¿Γ«ó«ú« »«Γ«¬á ß óαѼѡ¡δ¼ π»½«Γ¡Ñ¡¿Ñ¼');
  52.   Writeln('ÇóΓ«α : æѼѡ«ó é.ï. éÑαß¿∩ 3.3 «Γ 25.11.99 ú.');
  53.   InName := '';
  54.  if ParamCount <1
  55.    then repeat
  56.    if InName <> '' then writeln('öá⌐½  ',InName, ' ¡Ñ ¡á⌐ñÑ¡!   éóÑñ¿ΓÑ ¬«ααÑ¬Γ¡«Ñ ¿¼∩ Σá⌐½á');
  57.       write('éóÑñ¿ΓÑ ¿¼∩ ¿ßσ«ñ¡«ú« Σá⌐½á: ');
  58.       readln(InName);
  59. {$I-}
  60.       Assign(Ftest,InName);
  61.       FileMode := 0;
  62.       Reset(Ftest);
  63.       Close(Ftest);
  64. {$I+}
  65.    until (IOResult = 0) and (InName <> '')
  66.   else InName :=ParamStr(1);   { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
  67.  if (ParamCount = 1) and ((InName='?') or (InName='/?') or (InName='-?')
  68.      or (InName='h')  or (InName='/h') or (InName='-h') )
  69.     then begin
  70.       writeln;
  71.       writeln('       ö«α¼áΓ ºáñá¡¿∩ »áαá¼ÑΓα«ó τÑαѺ ¬«¼á¡ñ¡πε ßΓ᫬π:');
  72.       writeln('Vu16 [êßσ.Σá⌐½] [öá⌐½ óδó«ñá]');
  73.       writeln;
  74.       writeln('é ß½πτáÑ ºáñá¡¿∩ τáßΓ¿ »áαá¼ÑΓα«ó «ßΓá½∞¡δÑ íπñπΓ ºá»α«ΦÑ¡δ ó αѪ¿¼Ñ ñ¿á½«úá');
  75.       Exit;
  76.          end;
  77.  if ParamCount < 2 then
  78.   begin write('éóÑñ¿ΓÑ ¿¼∩ Σá⌐½á óδó«ñá αѺπ½∞ΓáΓ«ó: ');
  79.         readln(OutName);
  80.   end
  81.   else OutName :=ParamStr(2);   { óº∩Γ∞ ¿¼∩ Σá⌐½á ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ }
  82.  
  83.  SigVu(InName, OutName);
  84. end.
  85.