Динамический обмен данными (DDE), страница 3

Если приложение - сервер - Microsoft Excel, Вы можете определить Системный раздел или раздел, который является именем файла. В последнем случае Вы должны завершать имя файла  .XLS или .XLC, и включать полный путь в случае необходимости. Элемент Microsoft Excel - ссылка на ячейку, которая может быть индивидуальной ячейкой или диапазоном ячеек.

Если приложение - сервер Microsoft Word для  Windows, то раздел является Системным - это имя документа, который сохранен в файле, имя которого заканчивается в .DOC или .DOT. Элемент Microsoft Word  - любая закладка в документе в указанном разделе.

ddeinit

Инициализирует сеанс связи DDE

Синтаксис:

channel = ddeinit('service','topic')

Описание:

Возвращает маркер канала, назначенный на сеанс связи, который используется с другими функциями MATLAB DDE. 'service' - строка, определяющая службу или имя приложения для сеанса связи. 'topic' - строка, определяющая раздел для сеанса связи.

Пример:

Инициализировать сеанс связи с Excel для электронной таблицы 'initprim.xls':

channel = ddeinit('excel','initprim.xls')

Если не открыта книга initprim.xls, то получим следующий ответ:

>>channel =

           0.00

Если открыта книга initprim.xls, то получим  ответ с номером канала, присвоенным MatLab, не равным нулю, например, что-то вроде:

channel =

  4.7836e-299

Нас не интересует какое конкретно числовое значение присвоено номеру канала, просто дальше мы можем использовать идентификатор переменной channel для обращения к этому  каналу. Можно открыть сразу несколько каналов, используя для ссылки на них различные идентификаторы.

ddeterm

Заканчивает сеанс связи DDE

Синтаксис:

rc = ddeterm(channel)

Описание:

rc  принимает маркер канала, возвращенный предыдущим вызовом к ddeinit, который установил сеанс связи DDE. ddeterm заканчивает этот сеанс связи.
rc - код возврата, где 0 указывает на отказ, а 1 указывает на успех.

Пример:

Закрывать канал сеанса связи, предварительно открытый ddeinit:

rc = ddeterm (channel)

>>rc =

      1.00

ddepoke

Отправление данных  в приложене-сервер.

Синтаксис:

rc = ddepoke(channel,'item',data)

rc = ddepoke(channel,'item',data,format)

rc = ddepoke(channel,'item',data,format,timeout)

Описание:

ddepoke отправляет данные к приложению через установленный сеанс связи DDE.
 ddepoke форматирует матрицу данных перед посылкой к приложению - серверу следующим образом :

Строковые матрицы преобразуются элемент за элементом к символам, и результирующий символьный буфер   посылается.

Числовые матрицы посылают как разграниченные позицией табуляции столбцы и разграниченные символами перевод каретки, перевод строки  строки чисел. Только вещественная часть неразряженных матриц посылается.

Если Вы опускаете дополнительные параметры, которые находятся не в конце списка параметров, Вы должны заменить пустой матрицей отсутствующие параметры .

Если пересылка успешна, в переменной rc ddepoke возвращает 1 . Иначе  возвращает 0.


Параметры функции ddepoke:

channel

Канал сеанса связи от ddeinit.

item

Строка, определяющая элемент DDE для посланных данных. Элемент - информационный объект сервера, который должен содержать данные, посланные в параметре данных.

data

Матрица, содержащая данные, чтобы послать.

format (дополнительный)

Скаляр, определяющий формат данных, которые требуют. Значение указывает формат буфера обмена Windows, чтобы использовать для передачи данных. Единственный формат, в настоящее время поддержавший - cf_text, который соответствует значению 1.

timeout (дополнительный)

Скаляр, определяющий ограничение времени выполнения для этой операции. время ожидания определено в миллисекундах. (1000 миллисекунд = 1 секунда). Значение по умолчанию времени ожидания - три секунды.