SAS: на что ссылается ссылка на файл в ссылке DDE?

#excel #sas #dde

#excel #sas #dde

Вопрос:

Может кто-нибудь, пожалуйста, объяснить, что такое оператор, подобный

 filename fileref dde 'excel|system';
  

есть ли в SAS?

Согласно Microsoft, Dynamic Data Exchange (DDE)

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

Это делает DDE похожим на какой-то поток ввода-вывода.

Тем не менее, синтаксис DDE в SAS требует fileref в FILENAME инструкции, где

fileref является допустимым fileref (как описано в разделе Ссылки на внешние файлы).

Затем ссылка на внешние файлы определяет fileref как

Ссылка на файл — это логическое имя, связанное с внешним файлом.

Какой внешний файл?

Мое наивное понимание заключается в том, что он открывает какой-то канал связи между Excel и SAS, поэтому я хочу назвать это потоком. Это имеет такие последствия, как приведенное выше утверждение должно быть объявлено после открытия Excel.

Комментарии:

1. Я уверен, что вы сталкивались с этим, но DDE больше не является рекомендуемым методом. ODS Excel, начиная с SAS 9.4, довольно приличный и подходит с точки зрения функциональности.

2. Я ищу точность, подобную скальпелю, при импорте данных. Я хочу получить полный контроль над тем, что я ввожу и как это вводится. Хотя прошло некоторое время с тех пор, как я проводил «обзор литературы», я обнаружил, что PROC IMPORT и LIBNAME просто не обеспечивают такого большого контроля; все должно быть очищено после импорта. Быстрый взгляд говорит мне, что ODS Excel предназначен только для экспорта. Я ошибаюсь и, несмотря на это, может ли это обеспечить мне максимальную точность, которую предлагает DDE?

3. Если вам нужна точность, подобная точности скальпеля, не используйте Excel.

4. Проверьте, как он обрабатывает форматированные данные по сравнению с базовой точкой данных. Я не могу вспомнить подробности, но я помню, что это проблема при импорте. Как указал @Joe, если вам нужен контроль, текстовый файл — лучший метод. DDE требует такой большой ручной настройки, что вы в любом случае можете выполнить преобразование вручную.

Ответ №1:

Насколько я знаю, в DDE нет физического файла. Скорее, как вы заметили, это поток. SAS и C довольно похожи в этом смысле; файлы действительно больше похожи на устройства. Существует множество других подобных примеров — pipe например, устройство, которое позволяет вам взаимодействовать с системной консолью, как если бы это был файл.

Что на самом деле происходит, насколько я могу судить за кулисами, так это то, что SAS записывает данные в глобальную таблицу Atom, обсуждаемую Microsoft здесь . Это приводит к трансляции сообщения, которое Excel прочитает и отреагирует.

Комментарии:

1. SAS может обрабатывать его как поток, но протокол DDE не является потоком — он работает в общей памяти и допускает произвольный доступ.