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 a programmer 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

Seek (file seek procedure)
Append (file append procedure)
Read (file read procedure)
Write (file write procedure)

BlockRead (binary file read procedure)
BlockWrite (binary file write 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. -