rebol - 如何增量读取二进制文件

标签 rebol red

TL;DR:我可以使用 Red 或 Rebol 增量读取二进制文件吗?

我想使用 Red 来处理一些大的(13MB 到 2GB)结构化二进制文件(Kurzweil 合成器文件)。我曾使用其他语言(C、Go、Tcl、Ruby、Dart)浏览这些文件,现在我想用 Red 或 Rebol 做同样的事情。

有没有办法逐字节地增量读取二进制文件?我所看到的只是读取/二进制文件,它似乎一次吞噬了整个文件(或文件的一部分)。

我也需要跳转一点(查看下一个字节,或者跳到一个部分的末尾,或者跳过可变长度字符串到数据的开头)。

(是的,我可以制作一些跟踪位置并使用 read/part/seek 的助手。)

如果可能的话,我想调用低级操作系统 read/seek - 要学习的新东西。

这是在 macOS 上,但可移植解决方案会很棒。

谢谢!

PS:“open/read %abc”给出错误“*** Script Error: open does not allow file! for its port argument”,即使帮助消息说端口参数是“port [port! file !网址!阻止!]”

最佳答案

Rebol 有 ports为此,计划用于 0.7.0以红色发布。所以,当前的 I/O 是非常基本的,只有缓冲区,open 是一个初步的 stub 。

I would like to make a call to the low level OS read/seek if that is possible - something new to learn.

您可以利用 RebolRed/System FFI 作为一种学习练习。

关于rebol - 如何增量读取二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58175838/

相关文章:

rebol - 字面词的类型

string - Rebol/RED 解析。将解析后的字符串中的 ASCII 代码保存到变量中?

filenames - 在 Rebol 3 GUI 中请求文件的正确方法(Saphir 版本)

html - 如何自定义 Power-Mezz 的 HTML 过滤器?

rebol - 使用 Rebol 3 FFI 包装共享变量

rebol - block : load text in rebol/red 的逆是什么

scope - 是否对Rebol和Red中的定义范围进行了总体解释

red - 是否可以用红色编写Windows DLL?

rebol - 在 rebol 中读取不成功的 http 数据

post - 在 Red 中发出 POST 请求时如何在 header 中使用变量