gettablefunctiondata

Функция получения всех данных заданной таблицы, хранящейся в пакете таблиц

Синтаксис

b = gettablefunctiondata(p_id, tbl_index, func_index, X, Y);
b = gettablefunctiondata(p_id, tbl_index, X1, X2, M);

Аргументы

Имя Тип данных Описание
p_id integer Идентификатор загруженного в память пакета таблиц
tbl_index integer Индекс таблицы из пакета таблиц
func_index integer Индекс функциональной зависимости в таблице
X array Массив аргументов одномерной функциональной зависимости
Y array Массив значений одномерной функциональной зависимости
X1 array Массив первых аргументов двумерной функциональной зависимости
X2 array Массив вторых аргументов двумерной функциональной зависимости
M array2 Матрица значений двумерной функциональной зависимости

Описание

gettablefunctiondata(p_id, tbl_index, func_index, X, Y) – функция заполняет массивы X и Y соответствующими значениями, хранящимися в таблице с индексом tbl_index (нумерация начинается с нуля) пакета таблиц с идентификатором p_id. Этот вариант функции применяется для таблиц, представляющих из себя набор одномерных функциональных зависимостей вида: y = Fi(x), где i = func_index — порядковый номер функциональной зависимости (нумерация начинается с нуля).

В случае ошибки функция gettablefunctiondata(p_id, tbl_index, func_index, X, Y) выводит соответствующее диагностическое сообщение (Табл. 1).
Табл. 1. Возможные ошибки и причины их возникновения
Ошибка Возможная причина
Задан некорректный идентификатор (ID) пакета таблиц Передано числовое значение, не являющееся идентификатором пакета таблиц. Пакет таблиц не загружен должным образом или уже уничтожен
Таблица с таким индексом отсутствует в пакете таблиц Передан идентификатор другого пакета таблиц. Опечатка в индексе таблицы
Таблица с таким индексом не является набором функций одного аргумента. Рекомендуется выбрать функцию ЯП с другими аргументами Передан идентификатор другого пакета таблиц. Выбранный вариант функции ЯП не подходит для заданного типа таблицы
Функциональная зависимость с таким индексом отсутствует в заданной таблице Передан идентификатор другого пакета таблиц. Опечатка в индексе функциональной зависимости
Ошибка доступа по ссылке -

gettablefunctiondata(p_id, tbl_index, X1, X2, M) – функция заполняет массивы аргументов X1, X2, а также матрицу M соответствующими значениями, хранящимися в таблице с индексом tbl_index (нумерация начинается с нуля) пакета таблиц с идентификатором p_id. Этот вариант функции применяется для таблиц, представляющих из себя двумерную функциональную зависимость вида: y = F(x1, x2).

В случае ошибки функция gettablefunctiondata(p_id, tbl_index, X1, X2, M) выводит соответствующее диагностическое сообщение (Табл. 2).
Табл. 2. Возможные ошибки и причины их возникновения
Ошибка Возможная причина
Задан некорректный идентификатор (ID) пакета таблиц Передано числовое значение, не являющееся идентификатором пакета таблиц. Пакет таблиц не загружен должным образом или уже уничтожен.
Таблица с таким индексом отсутствует в пакете таблиц Передан идентификатор другого пакета таблиц. Опечатка в индексе таблицы.
Таблица с таким индексом не является двумерной функцией. Рекомендуется выбрать функцию ЯП с другими аргументами. Передан идентификатор другого пакета таблиц. Выбранный вариант функции ЯП не подходит для заданного типа таблицы
Ошибка доступа по ссылке -

Результат

Имя Тип данных Описание
b boolean Функция возвращает логическую единицу, если данные из пакета таблиц успешно прочитаны и логический ноль в противном случае

Пример

initialization
  var
    p_id: integer;
  // Получение идентификатора
  p_id = loadtablefunctionpack("file1.tbl");
  
  var
    a_x: array,
    a_y: array;
  // Получение данных из таблицы с индексом "1",
  // функциональной зависимости с индексом "0",
  // пакета таблиц с идентификатором "p_id"
  if not gettablefunctiondata(p_id, 1, 0, a_x, a_y) then begin
    // Остановка инициализации модели в случае ошибки
    seterrorflag(1);
  end;

  var
    b_x1: array,
    b_x2: array,
    b_m:  array2;
  // Получение данных из таблицы с индексом "2",
  // пакета таблиц с идентификатором "p_id"
  if not gettablefunctiondata(p_id, 2, b_x1, b_x2, b_m) then begin
    // Остановка инициализации модели в случае ошибки
    seterrorflag(1);
  end;
end;

finalization
  // Удаление пакета таблиц при окончании моделирования
  freeobject(p_id);
end;

В результате выполнения скрипта будут получены данные таблиц с индексами 1 и 2. Поскольку идентификатор p_id не меняется в процессе моделирования, настоящую функцию (любую из двух модификаций) достаточно вызвать один раз, сохранить полученные данные и использовать их в ходе моделирования.

Сопутствующие материалы

Материалов нет.