Как вывести процедуру Tcl в файл - PullRequest
0 голосов
/ 14 сентября 2018
proc my_proc {} {
    puts "Hello World!"
}

Как вывести содержимое этого процесса в файл? Я знаю, что «info body my_proc» может распечатать содержимое на экране. Я попробовал следующее, но не повезло.

redirect [info body my_proc] > filename.txt

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

Чтобы иметь возможность (в основном) воссоздать процесс, попробуйте следующее:

set procname "my_proc"
set procedure [list proc $procname [info args $procname] [info body $procname]]
puts $procedure

Я говорю "в основном", потому что info args не выдает никаких значений по умолчанию для аргументов. Об этом см. https://core.tcl.tk/tips/doc/trunk/tip/65.md, который я написал и оставил (шокирующе) 17 лет назад.

0 голосов
/ 15 сентября 2018

Просто используйте [puts]:

set f [open filename.txt w]
puts $f [info body my_proc]
close $f

Я знаю, что 'info body my_proc' может печатать содержимое на экране.

[info] некоманда ввода / вывода.Он служит для самоанализа и возвращает тело скрипта ("proc proc") процедуры Tcl в виде строки.[puts] затем «печатает» заданное строковое значение в канал ввода / вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...