D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / С-функции / _CP_readnext

_CP_readnext

readnext (функциональность оператора FlashBASIC)

int _CP_readnext(CPSTR** result, int* list, int* value, int expression)

Эквивалентна следующему оператору FlashBASIC:

readnext result,value from list

Если выражение ("expression") не равно нулю, предполагается "вторичный" список.

Вызову "_CP_readnext" должен предшествовать вызов "_CP_select" или вызов "_CP_execute", которые создают внешний список. Если внешний список создается с помощью "_CP_execute", пользователь должен передать указатель на переменную типа "int" ("целое"), которая при первом вызове "readnext" содержит "-1" в качестве параметра списка.

В случае ошибки эта функция возвращает "-1". Код ошибки содержится в "_CP_errno". Эта ситуация имеет место, когда в списке уже не остается записей. В этом случае "_CP_errno" будет содержать "PE_END_LIST".

Примеры:

Следующий пример печатает первое имя файла в текущем счете.

CPSTR * s = _CP_mkstr("select md with a1 \"d]\" sampling 1");
CPSTR * id = _CP_str_null;
int sl = -1;
_CP_execute(_CP_EXECUTE, s, (CPSTR**) 0, (CPSTR**) 0);
_CP_readnext(&id, &sl, (int*) 0, 0);
_CP_print(id);
Следующий пример печатает имена записей в файле "myfile".
CPSTR * n = _CP_mkstr("myfile");
CPSTR * id = _CP_str_null;
int sl = -1;
int f = -1;
_CP_open(&f, _CP_str_null, n);
_CP_select(f, &sl, 0);
while (_CP_readnext(&id, &sl, (int*) 0, 0) >= 0)
    _CP_print(id);