【问题标题】:SAS: What is the fileref referring to in a DDE link?SAS:DDE 链接中的 fileref 指的是什么?
【发布时间】:2016-10-11 16:07:22
【问题描述】:

有人可以解释一下什么是陈述

filename fileref dde 'excel|system';

在 SAS 内?

根据Microsoft,动态数据交换(DDE)

在共享数据和使用共享的应用程序之间发送消息 在应用程序之间交换数据的内存。

这使得 DDE 听起来像是某种 I/O 流。

然而,DDE Syntax within SAS 需要在 FILENAME 语句中的 fileref,其中一个

fileref 是一个有效的文件引用(如引用外部中所述 文件)。

Referencing External Files 然后继续将 fileref 定义为

fileref 是与外部文件关联的逻辑名称。

什么外部文件?

我的幼稚理解是它打开了 Excel 和 SAS 之间的某种通信渠道,因此我想将其称为流。这有一些含义,例如必须在打开 Excel 之后声明上述语句。

【问题讨论】:

  • 我相信您已经遇到过这种情况,但 DDE 不再是推荐的方法。从 SAS 9.4 开始的 ODS Excel 相当不错,并且在功能方面达到了这一水平。
  • 导入数据时,我正在寻找类似手术刀的精度。我想完全控制我要引入的内容以及引入的方式。尽管我已经有一段时间没有进行“文献评论”了,但我发现 PROC IMPORT 和 LIBNAME 根本没有提供那么多控制;一切都需要在导入后进行清理。快速浏览告诉我,ODS Excel 仅用于导出。我是不是弄错了,无论如何,它能否为我提供 DDE 提供的极高精度?
  • 如果你想要像手术刀一样精确,不要使用 Excel。
  • 验证它如何处理格式化数据与基础数据点。我不记得具体细节,但我记得这是进口的一个问题。正如@Joe 所指出的,如果您想要控制,文本文件是一种更好的方法。 DDE 需要大量手动自定义,您也可以手动进行转换。

标签: excel sas dde


【解决方案1】:

据我所知,DDE 中不涉及物理文件。相反,正如您所注意到的,它是一个流。从这个意义上说,SAS 和 C 非常相似。文件真的更像设备。还有很多其他类似的例子——例如pipe 设备,它允许您与系统控制台进行交互,就像它是一个文件一样。

据我所知,在幕后真正发生的是 SAS 正在写入全局原子表,Microsoft here 对此进行了讨论。这会导致 Excel 将读取并响应的消息被广播。

【讨论】:

  • SAS 可能将其视为流,但 DDE 协议不是流 - 它在共享内存中运行并允许随机访问。
猜你喜欢
  • 2020-02-11
  • 1970-01-01
  • 2016-05-20
  • 2013-11-18
  • 1970-01-01
  • 2018-11-11
  • 2010-10-01
  • 1970-01-01
  • 2011-05-14
相关资源
最近更新 更多