tparray11.pp 580 B

1234567891011121314151617181920212223242526
  1. {$bitpacking on}
  2. { from gpc testsuite (sam7.pas) }
  3. Program Sam7;
  4. Var
  5. foo: array [ 'a'..'f' ] of Boolean = ( false, false, true, false, false, false );
  6. bar: packed array [ 42..47 ] of Boolean;
  7. baz: array [ '0'..'5' ] of Boolean;
  8. i: Integer;
  9. begin
  10. pack ( foo, 'a', bar );
  11. unpack ( bar, baz, '0' );
  12. for i:= 0 to 5 do
  13. if bar [ 42 + i ] <> baz [ chr ( ord('0')+ i ) ] then
  14. foo [ 'c' ]:= false;
  15. if foo [ 'c' ] and bar [ 44 ] then
  16. writeln ( 'OK' )
  17. else
  18. begin
  19. writeln ( 'failed ', foo [ 'c' ], ' ', bar [ 44 ] );
  20. halt(1);
  21. end;
  22. end.