Russian Qt Forum

Qt => ActiveX => Тема начата: CroCIV от Сентябрь 09, 2009, 16:18



Название: Буфер обмена - коллизии
Отправлено: CroCIV от Сентябрь 09, 2009, 16:18
На ум пришел вопрос: если в качестве общего интерфейса между своим приложением и приложением стороннего разработчика использовать буфер обмена, есть ли у этого способа какие-то явные преимущества или недостатки? на сколько это грамотно? и не возникает ли ситуация конфликта по доступу к данным в буфере между использующими буфер приложениями в том числе под управлением пользователя?
короткое мнение знатока


Название: Re: Буфер обмена - коллизии
Отправлено: Igors от Сентябрь 09, 2009, 17:29
На знатока не претендую, т.к. писал всего 1 такую задачу :) UI 32-bits, расчеты 64-bits. Обмен через shared memory (+ 2 семафора)


Название: Re: Буфер обмена - коллизии
Отправлено: Tonal от Сентябрь 10, 2009, 06:53
Буфер обмена должен управляться пользователем.
Для постоянной коммуникаций между прогами есть много других, более удобных методов.


Название: Re: Буфер обмена - коллизии
Отправлено: CroCIV от Сентябрь 10, 2009, 07:52
так и знал что идея не хорошая, по этому курить ее не стал  ::) спасибо.
Хотя... есть тут у меня пример проприетарного ПО, который при заполнении .xls шаблона использует активный лист и выполняет поячеечную вставку... так вот тратит он секунд 5 на то чтобы заполнить двенадцать ячеек строки, и когда с увлечением наблюдаешь за его неприхотливой работой на перед зная что строк таких больше 2000 и листов в документе 23, то не волей задумываешься, о том как это просто и быстро вставляется таблица из буфера  ;D


Название: Re: Буфер обмена - коллизии
Отправлено: Rcus от Сентябрь 10, 2009, 08:17
Из буфера тоже не быстро :) /* Во всяком случае не очень быстро идет вставка таблиц 10 x 10k скопированных из браузера */ Самый быстрый способ это генерация csv/fixed-space/whatever-delimited файлов напрямую, но без форматирования. Способ посложнее - использование библиотеки чтения/записи biff файлов (формат .xls <=2003).

///чувствую будут кошмары сниться - вспомнил как писал подобное на progress 4gl несколько лет назад


Название: Re: Буфер обмена - коллизии
Отправлено: CroCIV от Сентябрь 10, 2009, 10:06
О! я тут вдруг взгляд свой случайно уронил на класс QueryTable в пространстве имен Microsoft.Office.Interop.Excel и на меня снизошло просветление :D

Такую схему передачи данных я имел в своей голове до этого:
    |БД                | Qt ПО        |Excel     
    |<-----запрос |                 |
    |данные------>|                 |
                         |данные---->|

Где миграция данных происходит 2жды.
Теперь же класс QueryTable позволяет создать такую схему:
    |Qt ПО           |Excel           |БД     
    |запрос-----> |                 |
                         |запрос---->|
                         |<----данные|

а? как оно? здорово? здорово?  ;D

Как реализую, отпишу в новой теме


Название: Re: Буфер обмена - коллизии
Отправлено: CroCIV от Декабрь 03, 2009, 12:07
http://www.prog.org.ru/topic_11526_0.html