在 Rebol 中,逐行读取文本文件的惯用方法是什么?

2024-01-11

为了逐行读取文本文件,而不将整个文件加载到内存中,在 Rebol 中执行此操作的常用方法是什么?

我正在执行以下操作,但我认为(如果我错了,请纠正我)它首先将整个文件加载到内存中:

foreach line read/lines %file.txt [ print line ]

至少在 Rebol2 中

read/lines/direct/part %file.txt 1 

应该接近你想要的

但如果你想要所有的行一行接一行,它应该像

f: open/lines/direct %test.txt
while [l: copy/part f 1] [print l]

理论上你可以取代任何函数,甚至是本地函数。我会尝试给一个新的foreach

foreach_: :foreach
foreach:  func [
    "Evaluates a block for each value(s) in a series or a file for each line."
    'word [get-word! word! block!] {Word or block of words to set each time (will be local)}
    data [series! file! port!] "The series to traverse"
    body [block!] "Block to evaluate each time"
    /local port line
] [
    either any [port? data   file? data] [
        attempt [
            port: open/direct/lines data
            while [line:  copy/part port 1] [
                set :word line
                do :body 
                line
            ]
        ] 
        attempt [close port]
    ] [
        foreach_  :word :data :body
    ]
]

大概是设置:字线部分和尝试应该更加详细,以避免名称冲突并出现有意义的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Rebol 中,逐行读取文本文件的惯用方法是什么? 的相关文章

  • 为什么 return/redo 在调用上下文中评估结果函数,但不评估块结果?

    昨晚我了解了 redo 选项 当你return来自一个函数 它可以让你回来another函数 然后在调用站点调用该函数并从同一位置重新调用评估器 gt gt foo func a print a return redo func b pri
  • REBOL3 - 不同分支之间有什么区别?

    不同的 Rebol 3 分支之间有什么区别 特别是新的 REN 分支 是它们运行的 平台 功能集 代码组织 C 标准合规性吗 这是一个注定会过时的答案 因此设置为社区维基 此信息截至Sep 2015 因此 如果在一段时间后更新此答案 请也修
  • 在 Rebol 中计算行数最快/最有效的方法是什么?

    给定一个字符串string 计算其中行数最快 最有效的方法是什么 将接受任何 Rebol 风格的最佳答案 我一直在这样的假设下工作parse some thru 组合是遍历字符串的最快方法 但我不确定 因此转向 SO count lines
  • 使用字符串创建 Red 语言的单词和路径

    我有字符串在namelist 对应于应用程序中的变量和字段名称 该函数应该从名称列表中读取字符串 添加 f 以获取 field names 然后将变量值放入相应的字段中 我尝试了以下代码 没有给出任何错误 但也不起作用 namelist v
  • 如何将 IN 与块而不是对象一起使用?

    Rebol 中的 IN 函数查找字段是否在对象中 USAGE IN object word DESCRIPTION Returns the word or block in the object s context IN is a nati
  • 评估“可变变量”

    我正在使用以下内容创建一个动态变量 PHP 术语中的 变量变量 foo test1 set to word rejoin foo result data array 5 但是如何动态获取名为 test1 result data 的结果变量的
  • 如何使用 Rebol 3 将 URL 传递给 cookie?

    使用 R3 我需要从使用 cookie 的网站获取页面的本地化版本来处理此问题 在 REBOL 2 x 中 我可以这样做 page http www rci com resort directory resortDetails resort
  • rebol解析函数可以创建完全解析css2/css3的规则吗?

    rebol 解析函数的能力有限制吗 它是否能够解析整个 css2 css 3 规范 或者是否会遇到理论上不可能形成某些规则的情况 HostileFork 回答后更新 我的意思是在正则表达式中我认为这是相当不可能的 解析是否更强大 如果是 这
  • 为什么 Rebol 中的“上下文”和“对象”功能不同,但本质上是相同的?

    一方面我们有 gt gt source object object make function Defines a unique object blk block Object words and values make object ap
  • REBOL 中的 If...else if...else

    我注意到 REBOL 没有内置if elsif else语法 就像这样 theVar 60 This won t work if theVar gt 60 print Greater than 60 elsif theVar 3 print
  • 如何从“Android终端模拟器”调用Rebol解释器?

    我需要从以下位置调用 Rebol 语言解释器作为运行脚本文件的命令 例如rebol script name reb 所以我不是在寻找仅在 Rebol 中启动的 APK 应用程序REPL http en wikipedia org wiki
  • 如何获取HTTP 404响应的响应内容

    有没有比直接通过 tcp 访问主机更简单的方法来获取 HTTP 404 响应的内容 这是 404 响应的示例 内容如下 HTTP 1 1 404 Object Not Found Server CouchDB 1 3 0 Erlang OT
  • 什么是终结符和非终结符?

    我正在读 雷布尔 维基百科页面 https en wikipedia org wiki Rebol 解析表达式是用 parse 方言编写的 与 do 方言一样 它是数据交换方言的面向表达式的子语言 与 do 方言不同 parse 方言使用表
  • 关于 UTYPE 的了解!在《REBOL 3》中?

    我能找到的关于数据类型 UTYPE 的唯一信息 尚未针对 R3 进行记录 和 用户定义的数据类型 但仍然给我带来一丝希望 即我可以突破 Rebol 的预定义数据类型规范 并以更直接的方式制定函数的多态性 只是 我不知道如何处理UTYPE 试
  • 在 Rebol 中,逐行读取文本文件的惯用方法是什么?

    为了逐行读取文本文件 而不将整个文件加载到内存中 在 Rebol 中执行此操作的常用方法是什么 我正在执行以下操作 但我认为 如果我错了 请纠正我 它首先将整个文件加载到内存中 foreach line read lines file tx
  • Red语言的并行列表赋值

    我有 2 个清单 alist a b c d blist 1 2 3 4 实际上它们是很长的列表 如何一次性将列表中的变量分配给列表中的相应值 因此 a 变为 1 b 变为 2 依此类推 I tried foreach i alist j
  • 块的逆是什么:以 rebol / red 加载文本

    假设我有一些 rebol red 代码 如果我加载源文本 我会得到一个块 但是如何从块中取回源文本 我尝试了表单块 但它没有返回源文本 text Red Title Red Pretty Printer out none output te
  • Rebol 中的“reword”功能是什么以及如何使用它?

    我看到有人提到reword今天可以使用 但是它的文档非常简短 它看起来像 shell 脚本环境变量替换 或者可能是正则表达式替换 但有所不同 我该如何使用这个功能以及我会遇到什么样的问题 这里有龙 The rewordfunction 是一
  • 在 REBOL 中动态添加单词到上下文

    想象一下以下 REBOL 代码 foo context bar 3 我现在有一个上下文foo其中 bar被定义为 如何动态地将新单词注入到此上下文中 是否可以 我试过了 set any in foo baz 3 但这不起作用 因为表达式in
  • 改变路径或细化

    我想改变a b在一个块内a c 或者甚至可能a 我这样做的正常方法是change test a b change test 1 c 但它只改变了第一部分 即a to c gt gt test c b 无法访问路径test 2 either

