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 для того же пути.