Пакет QUEUE

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Пакет QUEUE

Сообщение Игорь Столяров »

kreator писал(а): 30 Ноябрь 2018, 10:52Естественно!
Ну да. В принципе, если современная наука не знает других способов - то это решение вопроса.
Причём GROUP предпочтительней CLASS. Зачем платить больше, если и так всё работает ? ;)

Спасибо за помощь ! :)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Пакет QUEUE

Сообщение kreator »

Класс - это стильно, модно, молодёжно :D .
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Пакет QUEUE

Сообщение Дед Пахом »

Не надо никаких NEW/DISPOSE:

Код: Выделить всё

Que1 QUEUE
Name string(20)
     END
Que2 QUEUE
City string(20)
street string(32)
     END

SuperGrp  GROUP
Names        &QUEUE
Addresses    &QUEUE
          END

SuperGrp.Names &= Que1
SuperGrp.Addresses &= Que2
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Пакет QUEUE

Сообщение Игорь Столяров »

Дед Пахом писал(а): 30 Ноябрь 2018, 12:12Не надо никаких NEW/DISPOSE:
Спасибо ! Это уже совсем хорошо. Я бы даже сказал просто отлично !
Пакет очередей - есть, и можно очень удобно подцеплять для передачи в процедуры нужные очереди !
И при этом не париться с контролем и утечками памяти. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Пакет QUEUE

Сообщение finsoftrz »

Дед Пахом писал(а): 30 Ноябрь 2018, 12:12Не надо никаких NEW/DISPOSE:
Ну вот, только хотел поглумиться над "молодежью", дедушка опередил... :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Пакет QUEUE

Сообщение vic7tar »

Дед Пахом писал(а): 30 Ноябрь 2018, 12:12. . .
SuperGrp.Addresses &= Que2
А эта штука даст нужный результат?
C10, Win10x64
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Пакет QUEUE

Сообщение Yufil »

Я вот в начале показывал ( правда, неудачно) свой класс Dumper, куда фигачатся ссылки на несколько заранее неизвестных очередей и/или групп. Мне как раз надо было передавать-сохранять-восстанавливать пачку очередей-групп-просто переменных.
DumpClass.Q содержит очередь ссылок на элементы - очереди, потом по идентификатору я могу достать нужный элемент обратно.

Код: Выделить всё

DumpQ     Queue,Type
Id        Cstring(20)  ! Идентификатор переменной
Type      String(1)    ! Тип поля
Addr      Any          ! Адрес поля
AddrG     &Group       ! Адрес группы
AddrQ     &Queue       ! Адрес очереди
Address   Ulong        ! Истинный адрес группы
RecSize   Long         ! Размер поля
RecCount  Long         ! Количество записей
          End


DumpClass Class,Type,Module('Dumper.Clw')
Q         &DumpQ
DebugInfo Cstring(1000)
Construct  Procedure
Destruct  Procedure
AddField  Procedure(String,*?)
AddField  Procedure(String,*Group)
AddField  Procedure(String,*Queue)
SaveBlob  Procedure(*Blob)
LoadBlob  Procedure(*Blob),Long,Proc
          End
DumpClass позволяет давать ссылки на произвольное количество очередей в одном объекте.

Код: Выделить всё

     P.AddField('ZTstQ',TstQ)
     P.AddField('ResQ',ResQ)
     P.AddField('Qlist',QList)
     P.AddField('QGroup',QGroup)
Здесь я в одном элементе ссылаюсь на очереди TstQ, ResQ, Qlist и Qgroup ( что-то связанное с тестированием - список тестов-вопросов-ответов и прочее ). А потом можно передать объект типа DumpClass и по имени вытащить необходимые очереди. Собственно, работает давным-давно...

Это вот всякие исходники...
https://mega.co.nz/#!pxY0VQwR!B2l1BEHvb ... voxTx-XoSI
https://mega.co.nz/#!R4Rg1TAK!hyP2E8Wsy ... l8fPlta2lI
Ответить