-- Demonstrates opening, reading, and closing a file whose name is specified within the program -- We assume that the file contains 0 or more integers. with Ada.Text_IO; with Ada.Integer_Text_IO; with ada.command_line; procedure open_file is package cl renames ada.command_line; package tio renames ada.text_io; package itio renames ada.Integer_Text_IO; -- Make short names so that we can show where things come from my_file: tio.File_Type; -- Name for file in this program os_name: String := "My_Data.txt"; -- OS name for the file n: Integer; -- Temporary for reading and printing file contents begin -- Open will raise an ADA.IO_EXCEPTIONS.NAME_ERROR expection -- if the file does not exist. tio.open (file => my_file, mode => tio.In_File, name => os_name); loop exit when tio.End_Of_File (my_file); itio.get (my_file, n); itio.put (n); tio.new_line; end loop; tio.close (my_file); -- Now do the same thing with each file named as a command line argument -- Argument_Count is the number of command line arguments tio.put_line("Argument_count: " & cl.Argument_count'img); for I in 1 .. cl.argument_count loop -- Output each command line argument tio.put (cl.argument(i)); tio.put_line (":"); -- Open each file named by the command line argument tio.open (my_file, tio.In_File, cl.argument(i)); loop exit when tio.End_Of_File (my_file); itio.get (my_file, n); itio.put (n); tio.new_line; end loop; tio.close (File => my_file); end loop; end open_file;