Previous: 2.2.17. User Defined Reader Procedure To the Table of Contents Next: 2.3. Built-in Assembler
2.2.17. User Defined Reader Procedure Table of Contents 2.3. Built-in Assembler

- 2.2.18. -
Table of Contents
2. TMT Pascal Language Description
2.2. Pascal Language Structure
2.2.18. User Defined Writer Procedure


2.2.18. User Defined Writer Procedure


TMT Pascal compiler allows one to define a writer procedure for ones own types including objects and structures by means of the __writer reserved word. The syntax of the custom writer procedure is the following:
procedure __writer (var f: text;
                      const value: <Custom Type>;
                      w: Integer);
begin
  ...
end;
The __writer example below showed the use of a DateTime structure defined in the DOS unit. A date is an ideal candidate for a Pascal structure in which the data members (month, day, and year) are hidden from view. An output file is the logical destination for displaying such a structure. This code displays a date using the Write procedure:
 {$ifdef __GUI__}
  uses DOS, WinCRT;
 {$else}
  uses DOS;
 {$endif}

procedure GetCurrentDate(var date: DateTime);
var
  Year, Month, Day, DayOfWeek: Word;
begin
  GetDate(Year, Month, Day, DayOfWeek);
  date.Year := Year;
  date.Month := Month;
  date.Day := Day;
end;
 
procedure __writer (var f: text;
                      const value: DateTime;
                      w: Integer);
begin
  Write(f, value.Month, '/', value.Day, '/', value.Year);
end;
 
var
  date: DateTime;

begin
  GetCurrentDate(date);
  Writeln(date);
end.
When you run this program, it prints the current date.

See also:
User Defined Reader Procedure


Previous: 2.2.17. User Defined Reader Procedure To the Table of Contents Next: 2.3. Built-in Assembler
2.2.17. User Defined Reader Procedure Table of Contents 2.3. Built-in Assembler

- 2.2.18. -