API UO LowJournal - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.LowJournal

Оглавление · Алфавитный указатель · Journal

ClassicUO • Runtime API

Возвращает минимальный доступный индекс журнала.

Точный синтаксис

UO.LowJournal() -> Any

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

Параметров нет.

Возвращает

Integer — 0 для непустого журнала, -1 для пустого. В Basic индекс 0 — самая новая строка, максимальный индекс — самая старая. Это граница индексов, не количество совпадений.

Поведение

  • Новые сообщения и очистка изменяют границы. Внешние Stealth-примеры используют другой порядок: здесь действует порядок Journal(0) от новой к старой.
  • Первичный справочник: https://stealth.od.ua/api/LowJournal/ .

Примеры

Пример 1. Проверить наличие записей

# Проверить наличие записей
#
# Возвращает минимальный доступный индекс журнала.
#
# Integer — 0 для непустого журнала, -1 для пустого. В Basic индекс 0 — самая новая строка,
# максимальный индекс — самая старая. Это граница индексов, не количество совпадений.

SUB Main()
    # Отрицательная граница означает пустой буфер.
    # При непустом буфере Journal(0) читает новую запись.

    IF UO.LowJournal() >= 0 THEN
        VAR text = UO.Journal(0)
        UO.Print(text)
    END IF
END SUB

Разбор параметров и выполнения:

  • Отрицательная граница означает пустой буфер.
  • При непустом буфере Journal(0) читает новую запись.

Пример 2. Количество доступных строк

# Количество доступных строк
#
# Возвращает минимальный доступный индекс журнала.
#
# Integer — 0 для непустого журнала, -1 для пустого. В Basic индекс 0 — самая новая строка,
# максимальный индекс — самая старая. Это граница индексов, не количество совпадений.

SUB Main()
    # HighJournal=-1 при пустом журнале, поэтому total=0. LowJournal описывает нижнюю границу, а не
    # число строк.
    # Это общее количество локально сохранённых строк; LineCount относится к последнему поиску.

    VAR total = UO.HighJournal() + 1
    UO.Print('Rows: ' + STR(total))
END SUB

Разбор параметров и выполнения:

  • HighJournal=-1 при пустом журнале, поэтому total=0. LowJournal описывает нижнюю границу, а не число строк.
  • Это общее количество локально сохранённых строк; LineCount относится к последнему поиску.

Пример 3. Прочитать строку на границе

# Прочитать строку на границе
#
# Возвращает минимальный доступный индекс журнала.
#
# Integer — 0 для непустого журнала, -1 для пустого. В Basic индекс 0 — самая новая строка,
# максимальный индекс — самая старая. Это граница индексов, не количество совпадений.

SUB Main()
    # index передаётся непосредственно в Journal, без вычитания единицы.
    # Индекс может сдвинуться при входящих сообщениях; буфер не замораживается между вызовами.

    VAR index = UO.LowJournal()
    IF index >= 0 THEN
        VAR text = UO.Journal(index)
        UO.Print(text)
    END IF
END SUB

Разбор параметров и выполнения:

  • index передаётся непосредственно в Journal, без вычитания единицы.
  • Индекс может сдвинуться при входящих сообщениях; буфер не замораживается между вызовами.