Навигация:
<< >> Оглавление Указатель

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.14. Общие функции работы с переменными блока

А.5.14.8. rdsFindBlockVar – найти переменную блока по имени

Функция rdsFindBlockVar ищет статическую переменную с указанным именем в указанном блоке и возвращает ее уникальный идентификатор.

    rdsFindBlockVarA(
     Block,         // Идентификатор блока
     VarName,           // Имя переменной (UTF8)
     FullName,             // В имени могут быть поля
     pDescr // Заполняемое описание
  );
    rdsFindBlockVarW(
     Block,         // Идентификатор блока
     VarName,          // Имя переменной (UTF16)
     FullName,             // В имени могут быть поля
     pDescr // Заполняемое описание
  );
  // 
    rdsFindBlockVar(
     Block,         // Идентификатор блока
     VarName,          // Имя переменной (кодировка по умолчанию)
     FullName,             // В имени могут быть поля
     pDescr // Заполняемое описание
  );

Тип указателя на эту функцию

RDS_VhBhSBVd (для UTF8) или RDS_VhBhWsBVd (для UTF16)

Параметры

Block (RDS_BHANDLE)
Идентификатор блока, в котором нужно найти переменную.
VarName (RDSCSTR, RDSWCSTR, RDSXCSTR)
Указатель на строку с именем переменной.
FullName (BOOL)
TRUE – в параметре VarName передано имя переменной с возможным указанием полей структур и элементов массивов и матриц. FALSE – в VarName передано имя переменной, непосредственно находящейся в блоке (функция в этом случае выполняется несколько быстрее).
pDescr (RDS_PVARDESCRIPTION)
Указатель на структуру описания переменной RDS_VARDESCRIPTION, которую функция должна заполнить параметрами найденной переменной. Если вызывающей программе не нужно описание переменной, в этом параметре можно передать NULL.

Возвращаемое значение

Идентификатор найденной переменной (тип RDS_VHANDLE) или NULL, если переменной с именем VarName нет в блоке Block.

Примечания

Эта функция позволяет найти идентификатор статической переменной блока Block по имени этой переменной VarName. К имени переменной может быть добавлено имя поля, если эта переменная – структура, или индекс элемента, если переменная – массив. В этом случае в параметре FullName необходимо передать значение TRUE, и функция вернет не идентификатор самой переменной блока, а идентификатор поля структуры или элемента массива, которые, с точки зрения RDS, являются вложенными переменными. Допустим, например, что в блоке Block есть следующие переменные:

В этом случае вызовы функции rdsFindBlockVar будет возвращать следующие идентификаторы:

VarName Возврат при FullName=TRUE Возврат при FullName=FALSE
«x» переменная «x» переменная «x»
«in» переменная «in» переменная «in»
«out» переменная «out» переменная «out»
«in.Re» поле «Re» структуры «in» NULL
«Y[0][1]» элемент матрицы «Y» NULL
«out[3]» элемент массива «out» (структура типа «Complex») NULL
«out[1].Im» поле «Im» структуры, являющейся элементом массива «out» NULL

Следует помнить, что все элементы конкретной матрицы (массива) в RDS обслуживаются единственной вложенной переменной с типом элемента этой матрицы – при работе этой вложенной переменной автоматически передаются базовые адреса конкретных элементов. Таким образом, вызов rdsFindBlockVar для «out[0]», «out[1]», «out[2]» и т.д. будет возвращать один и тот же идентификатор переменной-элемента массива «out».

См. также

rdsGetBlockVar, rdsGetVarField, RDS_VARDESCRIPTION.


<< >> Оглавление Указатель