【问题标题】:Openvms: Extracting RMS Indexed file t to Windows as a sequential flat fileOpenvms:将 RMS 索引文件 t 作为顺序平面文件提取到 Windows
【发布时间】:2023-01-31 22:35:23
【问题描述】:

我已经 20 多年没有使用 openvms 了。这是我的第一个操作系统。有人问我是否可以将 RMS 文件中的数据作为文本文件从 openvms 服务器复制到 Windows - 以便它可读。

没有人对记录结构等有经验或知识。

这些文件是 xyz.DAT 并且是相关文件。我希望 dat 文件是固定长度的。

我的第一次尝试是尝试使用 Datatrieve (DTR),但出现未加载图像的错误。

认为使用 CONVERT/FDL = nnnn.FDL 可能很容易 - 通过将 Relative 更改为 Sequential。该文件似乎仍然不可读。

有没有一种简单的方法可以将 RMS 索引文件流式传输到平面 ASCII 文件?

我过去使用 COBOL 和 C 来访问数据,但有很多库可以提供帮助……

我注意到一些解决方案可能使用 odbc 进行连接,但不确定我可以或不能在服务器上安装什么。

我可以使用 Filezilla FTP 到服务器....

另一个编写 C 应用程序以读取文件并输出为字符串的计划......或 DCL 也......不必很快......

有任何想法吗

之前有提到

【问题讨论】:

  • “可读”是什么意思?如果文件包含非文本数据,例如浮点值,然后将其转换为人类可读的文本是一个挑战。 DUMP 会让您检查文件的内容。那应该让你更好地了解那里有什么。文件头将显示记录是固定长度还是可变长度。尝试从 dump FOO.DAT/header/record=count=5 开始检查文件头和前五个记录。
  • FWIW,如果你做一个二进制RMS 文件的 ftp 传输通常会丢失任何索引和其他 OpenVMS 特定属性,并成为 Windows 端的平面二进制文件。如果数据不是文本,例如整数、浮点数、日期时间……,那么在 Windows 端需要一些工作来修复。 Little-endian v. big-endian 整数,VAX F、D、G 和 H 浮点到 IEEE 浮点,1858 年 11 月 17 日以来 100ns clunks 到任何 Windows 类型。如果它是纯文本文件,则ASCII码文件传输应该做得很好。

标签: openvms


【解决方案1】:

简单的解决方案可能是只使用:$ TYPE/OUT=test.TXT test.DAT。 这将类似地处理 Relatie 和 Indexed 文件。 它与 $ CONVERT / FDL=NL: test.DAT test.TXT 非常相似 两者都将只从源读取记录并将字节逐字节传输到顺序文件中的记录。 ASCII 模式下的 FTP 可以很好地将其传输到 Windows。

您还可以使用“内联”FDL 文件生成“unix”LF 文件,例如: $ conv /fdl="record; format stream_lf" test.DAT test.TXT 或 CR-LF 文件使用: $ conv /fdl="record; format stream" test.DAT test.TXT

两者都可以使用 FTP 以二进制或 Ascii 格式传输。

大多数 - 因为这实际上只适用于纯文本源 .DAT 文件。 源代码中不应有 CR、LF、FF 或 NUL 字符,否则会中断。 正如“habo”指出的那样,使用 DUMP /RECORD=COUNT=3 查看源数据的“可读性”。

如果您使用 DUMP 发现“二进制”数据,那么您将需要在某处找到一个记录定义,根据需要将字节映射到整数或浮点数或日期。 这些定义可以是 COBOL LIB 文件或 BASIC MAPS,并且通常存储在 CDD(通用数据字典)中或实际上存储在 DATATRIEVE .DIC DICTIONARIES 中

要使用这样的定义,您可能需要一个程序来按照“地图”读取并作为文本写入/打印。通常这并不太难——尤其是当您可以在服务器上找到一个示例程序进行调整时。 如果它只是一个或两个“可疑”字节范围,那么您可以创建一个 DCL 循环来读写并使用 F$EXTRACT 来选择您喜欢的块。

如果您需要进一步的帮助,请用文字描述预期的数据类型,并可能提供 3 或 5 行的 DUMP 输出。

祝你好运! 海因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多