API File - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
File
Оглавление · Алфавитный указатель · BASIC built-ins
ClassicUO • Runtime API
Создаёт объект для построчного чтения целых чисел и записи локального файла. Сам вызов File ещё не открывает файл.
Точный синтаксис
File(fileName:Any) -> Any
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
fileName— Путь к файлу строкой. Абсолютный путь выбирает точное место; относительный разрешается от рабочего каталога процесса клиента. Родительская папка должна существовать.
Возвращает
Object с методами Open(), Create(), Close(), WriteLn(value), ReadNumber(). Это объект скрипта, не serial, не текст содержимого и не Integer-дескриптор. Ошибки пути/доступа возникают при открытии или записи.
Поведение
- Open() открывает существующий файл для чтения с начала. Create() создаёт файл для записи или полностью обнуляет прежнее содержимое; это не append. Повторное Open/Create сначала закрывает прежний режим.
- WriteLn(value) пишет строковое представление значения и перевод строки, затем сбрасывает буфер. Метод возвращает Unit. Без режима Create вызывает ошибку, а не молча теряет запись.
- ReadNumber() читает следующую строку и возвращает Integer. Нечисловая строка, пустая строка, переполнение или конец файла дают 0. Отдельного признака EOF у этого метода нет; используйте известное количество записей.
- Open/Create/Close возвращают Unit. Close освобождает файл; повторный Close безопасен. Явно закрывайте файл по завершении работы. Открытие скрипта в редакторе IDE выполняют отдельные кнопки File/Open, а не этот объект.
Примеры
Пример 1. Создать файл с двумя числовыми строками
# Создать файл с двумя числовыми строками
#
# Создаёт объект для построчного чтения целых чисел и записи локального файла. Сам вызов File
# ещё не открывает файл.
#
# Object с методами Open(), Create(), Close(), WriteLn(value), ReadNumber(). Это объект скрипта,
# не serial, не текст содержимого и не Integer-дескриптор. Ошибки пути/доступа возникают при
# открытии или записи.
SUB Main()
# fileName — относительный примерный путь. Create полностью перезаписывает этот файл; выберите
# имя, которое не содержит нужных данных.
# Два WriteLn создают строки 50 и 350. Эти методы не возвращают число записанных строк. Close
# завершает работу.
VAR file = File('yoko-counts-example.txt')
file.Create()
file.WriteLn(50)
file.WriteLn(350)
file.Close()
END SUB
Разбор параметров и выполнения:
- fileName — относительный примерный путь. Create полностью перезаписывает этот файл; выберите имя, которое не содержит нужных данных.
- Два WriteLn создают строки 50 и 350. Эти методы не возвращают число записанных строк. Close завершает работу.
Пример 2. Прочитать известные две строки
# Прочитать известные две строки
#
# Создаёт объект для построчного чтения целых чисел и записи локального файла. Сам вызов File
# ещё не открывает файл.
#
# Object с методами Open(), Create(), Close(), WriteLn(value), ReadNumber(). Это объект скрипта,
# не serial, не текст содержимого и не Integer-дескриптор. Ошибки пути/доступа возникают при
# открытии или записи.
SUB Main()
# Перед запуском файл должен содержать две числовые строки, как в предыдущем примере.
# ReadNumber возвращает число каждой строки по очереди. 0 не доказывает успех: он также означает
# EOF или неверную строку.
VAR file = File('yoko-counts-example.txt')
file.Open()
VAR count = file.ReadNumber()
VAR delay = file.ReadNumber()
file.Close()
UO.Print('Count=' + STR(count) + '; delay=' + STR(delay))
END SUB
Разбор параметров и выполнения:
- Перед запуском файл должен содержать две числовые строки, как в предыдущем примере.
- ReadNumber возвращает число каждой строки по очереди. 0 не доказывает успех: он также означает EOF или неверную строку.
Пример 3. Переключиться с записи на чтение тем же объектом
# Переключиться с записи на чтение тем же объектом
#
# Создаёт объект для построчного чтения целых чисел и записи локального файла. Сам вызов File
# ещё не открывает файл.
#
# Object с методами Open(), Create(), Close(), WriteLn(value), ReadNumber(). Это объект скрипта,
# не serial, не текст содержимого и не Integer-дескриптор. Ошибки пути/доступа возникают при
# открытии или записи.
SUB Main()
# Create перезаписывает отдельный примерный файл, WriteLn записывает 7.
# Open закрывает режим записи и открывает чтение с начала. value получает 7. Не требуется
# создавать второй объект File для того же пути.
VAR file = File('yoko-switch-example.txt')
file.Create()
file.WriteLn(7)
file.Open()
VAR value = file.ReadNumber()
file.Close()
UO.Print(STR(value))
END SUB
Разбор параметров и выполнения:
- Create перезаписывает отдельный примерный файл, WriteLn записывает 7.
- Open закрывает режим записи и открывает чтение с начала. value получает 7. Не требуется создавать второй объект File для того же пути.