Я для себя написал такой модуль, чтобы понять как действует Stores.

Переопределяемый методExternalizeотвечает за сохранение записи модели, унаследованной от Stores.Store.Internalize, соответственно, отвечает за воспроизведение записи из файла.

## Код:
```
MODULE TestFileOfRecord;
 
    IMPORT Files, Stores, Log := StdLog;
 
    TYPE
        Record* = POINTER TO RECORD (Stores.Store)
            x, y: REAL
        END;
 
    PROCEDURE (r: Record) Externalize- (VAR wr: Stores.Writer);
        VAR k: INTEGER;
    BEGIN
        r.Externalize^(wr);
        wr.WriteReal(r.x); wr.WriteReal(r.y)
    END Externalize;
 
    PROCEDURE (r: Record) Internalize- (VAR rd: Stores.Reader);
        VAR k: INTEGER;
    BEGIN
        r.Internalize^(rd);
        rd.ReadReal(r.x); rd.ReadReal(r.y)
    END Internalize;
 
    PROCEDURE ExportToFile* (r: Record; f: Files.File);
        VAR wr: Stores.Writer;
    BEGIN
        wr.ConnectTo(f);
        wr.WriteStore(r)
    END ExportToFile;
 
    PROCEDURE ImportFromFile* (OUT r: Record; f: Files.File);
        VAR rd: Stores.Reader; s: Stores.Store;
    BEGIN
        rd.ConnectTo(f);
        rd.ReadStore(s); r := s(Record)
    END ImportFromFile;
 
    PROCEDURE Run*;
        VAR
            rec: Record; f: Files.File; res: INTEGER;
    BEGIN
        NEW(rec);
 
        rec.x := 10; rec.y := 20;
 
        f := Files.dir.New(Files.dir.This("."), Files.exclusive);
        IF f # NIL THEN
            ExportToFile (rec, f);
            f.Register("records", "dat", Files.dontAsk, res);
            IF res # 0 THEN
                Log.String("Error #"); Log.Int( res ); Log.Ln
            END
        END;
 
        rec := NIL
    END Run;
 
END TestFileOfRecord.
```
