Как мне записать содержимое переменной в текстовый файл в Rebol 2?
Вопрос новичка здесь... Я хотел бы записать вывод функции "что" в текстовый файл.
Итак, вот что я сделал:
Я создал переменную с именем "текст" и присвоил ей вывод "что"
текст: [что]
Теперь я хочу записать содержимое переменной "text" в текстовый файл...
Любая помощь приветствуется. Заранее спасибо!
3 ответа
Самый простой способ записать вывод операторов в файл - это использовать
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
]
Эта функция немного хакерская (имя файла установлено, но оно вернет то, что вы хотите). Вы можете расширить функцию, чтобы принять имя файла или делать все, что вы хотите. tab
а также newline
чтобы сделать вывод файла красивее.
Важные вещи, на которые следует обратить внимание:
- Печать возвращается неустановленной
- использование
source
узнать, что делают функции write %filename value
выпишет значение в файл все сразу. если тыopen
файл, вы можете написать больше раз.
Довольно элементарно: использовать write
если вы просто хотите сохранить текст, read
восстановить его; использование save
если вы хотите сохранить некоторые данные и использовать load
чтобы восстановить это.
>> write %file.txt "Some Text"
>> read %file.txt
== "Some Text"
>> text: [what]
>> save/all %file.r text
>> load %file.r
== [what]
Вы можете получить больше информации о каждом слове в приглашении: help save
или посмотреть онлайн: load
, save
, read
а также write
,