1
The library package Text_IO has the following declaration:
2
with Ada.IO_Exceptions; package Ada.Text_IO is
3
type File_Type is limited private;
4
type File_Mode is (In_File, Out_File, Append_File);
5
type Count is range 0 .. implementation−defined; subtype Positive_Count is Count range 1 .. Count'Last; Unbounded : constant Count := 0; −− line and page length
6
subtype Field is Integer range 0 .. implementation−defined; subtype Number_Base is Integer range 2 .. 16;
7
type Type_Set is (Lower_Case, Upper_Case);
8
−− File Management
9
procedure Create (File : in out File_Type; Mode : in File_Mode := Out_File; Name : in String := ""; Form : in String := "");
10
procedure Open (File : in out File_Type; Mode : in File_Mode; Name : in String; Form : in String := "");
11
procedure Close (File : in out File_Type); procedure Delete (File : in out File_Type); procedure Reset (File : in out File_Type; Mode : in File_Mode); procedure Reset (File : in out File_Type);
12
function Mode (File : in File_Type) return File_Mode; function Name (File : in File_Type) return String; function Form (File : in File_Type) return String;
13
function Is_Open(File : in File_Type) return Boolean;
14
−− Control of default input and output files
15
procedure Set_Input (File : in File_Type); procedure Set_Output(File : in File_Type); procedure Set_Error (File : in File_Type);
16
function Standard_Input return File_Type; function Standard_Output return File_Type; function Standard_Error return File_Type;
17
function Current_Input return File_Type; function Current_Output return File_Type; function Current_Error return File_Type;
18
type File_Access is access constant File_Type;
19
function Standard_Input return File_Access; function Standard_Output return File_Access; function Standard_Error return File_Access;
20
function Current_Input return File_Access; function Current_Output return File_Access; function Current_Error return File_Access;
21/1
−−Buffer control procedure Flush (File : in File_Type); procedure Flush;
22
−− Specification of line and page lengths
23
procedure Set_Line_Length(File : in File_Type; To : in Count); procedure Set_Line_Length(To : in Count);
24
procedure Set_Page_Length(File : in File_Type; To : in Count); procedure Set_Page_Length(To : in Count);
25
function Line_Length(File : in File_Type) return Count; function Line_Length return Count;
26
function Page_Length(File : in File_Type) return Count; function Page_Length return Count;
27
−− Column, Line, and Page Control
28
procedure New_Line (File : in File_Type; Spacing : in Positive_Count := 1); procedure New_Line (Spacing : in Positive_Count := 1);
29
procedure Skip_Line (File : in File_Type; Spacing : in Positive_Count := 1); procedure Skip_Line (Spacing : in Positive_Count := 1);
30
function End_Of_Line(File : in File_Type) return Boolean; function End_Of_Line return Boolean;
31
procedure New_Page (File : in File_Type); procedure New_Page;
32
procedure Skip_Page (File : in File_Type); procedure Skip_Page;
33
function End_Of_Page(File : in File_Type) return Boolean; function End_Of_Page return Boolean;
34
function End_Of_File(File : in File_Type) return Boolean; function End_Of_File return Boolean;
35
procedure Set_Col (File : in File_Type; To : in Positive_Count); procedure Set_Col (To : in Positive_Count);
36
procedure Set_Line(File : in File_Type; To : in Positive_Count); procedure Set_Line(To : in Positive_Count);
37
function Col (File : in File_Type) return Positive_Count; function Col return Positive_Count;
38
function Line(File : in File_Type) return Positive_Count; function Line return Positive_Count;
39
function Page(File : in File_Type) return Positive_Count; function Page return Positive_Count;
40
−− Character Input−Output
41
procedure Get(File : in File_Type; Item : out Character); procedure Get(Item : out Character);
42
procedure Put(File : in File_Type; Item : in Character); procedure Put(Item : in Character);
43
procedure Look_Ahead (File : in File_Type; Item : out Character; End_Of_Line : out Boolean); procedure Look_Ahead (Item : out Character; End_Of_Line : out Boolean);
44
procedure Get_Immediate(File : in File_Type; Item : out Character); procedure Get_Immediate(Item : out Character);
45
procedure Get_Immediate(File : in File_Type; Item : out Character; Available : out Boolean); procedure Get_Immediate(Item : out Character; Available : out Boolean);
46
−− String Input−Output
47
procedure Get(File : in File_Type; Item : out String); procedure Get(Item : out String);
48
procedure Put(File : in File_Type; Item : in String); procedure Put(Item : in String);
49
procedure Get_Line(File : in File_Type; Item : out String; Last : out Natural); procedure Get_Line(Item : out String; Last : out Natural);
49.1/2
function Get_Line(File : in File_Type) return String; function Get_Line return String;
50
procedure Put_Line(File : in File_Type; Item : in String); procedure Put_Line(Item : in String);
51
−− Generic packages for Input−Output of Integer Types
52
generic type Num is range <>; package Integer_IO is
53
Default_Width : Field := Num'Width; Default_Base : Number_Base := 10;
54
procedure Get(File : in File_Type; Item : out Num; Width : in Field := 0); procedure Get(Item : out Num; Width : in Field := 0);
55
procedure Put(File : in File_Type; Item : in Num; Width : in Field := Default_Width; Base : in Number_Base := Default_Base); procedure Put(Item : in Num; Width : in Field := Default_Width; Base : in Number_Base := Default_Base); procedure Get(From : in String; Item : out Num; Last : out Positive); procedure Put(To : out String; Item : in Num; Base : in Number_Base := Default_Base);
56
end Integer_IO;
57
generic type Num is mod <>; package Modular_IO is
58
Default_Width : Field := Num'Width; Default_Base : Number_Base := 10;
59
procedure Get(File : in File_Type; Item : out Num; Width : in Field := 0); procedure Get(Item : out Num; Width : in Field := 0);
60
procedure Put(File : in File_Type; Item : in Num; Width : in Field := Default_Width; Base : in Number_Base := Default_Base); procedure Put(Item : in Num; Width : in Field := Default_Width; Base : in Number_Base := Default_Base); procedure Get(From : in String; Item : out Num; Last : out Positive); procedure Put(To : out String; Item : in Num; Base : in Number_Base := Default_Base);
61
end Modular_IO;
62
−− Generic packages for Input−Output of Real Types
63
generic type Num is digits <>; package Float_IO is
64
Default_Fore : Field := 2; Default_Aft : Field := Num'Digits−1; Default_Exp : Field := 3;
65
procedure Get(File : in File_Type; Item : out Num; Width : in Field := 0); procedure Get(Item : out Num; Width : in Field := 0);
66
procedure Put(File : in File_Type; Item : in Num; Fore : in Field := Default_Fore; Aft : in Field := Default_Aft; Exp : in Field := Default_Exp); procedure Put(Item : in Num; Fore : in Field := Default_Fore; Aft : in Field := Default_Aft; Exp : in Field := Default_Exp);
67
procedure Get(From : in String; Item : out Num; Last : out Positive); procedure Put(To : out String; Item : in Num; Aft : in Field := Default_Aft; Exp : in Field := Default_Exp); end Float_IO;
68
generic type Num is delta <>; package Fixed_IO is
69
Default_Fore : Field := Num'Fore; Default_Aft : Field := Num'Aft; Default_Exp : Field := 0;
70
procedure Get(File : in File_Type; Item : out Num; Width : in Field := 0); procedure Get(Item : out Num; Width : in Field := 0);
71
procedure Put(File : in File_Type; Item : in Num; Fore : in Field := Default_Fore; Aft : in Field := Default_Aft; Exp : in Field := Default_Exp); procedure Put(Item : in Num; Fore : in Field := Default_Fore; Aft : in Field := Default_Aft; Exp : in Field := Default_Exp);
72
procedure Get(From : in String; Item : out Num; Last : out Positive); procedure Put(To : out String; Item : in Num; Aft : in Field := Default_Aft; Exp : in Field := Default_Exp); end Fixed_IO;
73
generic type Num is delta <> digits <>; package Decimal_IO is
74
Default_Fore : Field := Num'Fore; Default_Aft : Field := Num'Aft; Default_Exp : Field := 0;
75
procedure Get(File : in File_Type; Item : out Num; Width : in Field := 0); procedure Get(Item : out Num; Width : in Field := 0);
76
procedure Put(File : in File_Type; Item : in Num; Fore : in Field := Default_Fore; Aft : in Field := Default_Aft; Exp : in Field := Default_Exp); procedure Put(Item : in Num; Fore : in Field := Default_Fore; Aft : in Field := Default_Aft; Exp : in Field := Default_Exp);
77
procedure Get(From : in String; Item : out Num; Last : out Positive); procedure Put(To : out String; Item : in Num; Aft : in Field := Default_Aft; Exp : in Field := Default_Exp); end Decimal_IO;
78
−− Generic package for Input−Output of Enumeration Types
79
generic type Enum is (<>); package Enumeration_IO is
80
Default_Width : Field := 0; Default_Setting : Type_Set := Upper_Case;
81
procedure Get(File : in File_Type; Item : out Enum); procedure Get(Item : out Enum);
82
procedure Put(File : in File_Type; Item : in Enum; Width : in Field := Default_Width; Set : in Type_Set := Default_Setting); procedure Put(Item : in Enum; Width : in Field := Default_Width; Set : in Type_Set := Default_Setting);
83
procedure Get(From : in String; Item : out Enum; Last : out Positive); procedure Put(To : out String; Item : in Enum; Set : in Type_Set := Default_Setting); end Enumeration_IO;
84
−− Exceptions
85
Status_Error : exception renames IO_Exceptions.Status_Error; Mode_Error : exception renames IO_Exceptions.Mode_Error; Name_Error : exception renames IO_Exceptions.Name_Error; Use_Error : exception renames IO_Exceptions.Use_Error; Device_Error : exception renames IO_Exceptions.Device_Error; End_Error : exception renames IO_Exceptions.End_Error; Data_Error : exception renames IO_Exceptions.Data_Error; Layout_Error : exception renames IO_Exceptions.Layout_Error; private ... −− not specified by the language end Ada.Text_IO;
86/2
The type File_Type needs finalization (see 7.6).