r3 - 14 Sep 2006 - 22:03:41 - Sergej ZnamenskijYou are here: TWiki >  Refaldevel Web > LibStdIO

StdIO

Функции Open-File, Close-Channel, EOF?, Read-Char, Read-Char!, Read-Line, Read-Line!, Read, Read! написаны на Рефале+. Их реализация использует следующие три примитивные функции:

$func? Prim-Open-File s.Channel e.FileName s.Mode = ;

Открывает канал s.Channel и связывает его с файлом с именем e.FileName. s.Mode — это слово, которое указывает режим, в котором будет происходить работа с файлом.

Не обязана проверять, что s.Channel является каналом, а s.Mode — символом-словом.

Если файл открыть не удалось, возвращает $fail.

? Не лучше ли выдавать $error с информацией об ошибке?

$func Prim-Close-Channel s.Channel = ;

Закрывает канал s.Channel.

Не обязана проверять, что s.Channel является каналом.

$func? Prim-Read s.Channel s.N = e.Chars;

Читает из канала s.Channel не более, чем s.N символов-литер. Если не осталось ни одной литеры, выдаёт $fail.

Не обязана проверять, что s.Channel является каналом, а s.N — числом.


ToDo Реализовать функции Print, PrintLN, PrintLN!, Write, Write!, WriteLN, WriteLN! через функцию

$func Print! s.Channel e.Exp = ;

Преобразует выражение e.Exp в цепочку литер так же, как это делает функция To-Chars, и выводит её в канал s.Channel.

-- Anton Orlov - 21 Feb 2005

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r3 < r2 < r1 | More topic actions
 
R+

This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback