Модуль Files Справочный лист

Ввод-вывод стандартных типов данных с/на носитель информации

Используется порядок байтов от младшего к старшему,

SInt: 2 байта, Int: 4 байта, LInt: 8 байтов.

ORD({0}) = 1,

FALSE = 0, TRUE = 1

Вещественный формат IEEE,

Нуль-терминированные строки,

компактные числа по М. Одерскому.

```

Импортирует

Platform

Постоянные

Этот раздел пуст.

Типы

SBYTE = BYTE;

Знаковое 8-битное целое, -128..127.

BYTE = UBYTE;

Беззнаковое 8-битное целое, 0..255.

File = POINTER TO FileDesc;

Объект, представляющий файл

Rider = RECORD   res: INTEGER;  
  eof: BOOLEAN  

(* TRUE, когда достигнут конец файла. Должен проверяться после вызова Read-процедур. *)

END
;

Бегунок по файлу. Используется для чтения или записи данных из/в файл. Может быть установлен в произвольном месте файла. Автоматически перемещается вперёд в файле всякий раз, когда используется для чтения или записи.

Переменные

Этот раздел пуст.

Процедуры

PROCEDURE Base (VAR r: Rider): File;

Возвращает файловый объект, связанный с бегунком r с помощью Set.

PROCEDURE ChangeDirectory (VAR path: ARRAY OF CHAR; VAR res: INTEGER);

Устанавливает текущий рабочий каталог в path.

Устанавливает res в 0 при успехе, в не-0 при неудаче.

PROCEDURE Close (f: File);

Сбрасывает содержимое файла на носитель. Файл может быть использован и после вызова Close.

PROCEDURE Delete (VAR name: ARRAY OF CHAR; VAR res: INTEGER);

Удаляет (дерегистрирует) файл с заданным именем с носителя.

Устанавливает res в 0 при успехе, в 1 при ошибке.

ВАЖНО! Для поиска указанного файла используется SearchPath.

PROCEDURE GetDate (f: File; VAR t: INTEGER; VAR d: INTEGER);

Помещает в t и d время и дату файла в особом битовом формате:

  d = YYYYYYYMMMMDDDDD  Y-год  M-месяц   D-день
  t = HHHHmmmmmmSSSSSS  H-час  m-минута  S-секунда

Биты года содержат две последние цифры года.

PROCEDURE GetName (f: File; VAR name: ARRAY OF CHAR);

Помещает в name имя файла f.

PROCEDURE Length (f: File): LONGINT;

Возвращает длину данного файла в байтах

PROCEDURE New (VAR name: ARRAY OF CHAR): File;

Создает и возвращает объект файла с заданным именем файла.

Эта процедура используется для создания новых или перезаписи старых файлов, но New не удаляет и не перезаписывает файл, если он уже существовал — это делает Register или Close.

PROCEDURE Old (name: ARRAY OF CHAR): File;

Открывает файл с заданным именем файла, если он существует. Возвращает объект, представляющий этот файл. Если файл не существует, возвращает NIL.

Если вы пишете в файл, открытый с помощью Old, изменения будут сохранены

на носителе информации только после вызова Register или Close.

PROCEDURE Pos (VAR r: Rider): INTEGER;

Возвращает позицию бегунка r в файле.

Обратите внимание, что позиция измеряется в байтах (а не в литерах, каждая из которых закодирована в UTF-8 как 1, 2, 3 или 4 байта).

Позиция 0 означает позицию точно перед самым первым байтом файла. Позиция Length() указывает на позицию сразу после последнего байта.

PROCEDURE Purge (f: File);

Освобождает сектора носителя данных, используемые файлом

PROCEDURE Read (VAR r: Rider; VAR x: BYTE);

Считывает один байт из файла и помещает его в x.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadBool (VAR R: Rider; VAR x: BOOLEAN);

Считывает один байт из файла и помещает его в x как значение типа BOOLEAN. Значение 0 означает FALSE, а другие значения означают TRUE.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadBytes (VAR r: Rider; VAR x: ARRAY OF BYTE; n: INTEGER);

Считывает несколько байтов из файла и помещает их в x, количество считанных байтов помещается в n.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadChar (VAR r: Rider; VAR x: CHAR);

Считывает до четырех байт (но не менее одного байта) из файла, расценивает их как литеру, закодированную в UTF-8, и помещает декодированную литеру в x (как 2 байта в формате UCS-2).

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadInt (VAR R: Rider; VAR x: INTEGER);

Считывает четыре байта из файла и помещает их в x в виде INTEGER.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadLInt (VAR R: Rider; VAR x: INT64);

Считывает восемь байтов из файла и помещает их в x в виде LONGINT.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadLReal (VAR R: Rider; VAR x: REAL);

Считывает восемь байтов из файла и помещает их в x как LONGREAL.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadLine (VAR R: Rider; VAR x: ARRAY OF SHORTCHAR);

Считывает байты из файла до первого байта 0X, 0AX или 0DX, помещает всё в x (кроме последнего байта).

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadNum (VAR R: Rider; VAR x: INTEGER);

Считывает один или несколько байт из файла и декодирует их как компактное число (по М. Одерскому), помещает считанное число в x.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadReal (VAR R: Rider; VAR x: SHORTREAL);

Считывает четыре байта из файла и помещает их в x как REAL.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadSInt (VAR R: Rider; VAR x: SHORTINT);

Считывает два байта из файла и помещает их в x в виде SHORTINT.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadSet (VAR R: Rider; VAR x: SET);

Считывает четыре байта из файла и помещает их в x в виде SET.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadShortChar (VAR r: Rider; VAR x: SHORTCHAR);

Считывает один байт из файла и помещает его в x в виде короткого

(ASCII) символа.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadShortString (VAR R: Rider; VAR x: ARRAY OF SHORTCHAR);

Считывает байты из файла до первого нулевого байта, помещает всё в x.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE ReadString (VAR R: Rider; VAR x: ARRAY OF CHAR);

Считывает файл по одной литере до первой литеры 0X, помещает всё в x.

Бегунок r должен быть установлен на файл с помощью Set.

PROCEDURE Register (f: File);

Регистрирует и сохраняет файл на носителе.

Вызовите Register, когда закончите запись файла. Register можно вызывать несколько раз и в любой точке создания файла.

PROCEDURE Rename (VAR old: ARRAY OF CHAR; VAR new: ARRAY OF CHAR; VAR res: INTEGER);

Переименовывает файл с именем old в new.

Устанавливает res в 0 при успехе, не-0 при ошибке.

res = 2 означает, что файл не найден.

ВАЖНО! Для поиска указанного файла используется SearchPath.

PROCEDURE Set (VAR r: Rider; f: File; pos: LONGINT);

Устанавливает райдер r в позиции pos файла f.

Эту процедуру вызывают после успешного открытия файла с помощью Old или New.

Обратите внимание, что позиция измеряется в байтах (а не в литерах, каждая из которых закодирована в UTF-8 как 1, 2, 3 или 4 байта).

Позиция 0 означает позицию точно перед самым первым байтом файла. Позиция Length() указывает на позицию сразу после последнего байта.

PROCEDURE SetSearchPath (VAR path: ARRAY OF CHAR);

Устанавливает путь поиска для Old, New, Delete, Rename и т. д.

PROCEDURE Truncate (F: File; pos: INTEGER);

Усекает файл в позиции pos. Длина файла будет равна pos.

PROCEDURE Write (VAR r: Rider; x: BYTE);

Записывает в файл один байт x.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteBool (VAR R: Rider; x: BOOLEAN);

Записывает в файл BOOLEAN x в виде одного байта.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteBytes (VAR r: Rider; VAR x: ARRAY OF BYTE; n: INTEGER);

Writes n bytes from array x to a file.

The rider r must have been set to a file using Set.

The file is not immediately written on a storage media. Записывает в файл n байт из массива x.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteChar (VAR R: Rider; c: CHAR);

Записывает в файл литеру x в формате UTF-8 (от 1 до 4 байт).

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteInt (VAR R: Rider; x: INTEGER);

Записывает в файл INTEGER x как четыре байта.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteLInt (VAR R: Rider; x: INT64);

Записывает в файл LONGINT x как восемь байтов.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteLReal (VAR R: Rider; x: REAL);

Записывает в файл LONGREAL x как восемь байтов.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteNum (VAR R: Rider; x: INTEGER);

Записывает в файл INTEGER x в виде одного или нескольких байтов в формате компактного числа формате (по М. Одерскому).

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteReal (VAR R: Rider; x: SHORTREAL);

Записывает в файл REAL x как четыре байта.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteSInt (VAR R: Rider; x: SHORTINT);

Записывает в файл SHORTINT x как два байта.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteSet (VAR R: Rider; x: SET);

Записывает в файл SET x как четыре байта.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteShortChar (VAR R: Rider; x: SHORTCHAR);

Записывает в файл короткую (однобайтную) литеру x.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteShortString (VAR R: Rider; VAR x: ARRAY OF SHORTCHAR);

Записывает в файл строку x, состоящую из 1-байтовых литер.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.

PROCEDURE WriteString (VAR R: Rider; VAR x: ARRAY OF CHAR);

Записывает в файл строку x в формате UTF-8.

Бегунок r должен быть установлен на файл с помощью Set.

Файл не записывается на носитель сразу.