Есть ли способ сделать функцию, подобную ask, но которая принимает несколько строк в Red console?

Когда используешь

спросить "ваш ответ: "

Вы не можете вставить несколько строк.

Можно ли управлять консолью, чтобы временно принимать несколько строк? Или я обязан создать графический интерфейс, которого я хотел бы избежать, я не хочу никакого графического интерфейса, если это возможно.


red
person user310291    schedule 04.11.2017    source источник


Ответы (1)


Если вы не хотите писать свою собственную процедуру Red/System, грубое решение может быть

ask-2line: function [quest] [
    collect/into [ 
        keep ask  quest
        keep newline
        keep ask "[  "
    ] clear ""
]

>> ask-2line "what: "
what: 1st line
[  second line
== "1st line^/second line"

Конечно, вы должны определить, как завершить ввод. например

ask-nlines: function [quest] [
    collect/into [ 
        while [
            not empty? keep  ask  quest
        ] [
            keep newline
            quest: "{  "
        ]
    ] clear ""
]
person sqlab    schedule 04.11.2017
comment
аргумент функции может принимать несколько строк, было бы здорово, если бы ask вел себя так же. - person user310291; 04.11.2017