Minecraft Wiki
мНет описания правки
(Функция read() получила новые возможности)
 
Строка 32: Строка 32:
   
   
*<code>term.read([history: table]): string</code>
+
*<code>term.read([history: table[, dobreak:boolean[, hint:table or function[, pwchar:string]]]]): string</code>
 
Считывает текст из терминала, т.е. позволяет пользователю ввести данные. К примеру, эта функция используется шеллом (см. [[OpenComputers/Shell API|Shell API]]) и интерпретатором Lua для пользовательского ввода.
 
Считывает текст из терминала, т.е. позволяет пользователю ввести данные. К примеру, эта функция используется шеллом (см. [[OpenComputers/Shell API|Shell API]]) и интерпретатором Lua для пользовательского ввода.
   
Строка 39: Строка 39:
 
Необязательный параметр — таблица <code>history</code>. Она определяет историю пользовательского ввода. Т.е. пользователь сможет вернуться к введенному ранее тексту при помощи стрелок {{Кнопка|↑}}/{{Кнопка|↓}}. Пример — ввод команд в шелл или интерпретатор Lua.
 
Необязательный параметр — таблица <code>history</code>. Она определяет историю пользовательского ввода. Т.е. пользователь сможет вернуться к введенному ранее тексту при помощи стрелок {{Кнопка|↑}}/{{Кнопка|↓}}. Пример — ввод команд в шелл или интерпретатор Lua.
   
После нажатия на {{Кнопка|Enter}}, введенный текст добавляется в конец таблицы.
+
Введенный пользователем текст добавляется в конец таблицы.
   
  +
Если параметр <code>dobreak</code> равен <code>false</code> - после нажатия на {{Кнопка|Enter}}, курсор не будет перемещен на новую строку. Значение <code>nil</code> эквивалентно <code>true</code>.
Функция возвращает строку, если ввод был успешным. Иначе — <code>nil</code> (если пользователь нажал {{Кнопка|Ctrl + C}} или {{Кнопка|Ctrl + D}}, или терминал стал недоступен).
 
   
  +
Параметр <code>hint</code> используется для автодополнения ввода ({{Кнопка|Tab}}). Он может быть таблицей со строками, или функцией, которая возвращает таблицу со строками и принимает два аргумента: введенный текст и позицию в этом тексте (т.е. сигнатура функции выглядит так: <code>function(line:string, pos:number):table</code>).
  +
  +
Параметр <code>pwchar</code> - это символ для маскировки ввода. Если вы передадите в него строку, то весь вводимый пользователем текст будет скрываться первым символом этой строки. Например параметр <code>"*"</code> будет маскировать текст звездочками.
  +
 
Функция возвращает строку, если ввод был успешным. Иначе — <code>nil</code> (если пользователь нажал {{Кнопка|Ctrl + C}} или {{Кнопка|Ctrl + D}}, или терминал стал недоступен).
   
 
''Примечание'': функция использует <code>io.stdin:read()</code>.
 
''Примечание'': функция использует <code>io.stdin:read()</code>.
Строка 51: Строка 56:
   
 
Вправо изображение не сдвигается (когда выводится длинный текст без параметра <code>wrap</code>).
 
Вправо изображение не сдвигается (когда выводится длинный текст без параметра <code>wrap</code>).
 
   
 
''Примечание'': функция использует <code>io.stdout:write()</code>.
 
''Примечание'': функция использует <code>io.stdout:write()</code>.

Текущая версия от 07:41, 20 ноября 2014

Базовый интерфейс для вывода текста на монитор и ввода пользовательских данных.


  • term.isAvailable(): boolean

Возвращает true если Term API доступен. Т.е. когда подключен "основной" монитор.

Другими словами, если функции term.read и term.write будут что-нибудь делать.


  • term.getCursor(): number, number

Возвращает позицию курсора.


  • term.setCursor(col: number, row: number)

Перемещает курсор в заданные координаты.


  • term.getCursorBlink(): boolean

Возвращает true если курсор мигает. Т.е. работает в режиме, когда он каждые полсекунды меняет свой вид между заполненным блоком и пробелом.


  • term.setCursorBlink(enabled: boolean)

Включает/выключает мигание курсора.


  • term.clear()

Очищает экран, и перемещает курсор в координаты (1, 1).


  • term.clearLine()

Очищает полностью линию, в которой находится курсор, и перемещает его в начало (x = 1).


  • term.read([history: table[, dobreak:boolean[, hint:table or function[, pwchar:string]]]]): string

Считывает текст из терминала, т.е. позволяет пользователю ввести данные. К примеру, эта функция используется шеллом (см. Shell API) и интерпретатором Lua для пользовательского ввода.

При этом, текущая строка начиная с позиции курсора становится доступна для редактирования. Пользователь может перемещать курсор стрелками / и клавишами Home/End.

Необязательный параметр — таблица history. Она определяет историю пользовательского ввода. Т.е. пользователь сможет вернуться к введенному ранее тексту при помощи стрелок /. Пример — ввод команд в шелл или интерпретатор Lua.

Введенный пользователем текст добавляется в конец таблицы.

Если параметр dobreak равен false - после нажатия на ↵ Enter, курсор не будет перемещен на новую строку. Значение nil эквивалентно true.

Параметр hint используется для автодополнения ввода (Tab ↹). Он может быть таблицей со строками, или функцией, которая возвращает таблицу со строками и принимает два аргумента: введенный текст и позицию в этом тексте (т.е. сигнатура функции выглядит так: function(line:string, pos:number):table).

Параметр pwchar - это символ для маскировки ввода. Если вы передадите в него строку, то весь вводимый пользователем текст будет скрываться первым символом этой строки. Например параметр "*" будет маскировать текст звездочками.

Функция возвращает строку, если ввод был успешным. Иначе — nil (если пользователь нажал Ctrl + C или Ctrl + D, или терминал стал недоступен).

Примечание: функция использует io.stdin:read().


  • term.write(value: string[, wrap: boolean])

Выводит текст (с переносами по словам, если задан параметр wrap) в терминал, начиная с текущей позиции курсора. При выводе курсор соответственно сдвигается. Функция автоматически избавляется от табуляции в тексте (при помощи text.detab). При достижении текстом нижнего края экрана (когда wrap = true), изображение сдвигается вверх на одну строку.

Вправо изображение не сдвигается (когда выводится длинный текст без параметра wrap).

Примечание: функция использует io.stdout:write().


См. также