【发布时间】:2014-11-07 18:40:13
【问题描述】:
这里是新手问题... 我想将“what”函数的输出写入文本文件。
这就是我所做的:
我创建了一个名为“text”的变量并将“what”的输出分配给它
文本:[什么]
现在我想把“text”变量的内容写入一个txt文件……
感谢任何帮助。提前致谢!
【问题讨论】:
这里是新手问题... 我想将“what”函数的输出写入文本文件。
这就是我所做的:
我创建了一个名为“text”的变量并将“what”的输出分配给它
文本:[什么]
现在我想把“text”变量的内容写入一个txt文件……
感谢任何帮助。提前致谢!
【问题讨论】:
将语句输出写入文件的最简单方法是使用
echo %file.log
what
echo none 结束这个
>> help echo
USAGE:
ECHO target
DESCRIPTION:
Copies console output to a file.
ECHO is a function value.
ARGUMENTS:
target -- (Type: file none logic)
(SPECIAL ATTRIBUTES)
catch
【讨论】:
不幸的是,what 函数实际上没有返回值:
在控制台中尝试以下操作:
print ["Value of `what` is: " what]
所以write %filename.txt [what] 将不起作用。
相反,您可以做的是查看what的来源
source what
返回:
what: func [
"Prints a list of globally-defined functions."
/local vals args here total
][
total: copy []
vals: second system/words
foreach word first system/words [
if any-function? first vals [
args: first first vals
if here: find args /local [args: copy/part args here]
append total reduce [word mold args]
]
vals: next vals
]
foreach [word args] sort/skip total 2 [print [word args]]
exit
]
看到这个函数只打印(它不返回它找到的值)我们可以修改脚本来做你想做的事:
new-what: func [
"Returns a list of globally-defined functions."
/local vals args here total collected
][
collected: copy []
total: copy []
vals: second system/words
foreach word first system/words [
if any-function? first vals [
args: first first vals
if here: find args /local [args: copy/part args here]
append total reduce [word mold args]
]
vals: next vals
]
foreach [word args] sort/skip total 2 [append collected reduce [word tab args newline]]
write %filename.txt collected
exit
]
这个函数有点hackish(文件名已设置,但它会返回你想要的)。您可以扩展该功能以接受文件名或做任何您想做的事情。 tab 和 newline 可以使文件输出更漂亮。
需要注意的重要事项:
source 了解功能的作用write %filename value 将一次将一个值全部写入文件。如果你open一个文件,你可以写更多次。【讨论】: