DM如何读取存储在hdf5格式文件中的字符串

How to read string stored in hdf5 format files by DM

我正在使用 DM 编写脚本并且想要读取 hdf5 文件格式。

我借用了 Tore Niermann 的 gms_HDF5_Plug-In (hdf5_GMS2X_amd64.dll) 和他的 CMD_import_hdf5.s 剧本。它使用 h5_read_dataset(filename, datapath) 来读取图像数据集。

我正在尝试找出读取存储在同一文件中的字符串信息的方法。我特别感兴趣的是读取存储在字符串中的角度,如图所示。Demonstrated string to read。 h5_read_dataset(filename, datapath) 函数不适用于读取字符串。

有一个包含函数列表的帮助文件 (hdf5_plugin.chm),但遗憾的是我无法打开它们查看更多信息。 hdf5_plugin.chm showing the function list。

我想读取字符串的正确函数应该是 h5_read_attr() 或 h5_info() 之类的,但我没有测试它们。 DM 总是说这两个功能不存在。

通过字符串读出角度后,我还需要一些帮助来将字符串转换为双精度数据类型。

谢谢。

关于 .chm 文件的可能答案:当您在 Windows 中下载(或通过电子邮件发送).chm 文件时,OS 将它们分类为 "potentially dagerouse"(因为它可能包含可执行文件HTML 代码,我认为)。因此,默认情况下无法显示这些文件。但是,您可以右键单击这些文件并在文件属性中 "unblock" 它们。

示例:

I think this will be most likely a question specific to that plugin and not general DM scripting. So it might be better to contact the plugin-author directly.

另一种(不好)解决方案是 "rewrite" 你自己的 HDF5 文件 - reader,如果你知道文件格式。为此,您需要 DM 脚本语言的 "Streaming" 命令并浏览(二进制?)源文件到适当的文件位置。在 F1 帮助文档中阅读此内容的起点是:

将字符串转换为数字是使用 Val() 命令完成的。 DM-script中没有integer/double/float变量的概念,都是number。 (这与 images 不同,您可以在其中定义数字类型。此外:对于 file-inport/export,可以使用其他答案中的标签组流命令进行类型区分。)

示例脚本:

string numStr = "1.234e-2"
number num = val( numStr )
ClearResults()
Result( "\n As string:" + numStr )
Result( "\n As value:" + num )
Result( "\n As value, formatted:" + Format(num,"%3.2f") )