gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:48:39 26 4
gpt4 key购买 nike

为了逐行读取文本文件,而不将整个文件加载到内存中,在 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
]
]

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

关于rebol - 在 Rebol 中,逐行读取文本文件的惯用方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com