文章
· 十二月 9, 2024 阅读大约需 3 分钟

第四十五章 终端输入 输出 - WRITE 命令

第四十五章 终端输入 输出 - WRITE 命令

WRITE 命令

将零个或多个字符写入终端

语法

WRITE *variable 
WRITE *-n
WRITE # 
WRITE /mnemonic
参数 定义
(none) 不带参数的WRITE将写入当前设备上的所有局部变量。
*variable WRITE *变量写入一个字符,其十进制值等于x 。对于 ASCII 字符,变量的值应为 0255 范围内的整数;对于 Unicode 字符,变量的值应为 >255。按照约定,从 0127 的值表示 7ASCII 字符,而 128255 表示扩展 ASCII 字符集,与应用程序本身相关。如果硬件和软件设置正确,IRIS 可以处理 8 位数据。示例:您可以使用第八位来表示国际字符集。 IRIS 例程通常使用WRITE *来发送设备相关功能的控制字符。示例:WRITE *27,*91,*50,*74 清除终端屏幕。 WRITE *不会更改$X$Y ;假设WRITE *输出高度特定于输出设备。
*-1 *-1会清除输入缓冲区。它清除等待下一个READ命令的所有字符。因此,所有预先输入的字符都被清除。
输入缓冲区保存从键盘到达的字符,甚至是您在例程执行READ命令之前键入的字符。因此,甚至可以在问题出现在屏幕上之前就回答问题。当READ命令从缓冲区获取字符时,IRIS 将它们回显到终端,以便问题和答案一起出现。当例程检测到错误时,它可能会发出WRITE *-1来取消这些答案。
*-10 WRITE *-10立即清除输入缓冲区。它不会等待下一个READ命令。因此,它会清除WRITE *-10之前发出的所有预输入字符;在WRITE *-10之后发出的预输入字符保留在输入缓冲区中,供下一个READ使用。
# CRT 终端发出WRITE #会清除屏幕并将光标发送到起始位置 (0,0)。对于硬拷贝终端,它写入回车符和换页符。 WRITE #$Y设置为 0。
/mnemonic|发出WRITE /mnemonic会使 IRIS 解释活动助记符空间中定义的助记符。如果没有活动的助记符空间,则会产生错误。您可以通过两种方式指定活动助记符空间: 通过使用命名空间和网络配置编辑器为每种设备类型命名默认助记符空间,通过在设备的OPENUSE命令中指定助记符空间。有关更多信息,请参阅使用助记符空间控制设备。

示例

在以下示例中, WRITE *在用户终端上响铃,显示提示,并清除输入缓冲区中已接收但尚未使用的所有字符。

   SET eek="No. I can't accept that reply" 
   WRITE *7,eek,*-10

以下两个示例显示了WRITE *-1WRITE *-10之间的区别。在这两种情况下,用户都会响应第一个READ并按 ENTER,然后在HANG命令导致的两次暂停期间向前键入:

  READ "type:",x HANG 4 WRITE *-1 HANG 4 READ "type:",y

在上面的示例中,当发出第二个READ时, IRIS 会清除输入缓冲区。因此,在任一挂起期间键入的任何文本都会从缓冲区中清除。

  READ "type:",x HANG 4 WRITE *-10 HANG 4 READ "type:",y

在上面的示例中,当发出WRITE *-10时,IRIS 立即清除输入缓冲区。因此,在第一次挂起期间键入的任何文本都会被清除,但在第二次挂起期间键入的任何文本都将提供给第二个READ命令。

在以下示例中, WRITE /mnemonic使用控制助记符 CUP(CUrsor Position)将光标移动到终端上第四行的第三列。在本例中,在USE命令中指定了预定义的助记符空间^%X364,并使用terminal变量指定了打开的终端设备的名称。有关 ^%X364 的说明,请参阅终端的预定义助记符空间。

   USE terminal:(80:"BP"):"%X364"
   SET %1=3,%2=4
   WRITE /CUP(%1,%2)
讨论 (0)1
登录或注册以继续