随机推荐

  • 使用UniversalImageDownloader的ListView滚动不平滑

    我正在使用包含图像的 ListView 这些图像是从互联网加载到适配器内的 因此我正在使用通用图像下载器 不幸的是 当我向下滚动需要下载新内容的位置时 ListView 的滚动会短暂 滞后 我实际上期望像 ListView 这样的行为滚动完
  • GitHub 组织未出现在“持续部署”页面中

    我的个人 GitHub 帐户属于五个组织 从 GitHub 设置 Azure 持续集成时 五个组织中只有四个出现在列表中 我们尝试过登录和注销 GitHub 和 Azure 此外 我们尝试更改 Azure 中的帐户 然后重新添加相同的帐户
  • 按新指南随机排序

    为了从 Sql 查询中以随机顺序获取结果 我通常按新的 Guid 进行排序 我之前已经使用实体框架完成了此操作 但由于某种原因它现在不起作用 例如 使用 Adventureworks2008r2 数据库 我在 LinqPad 中运行以下查询
  • 如何使用 Javascript 将 cookie 存储在本地存储中?

    我有一个适用于 Android 希望以后还有 iPhone 的应用程序 它基于 Javascript 并使用 Phonegap Applaud 制作成应用程序 不幸的是 设置和获取 cookie 在 Android 上不起作用 这可能是 A
  • 内容仅在我单击时出现在页面上

    我已经通过 Angular 2 应用程序连接到 Firebase 3 没有什么特别的 只是一个包含一小部分数据的简单表 在我的 Angular 2 应用程序中 我在服务中创建了服务 我创建了一个侦听器事件 如下所示 getAddedBugs
  • 创建 JavaScript 自定义事件

    我想用 JavaScript 创建一个自定义事件 我有一个 WPF 应用程序 里面有一个 WebBrowser 还有一个带有 JavaScript 的 HTML 页面 我使用打印机工作 当打印机的状态发生变化时 它会触发 NET 中的事件
  • 将特色图像添加到 wp_nav_menu 项目

    这是一个自我问答 如何修改 wp nav menu 输出中出现的文本 html 例如 我想为页面和类别添加特色图像 您可以看到使用自定义步行器执行此操作的示例 但对于小的更改来说 代码非常复杂 当然有办法用过滤器来做到这一点吗 这是我在 W
  • 基于范围的临时对象

    我知道 一般来说 基于范围的临时对象的生命周期for循环扩展到整个循环 我读过C 11 基于范围的 for 语句 range init 生命周期 https stackoverflow com questions 9657708 c11 t
  • AddDbContext 或 AddDbContextPool

    对于 Asp net Core 应用程序 我们必须使用哪一个 AddDbContext or AddDbContextPool 根据 EF Core 文档 AddDbContextPool提供高性能 但默认的 Asp net Core 项目
  • System.Windows.Forms.Timer 未触发

    我想用一个System Windows Forms Timer确保事件在我正在创建的 Excel 插件的 UI 线程上触发 我按如下方式构造计时器 private System Windows Forms Timer timer priva
  • 如果我在我的反应应用程序中使用打字稿元组,我会在 vscode 的第 1 行收到 eslint 错误?

    错误是Parsing error Cannot read property map of undefined 我设置了一个新文件只是为了重现错误 export default gt let something string boolean
  • Django - ModelForm:添加不属于模型的字段

    注意 使用django crispy forms我的表格的图书馆 如果您有解决我的问题的方法 但不使用cripsy forms图书馆 我仍然接受它 不要试图挑剔 只需要一个解决方案 解决方法 谢谢 在我的表格中Meta我班设定了模型 Dri
  • 我有什么选择来寻找 Monotouch 异常,例如“System.Exception:在已被 GC 处理的托管对象上从 Objective-c 调用的选择器”?

    我在下面得到了一些例外情况 我有什么选择来追踪这些问题 我对这些感到有点迷失 因为它们只是偶尔发生 并且仅在设备上发生 但从未在模拟器中发生 System Exception Selector invoked from objective
  • 为什么我不能在单词边界旁边使用重音字符?

    我正在尝试制作一个与人名匹配的动态正则表达式 它对大多数名称都没有问题 直到我在名称末尾遇到重音字符 示例 一些奇特的名字 到目前为止我使用的正则表达式是 b Fancy Nam Nam b i 像这样使用 Goal Some Fancy
  • as3数组按索引删除

    我有一个数组 cat dog budgie 并想通过索引删除该项目 此刻我有 function removeit myindex animals myindex animals pop 你想要拼接 http help adobe com e
  • 如何过滤子文档数组?

    我有一个结构如下的文档 id ObjectId 564d2702d4c68225cb00726f list a NumberInt 1 test public a NumberInt 2 test public a NumberInt 3
  • 返回按其他列分组的第一个非空值

    How to go from left to right Basically for each TIME person combo I need the first non null value from the id columns 聚合
  • Doctrine2 忽略数据库表

    我正在使用 Doctrine 2 我想生成数据库的 ORM 但我不想选择数据库的所有表 例如 在此数据库中 表1没有主键 表2 正常情况 我想使用此命令仅选择表 2 doctrine mapping convert from databas
  • 生成 PDF 文件,绘制带圆角的多边形

    如果我想编写一个生成以下结果的 Python 脚本 那么什么工具适合这项工作呢 PDF 格式的矢量图形 特别是 我需要绘制填充带圆角的多边形 即由直线和直线组成的平面图形圆弧 看起来绘图库 http matplotlib sourcefor
  • 在 Rebol 中,逐行读取文本文件的惯用方法是什么?

    为了逐行读取文本文件 而不将整个文件加载到内存中 在 Rebol 中执行此操作的常用方法是什么 我正在执行以下操作 但我认为 如果我错了 请纠正我 它首先将整个文件加载到内存中 foreach line read lines file tx