entity ch_18_02_a is
end entity ch_18_02_a;


architecture writer of ch_18_02_a is
begin

  process is
    type bit_vector_file is file of bit_vector;
    file vectors : bit_vector_file open write_mode is "vectors.dat";
  begin
    write(vectors, bit_vector'(""));
    write(vectors, bit_vector'("1"));
    write(vectors, bit_vector'("10"));
    write(vectors, bit_vector'("011"));
    write(vectors, bit_vector'("0100"));
    write(vectors, bit_vector'("00101"));
    write(vectors, bit_vector'("000110"));
    write(vectors, bit_vector'("0000111"));
    write(vectors, bit_vector'("00001000"));
    write(vectors, bit_vector'("111111111111111111111111111111111111111111111111111111111111111111111111"));
    wait;
  end process;

end architecture writer;


----------------------------------------------------------------



entity ch_18_02 is

end entity ch_18_02;


----------------------------------------------------------------


architecture test of ch_18_02 is
begin


  process is

   type element_type is (t1, t2, t3);
   type file_type is file of element_type;

    -- code from book:

    type bit_vector_file is file of bit_vector;

    procedure read ( file f : file_type;
                     value : out element_type;  length : out natural );

    -- end of code from book

    procedure read ( file f : file_type;
                     value : out element_type;  length : out natural ) is
    begin
    end;

    -- end of code from book

  begin
    wait;
  end process;


  process is

    type bit_vector_file is file of bit_vector;

    -- code from book:

    file vectors : bit_vector_file open read_mode is "vectors.dat";
    variable next_vector : bit_vector(63 downto 0);
    variable actual_len : natural;

    -- end of code from book

    variable lost : boolean;

  begin
    while not endfile(vectors) loop

      -- code from book:

      read(vectors, next_vector, actual_len);

      -- end of code from book

      lost :=
      -- code from book:

      actual_len > next_vector'length

      -- end of code from book
      ;

    end loop;

    wait;
  end process;


end architecture test;

<div align="center"><br /><script type="text/javascript"><!--
google_ad_client = "pub-7293844627074885";
//468x60, Created at 07. 11. 25
google_ad_slot = "8619794253";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />&nbsp;</div>