【问题标题】:Red has no open function like Rebol?Red没有像Rebol这样的开放功能?
【发布时间】:2017-11-16 16:11:28
【问题描述】:

我想从一个大文本文件的末尾读取 10 行而不将整个文件加载到内存中。

我想尝试使用此处为 Rebol In Rebol, what is the idiomatic way to read a text file line by line? 解释的 Open

但是Red没有open函数?

【问题讨论】:

标签: rebol red


【解决方案1】:

你可以试试read/lines/seek/part %yourfile offset blocksize

但我不知道。你必须测试和调整你的偏移量和块大小。

【讨论】:

  • Rebol 和 Red 的 read/part/lines 的简单 IO 实现是有区别的。在 Rebol 上,它读取part 参数中给出的行数。在 Red 中,它首先读取文件的part,然后将其拆分为lines。所以read/lines/part %file 2 为 Red 和 Rebol 返回不同的结果。我认为在实现完整 IO 时它会固定为红色。
  • 但是使用 read/lines/seek/part 您可以编写自己的读取行函数。但是由于 GC 不可用,与一次读取整个文件相比,可能没有优势。只有知道文件大小并想要最后几行,才会有一些优势。
【解决方案2】:

Red 还没有open 函数。计划为 0.7.0 提供完整的 IO 支持。因此,您必须等待或直接使用操作系统调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    相关资源
    最近更新 更多