Axiom Справочник языка

14 · Файловая система

Файловая система

Текст, с которым работает программа, обычно хранится в файле, и обращаться с ним приходится по-разному. Иногда достаточно одной операции над целым файлом, иногда нужен последовательный доступ: прочитать строку, вернуться к позиции, дописать в конец. Первый случай обслуживают функции, принимающие путь STRING, второй — открытый ресурс FILE, который вводит оператор OPEN и освобождает оператор CLOSE.

Два способа работы

Для одноразового чтения всего текста служат READFILE и READALLLINES, для полной записи — WRITEFILE и APPENDFILE. Функция получает путь и выполняет операцию целиком.

Последовательная работа устроена иначе: переменная FILE объявляется в программе, открывается оператором OPEN, передаётся функциям чтения, записи и позиционирования и закрывается оператором CLOSE. Такой ресурс нужен, когда текст обрабатывают по частям или возвращаются к уже прочитанному месту.

Обе возможности видны в короткой программе:

DIM path AS STRING = MAKETEMPFILE("manual_")
WRITEFILE(path, "Axiom")
PRINT READFILE(path)
DELETEFILE(path)

Ожидаемый вывод:

Axiom

Путь создаётся функцией MAKETEMPFILE, поэтому заранее подготовленный файл не нужен. Запись и чтение выполняются одной функцией каждая, а последняя инструкция удаляет файл.

Пути и кодировки

Относительные пути разрешаются от CURRENTDIR() текущего запуска. Функции создания файлов не создают отсутствующий родительский каталог, а MAKEDIR создаёт каталог вместе с недостающими родителями.

Кодировка выбирается одинаково для обеих форм работы. Без явного указания чтение целого файла и OPEN FOR INPUT проверяют UTF-8, а при недопустимых байтах переходят к WINDOWS-1251; запись по умолчанию идёт в UTF-8 без BOM. Явно можно выбрать UTF-8, WINDOWS-1251, UTF-16LE или UTF-16BE. Правила проверки BOM и строгого кодирования описаны в OPEN и текстовых функциях.

Подразделы

Подробности собраны на отдельных страницах:

Целый текстовый файл и существование · Открытый FILE · Пути и свойства · Управление объектами · OPEN · CLOSE

Ошибки

Отсутствующий требуемый объект, недопустимый путь, отказ доступа, неверный режим ресурса и недопустимая кодировка обычно дают MB3007 во время выполнения. Ошибки типов и числа аргументов обнаруживаются при проверке программы. Применимые случаи перечислены в карточке каждой операции.