Тема: пример
Показать сообщение отдельно
Старый 19.09.2006, 22:26   #8
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: пример

Возможно все, если четко сформулировать задачу.

Если ты хочешь в Блиц послать только 20 элементов, то кто тебе мешает сделать это следующим образом:
[highlight=blitzbasic]
CallDllFunction() ;в этот момент происходит работа дллки с БД
...
while DllResult()
var.TList = New TList
DLLFunction(var)
wend
[/highlight]

Суть в том, что дллка подготавливает всю необходимую информацию. Допустим в результате вызова CallDllFunction() произошло считывание из БД, выборка результатов и занесение их в массив определенного пользователем типа.
list* data[20];
Необходимо создать переменную, которая будет подсчитывать количество найденных элементов, отвечающих заданному требованию. В конце обработки в это переменной будет хранится число 20.
[highlight=cpp]
int result_num=0;
[/highlight]

Функция DllResult() возвращает значение result_num.
[highlight=cpp]
int DllResult() { return result_num; }
[/highlight]

А сама DLLFunction работает с текущим элементом.
void DLLFunction(list* var)
{
   result_num--;
   var->a = data[result_num]->a;
   var->b = data[result_num]->b;
   //...
}
Разумеется в описанном тобой случае нужно работать с динамической памятью. Я описал лишь возможный принцип действия.
(Offline)
 
Ответить с цитированием