文章 姚 鑫 · 一月 16, 2025 3m read

第七十五章 使用 ^%IS - OPEN 参数

OPEN 参数

默认情况下,OPEN 命令使用 ^%IS 全局中定义的设备的规范。在使用 ^%IS 时,可以通过指定其他设置来覆盖这些设置。

发出 命令

运行 后,应用程序必须向 ^%IS 打开的设备发出 USE 命令。你可以使用变量 ,只要你明白每次调用 时它的值都会发生变化。然后,后续的 命令,例如 和 ,将引用该设备。

发出 命令

用户或应用程序开发人员必须关闭使用 S 实用程序打开的设备。

助记词

有几个功能可以简化它的使用。例如,如果想将 I/O 发送到自己的终端,只需在“设备”提示符处按 键即可。还可以使用内置的默认助记词或您自己定义的新助记词。

设备助记词

为各种设备提供助记符很有用,在某些情况下,为单个设备提供多个助记符也很有用。多个助记符允许您为设备指定不同的设备特征,并根据设备的使用方式改变特征。例如,通常用于数据输入的终端,因此具有终端的特性,可能连接了辅助打印机。通过分配不同的助记词来打开具有不同特征的同一设备,当您需要硬拷贝时,您可以将终端/打印机组合视为打印机。

默认助记词

全局变量在安装时使用几个默认助记词进行初始化。例如, 假脱机程序有两个默认助记词, 和 。只需键入 或 即可将输出发送到 后台处理程序。

如果您登录的是 、 或 类型的设备,并且终端是当前设备,则 将接受 、

0
0 148
文章 姚 鑫 · 一月 15, 2025 3m read

第七十四章 使用 ^%IS

^%IS 是一个通用的设备选择实用程序,用于基于字符的应用程序。可以使用内置的 ^%IS 实用程序来允许用户选择要将 操作定向到的设备。每当要选择设备时,应用程序都应该调用 实用程序。此实用程序允许用户指定要使用的设备和相应的 命令参数,打开所选设备,然后将特定于设备的信息返回给调用程序。用户输入已在 全局中定义的助记词。 依赖于 中建立的 配置默认值。

如何运作

设备提示

当您调用 实用程序时,IRIS 会提示输入设备名称。可以通过以下方式之一进行响应:

  • 输入所需的设备名称或 ID 号。
  • 输入设备的助记词。
  • Enter 选择当前设备。

响应如下:

  • 如果输入设备助记词,则 ^%IS 会在 全局变量中找到对应的设备并打开它。
  • 如果输入设备名称,则 会向该设备发出 命令。
  • 如果设备是 IRIS 设备 ,则 ^%IS 会检查设备表,查看该编号是否被重新映射到另一个实际的设备编号。然后 为设备发出 。

其他问题

如果指定的设备是终端,则实用程序会提示您使用默认的右边距。按 键选择该边距或键入其他值。如果程序稍后尝试写入超过指定的右边距,则操作系统会在达到边距时插入“” (回车和换行) 。如果选择的设备不是终端,则实用程序会询问其他类型的次要问题。

例子

0
0 114
文章 姚 鑫 · 一月 14, 2025 2m read

第七十三章 管理设备和助记词空间 - 设备的解释级别

^%ISOPEN 命令一起使用的设备标识符最多要经过三个级别的解释。因此,如果在 ^%ISDevice: 提示符处输入助记词 ,则使用的最终设备 可能会有所不同。下面介绍了这三个级别。

级别 1: 实用工具级别

如果使用 实用程序选择设备,则使用第一级。^%IS 全局中的助记词可以与设备编号相关联。然后,^%IS 实用程序向该设备编号发出 命令。

级别 2: 命令级别

在 命令中,IRIS 会检查此数字是否存在于 表的 列中。如果是这样,它会将其转换为该设备的实际设备号或名称。

注:如果想通过 的助记词访问该设备,请确保不要定义与设备 匹配但与其他设备关联的别名。

定义默认助记词

程序员可以通过在其应用程序中使用 命令来控制设备。例如,当程序员使用以下命令使用 %X364 助记词时,他们可以将光标移动到终端设备上当前行中的特定列:

由助记词的任何特定值引起的操作由 命令使用的助记词空间决定。助记词空间是具有定义设备操作和属性的入口点 (助记词) 的例程。

WRITE 命令使用设备的 或 命令中定义的助记词空间。如果 或 命令不包含助记词空间参数,则 会为设备类型使用默认助记词空间。

预定义的助记词空间

附带预定义的(默认)助记词 。这是 (ANSI) 终端的默认助记词空间。

0
0 104
文章 姚 鑫 · 一月 13, 2025 2m read

第七十二章 管理设备和助记词空间 - 定义设备

定义设备

可以在 Management PortalDevices (设备) 配置设置中定义、编辑和删除设备。您输入的信息存储在 ^%IS 全局变量中。有关此全局的更多信息,请参阅 全局的结构。

如果在 运行时进行设备更改,系统会提示是否要在不重新启动 的情况下激活更改。如果同意激活更改,则新定义将立即提供给用户。

访问设备

Windows 系统上,必须将设备编号用于作业间通信设备和常规联锁设备。对于终端和打印机,可以使用您分配的设备助记词或设备编号。

在 系统上,可以使用 UNIX 文件规范来引用文件,也可以设置设备编号来引用文件。

可以通过以下两种方式之一访问设备:

  • ^%IS 实用程序的 Device: 提示符处输入设备助记词。
  • 发出 命令并输入设备 或别名。

允许用户使用 ^%IS 实用程序选择设备

如果希望基于字符的应用程序的用户以交互方式选择设备,请从应用程序中调用 实用程序。您可以在 允许用户指定设备 中了解有关 实用程序的更多信息。

要使用 实用程序选择设备:

  1. 在 提示符处,输入设备助记词。

预定义的助记词空间

Mnemonic 记忆
0
0 111
文章 姚 鑫 · 一月 12, 2025 2m read

第七十一章 管理设备和助记词空间 - 设备 ID

可以通过数字或操作系统名称来识别设备。可以在 OPEN 命令中使用此标识符。

设备别名

可以为定义的每个 IRIS 设备定义一个或多个别名值。当用户在 OPEN 命令中指定别名时,IRIS 会将其转换为设备 。

提供的默认设备 适用于大多数用户。但是,某些用户可能希望覆盖这些默认值。可以通过在 Management Portal 中提供别名作为设备配置设置的一部分来实现此目的。

默认设备 和助记词

当安装 时,这些是每种设备类型的默认设备编号和助记符。

默认设备编号和助记词

Device 装置 Device ID 设备 ID Mnemonic 记忆 Notes 笔记
Principal 0 TERM 无法更改此设备的设备 ID
Spooler 后台处理程序 2 S POOL

但是,IRIS 还可以识别可用于定义设备的其他设备编号。下表列出了已识别的默认设备编号。

默认设备编号

Device Number 设备编号 Type 类型 Definition 定义
0 主设备 对于交互式流程,这是用户登录的终端。对于 进程,这是 设备(默认情况下)或创建作业床进程的
0
0 141
文章 姚 鑫 · 一月 9, 2025 3m read

第七十章 管理设备和助记词空间

设备管理实用程序

下表总结了用于管理设备的实用程序。

IRIS 设备实用程序

Action 行动 Utility 效用 Description 描述
Define devices 定义设备 管理门户中的设备配置 允许定义用户可以使用 ^%IS 实用程序访问的设备。设备存储在 ^%IS 全局变量中。可以编辑和删除这些设备定义。在 Devices (设备) 子部分中,定义设备,包括助记词和别名。提供默认设备。在 子部分中,定义设备子类型。提供了默认子类型。
定义默认助记词 options in the Management Portal管理门户中的 IO 配置选项 可以使用 命令控制设备。在此面板上,输入 在执行 WRITE /mnemonic 命令时使用的默认助记词的名称,该命令前面没有带有助记词空间规范参数的 或 命令。
Allow users to select a device interactively in character-based applications.允许用户在基于字符的应用程序中以交互方式选择设备。 ^%IS routine 请参阅允许用户指定设备 ()。
0
0 126
文章 姚 鑫 · 一月 9, 2025 2m read

第六十九章 打印机 - 使用助记词空间控制设备

助记词是执行设备控制操作(如光标移动和设备属性)的 IRIS 例程。每个操作都与一个标签相关联。这些标签是 WRITE /mnemonic 命令中使用的助记词。有关 WRITE /mnemonic 语法的更多信息,请参阅本文档其他页面中每种设备类型的 命令说明。

预定义的助记词空间

提供下表中描述的预定义助记词空间。

预定义的助记词空间

Routine Name 例程名称 Device Type Default 设备类型 默认 Description 描述
^%X364 终端、顺序文件、其他设备 X3.64 (ANSI) 端子的助记词空间。有关信息,请参阅 X3.64 的助记词空间。
DTM PC 控制台的助记词空间。有关信息,请参阅 的助记词空间。

设置默认助记词

可以在 Management Portal 中更改以下设备类型的默认助记词空间。依次选择 System Administration、Configuration (配置)、Device Settings (设备设置)、 IO Settings (IO 设置)。这将显示以下内容的助记词:

  • Terminals 终端

  • Sequential files

0
0 96
文章 姚 鑫 · 一月 7, 2025 3m read

第六十八章 打印机 - 在 UNIX® 上指定打印机

要在 UNIX 设备名称为 /dev/tty06 的终端上打开 I/O 设备,请输入以下命令

   OPEN "/dev/tty06"

在 系统上,打印机由 命令上的名称标识,并在 tty 设备上作为“字符特殊”文件处理。因此,支持的 和 命令参数与终端 相同, 而不是顺序文件 的参数。

在 上, 支持大多数终端 I/O 关键字参数,如终端 中所述。

将输出定向到打印机

可以使用 实用程序将输出定向到打印机。可以使用命令 调用 %IS 实用程序。(也可以使用 来指定选择的是仅输出设备。无论哪种情况, 都会返回 提示符。要指定打印机,请使用默认助记符 ““ 或其他已配置打印机的助记符。然后,% 实用程序会建议 参数;对于打印机,默认值为 “” (只写)。可以通过按 键来接受参数 ,如以下示例所示:

%SYS>DO ^%IS
Device: |PRN|
Parameters? "W" => <RETURN>
%SYS>

这将打开指定的打印机作为当前进程的输出设备。

%IS 实用程序设置各种变量。以下是 系统上的打印机默认值。

%IS 设置的变量

Variable 变量 Value 价值 Description 描述
IO ` PRN
IOF # 换页字符。WRITE # 发出表单 feed
0
0 162
文章 姚 鑫 · 一月 5, 2025 2m read

第六十六章 打印机

打印机

本页讨论了如何在 IRIS 数据平台中配置和使用打印设备。打印机是仅物理输出设备。打印机可以是字符打印机,也可以是非字符设备,例如传真或绘图仪。

在大多数情况下,输出不会直接发送到打印机。通常,要打印的输出首先发送到逻辑假脱机设备(^SPOOL 全局)。然后,可以将 ^SPOOL 全局的内容发送到物理打印机。有关假脱机的更多详细信息,请参阅 假脱机设备。

打印机概述

请注意,Windows 和 处理打印机 I/O 的方式不同。

  • Windows 系统将打印机作为顺序 I/O 设备处理,因此遵循与顺序文件 I/O 相同的语法。但是,通过串行通信端口连接的打印机将作为终端 设备处理。
  • 系统始终将打印机作为终端 设备进行处理。 将其视为 设备上的 “字符特殊” 文件,因此遵循与终端 相同的语法。

在 系统上,您可以使用 方法返回系统上当前打印机的计数。您可以使用 方法返回系统上当前打印机的列表。

指定打印机

可以为打印机分配一个介于 和 之间(包括 和 )的设备编号。此设备编号范围也用于终端和平面文件。

在 系统上,可以使用打印机的设备编号或分配的设备助记词来引用打印机。 默认打印机助记词为 .

有两种方法可以指定打印机:

  • 调用 实用程序,它允许您使用 全局中定义的助记符来指定设备。此实用程序将打开设备并设置其参数。
0
0 142
文章 姚 鑫 · 一月 4, 2025 2m read

第六十五章 假脱机设备 - 列出假脱机文档

列出假脱机文档

%SPOOL 实用程序菜单 List documents 的选项 2 显示当前为运行 的目录假脱机的文档列表。如果没有 值,则文档尚未解散(打印)。

每个假脱机文档的描述显示在有关该文档的其余信息之后的一个或多个单独行上。

在以下示例中,用户选择了选项 。显示屏将显示存储在后台处理程序中的两个文档。第一份记录在 月 30 日下午 存储,并于当天下午 打印。第二份于 月 日上午 存储,并于当天上午 打印。

Spool function: 2   List documents

# Name      Lines   Spool start     Despool start-end 
1 SPOOLFILE  1     30 Aug  2:23 pm  30 Aug  2:25 pm- 2:25 pm
  This is my test spool file

3 LONGFILE   1     04 Mar 11:39 am  04 Mar 11:42 am- 11:42 am 
  This is a very long description line that shows you what happens when you
have a long description. It shows you how the text wraps from line to line.
This particular description was made intentionally long, so as to wrap at least
twice.
0
0 84
文章 姚 鑫 · 一月 4, 2025 3m read

第六十四章 假脱机设备 - 使用 %SPOOL 打印

使用 %SPOOL 打印

%SPOOL 实用程序菜单的选项 1 Print(打印)允许您在任何设备上打印 ^SPOOL 全局中的一个或多个文档,继续打印中断的文档,以及将单张纸张手动送入信纸质量打印机。通过将输出发送到后台处理程序,可以在输出设备打印文档时释放终端用于其他用途。

可以在完全创建后台打印文档之前或之后开始打印。如果打印机赶上新输出,则打印过程将暂停 秒钟,然后打印在此期间累积的所有输出。打印过程知道您何时关闭了后台打印文档,并在文档完成时完成。

当 打印文档时,它会跟踪已打印的页面。它还会创建页面索引,以便可以按页码对文档进行排序,并从您选择的任何页面的顶部开始打印。

如果停止打印(例如,在终端输出期间按 Ctrl-c,或者打印机损坏),则可以稍后在最后一个部分打印的页面的顶部或文档中任何其他页面的顶部继续打印。请注意,IRIS 不会将文档开头的换页数计为页数中的页数。

使用术语 来表示打印。仅当文档已打印(depooled)时, 列和描述行中才会有值。

使用 Print 函数

  1. 在 “Spool function:” 提示符下,输入 1
  2. 在“”提示符下,输入 要显示帮助文本,请输入 列出当前命名空间中的所有现有 文档,或输入要打印的 文档的名称。
0
0 106
文章 姚 鑫 · 一月 1, 2025 2m read

第六十二章 假脱机设备 - 查看 ^SPOOL 全局

查看 ^SPOOL 全局

与任何下标的全局变量一样,您可以通过发出 WRITE 命令来显示 spool 文件中的行,如下所示:

   WRITE "1st spool file node: ",^SPOOL(1,1),!

但是,要查看和编辑假脱机文件本身,请转到管理门户并选择 和 Globals。选择您当前的命名空间,找到 SPOOL 全局变量,然后单击 。这将显示类似于以下示例的假脱机文件数据。

在下面的假脱机文件中,() 终止字符结束假脱机文件中的每个节点行。这些终止字符是假脱机文件的一部分,作为 连接到文本字符串( 和 )。

^SPOOL(1,1)=<<"First line of text"_$C(13,10)>>
^SPOOL(1,2)=<<"Second line of text"_$C(13,10)>>
^SPOOL(1,2147483647)={59605,43605{3{

在下面的假脱机文件中,没有行终止字符。两个 命令写入一个 行,该行由关闭 spool 文件终止。

^SPOOL(1,1)=First half of line Second half of line
^SPOOL(1,2147483647)={59605,43725{2{
0
0 136
文章 姚 鑫 · 十二月 31, 2024 2m read

第六十一章 假脱机设备 - 假脱机和特殊变量

写入 ^SPOOL 时,IRIS 会不断更新 $X 并特殊变量。 表示写入当前索引行的字符数, 包含当前 期间写入的行数。请注意, 的值不一定与 索引相同。例如:

   /* Writing to the ^SPOOL global */
   OPEN 2:(2:3)
   USE 2
     WRITE "Hello " SET x1=$X,y1=$Y,z1=$ZA
     WRITE "world",! SET x2=$X,y2=$Y,z2=$ZA
     WRITE "Good to see you",! SET x3=$X,y3=$Y,z3=$ZA
   CLOSE 2

   /* Displaying the ^SPOOL global */
   WRITE ^SPOOL(2,3),^SPOOL(2,4)
   WRITE !,"$X=",x1," ",x2," ",x3
   WRITE !,"$Y=",y1," ",y2," ",y3
   WRITE !,"$ZA=",z1," ",z2," ",z3

在此示例中,第一个 集 (当前列号),第二个和第三个 WRITE 都设置为 (因为行返回)。第一个 设置为 ,第二个 (因为行返回),第三个

0
0 161
文章 姚 鑫 · 十二月 29, 2024 2m read

第六十章 假脱机设备 - WRITE 命令

WRITE 命令

要将一行写入 ^SPOOL 全局变量,请发出 WRITE 命令,以行终止符字符结尾。例如

   /* Writing to the ^SPOOL global */
   OPEN 2 
   USE 2 
     WRITE "First line of text",!
     WRITE "Second line of text",!
   CLOSE 2

   /* Displaying the ^SPOOL global */
   WRITE ^SPOOL(1,1),^SPOOL(1,2)

每行都以行终止符(感叹号)结尾,并存储在单独的全局节点中。

但是,在生成单个打印行时,可能需要使用多个 命令;如果 WRITE 不包含行终止符,则下一个 WRITE 命令将附加到同一打印行。两者都写入同一个全局节点。此行保存在缓冲区中,在发出行终止字符或关闭后台处理程序设备之前,不会写入后台处理程序全局。

0
0 210
文章 姚 鑫 · 十二月 27, 2024 2m read

第五十九章 假脱机设备

介绍

IRIS数据平台使能够将打印输出直接发送到您的打印机或屏幕,或将其保留在后台打印中以供以后打印。IRIS 假脱机独立于您的操作系统执行的假脱机。

IRIS 中的假脱机是一种技术,可让自动将程序的输出保存在 下标全局中,而不是立即打印。可以通过将 ^SPOOL 全局的内容发送到打印机来稍后打印输出。本页介绍使用此假脱机工具的两种方法:使用 命令()或使用 和 实用程序。

打开和使用假脱机设备

要将输出发送到当前命名空间中的 全局变量,请打开 并将其指定为输出设备。

假脱机程序是 IRIS 提供的预定义设备。它在设备表中被分配了设备编号 。此设备号可用于在 、 和 命令中标识后台处理程序设备。

您可以通过 访问后台处理程序设备信息。依次选择 、 (配置)、 (设备设置)、 (设备)。在这里,将找到设备 和名为 的设备。默认情况下,它们都映射到同一物理设备(设备 ),并且具有相同的 值。

当将 假脱机程序设置为当前设备时, 会将发送到设备 2 的任何输出存储在当前命名空间的全局 中。 中的每一行都位于单独的全局节点中。

有两种方法可以打开 后台处理程序并将其设置为当前输出设备:

  • 发出 OPENUS 命令
  • 调用 实用程序

用于假脱机设备的 和 命令

可以通过向该设备发出 和

0
0 174
文章 姚 鑫 · 十二月 25, 2024 2m read

第五十八章 File 输入 输出 - WRITE 命令

WRITE 命令

在定位的 READWRITE 之后,后续的 READ 或 操作将按顺序进行,直到下一个带有 参数的 命令。

命令将数据(一次一条记录)写入作为当前设备的顺序文件。

语法

  • x 变量 x 中的数据将作为一条记录写入顺序文件中。

CLOSE 命令

命令放弃对顺序文件的所有权。

如果指定的文件未打开或不存在,则 将忽略 并返回而不发出错误。

语法

  • file 文件 任何有效的文件规范,用引号括起来。指定的文件必须已打开。在 路径名中,可以使用波形符 (~) 扩展来指示当前用户的主目录。例如: 或 。
  • 关闭并删除具有参数中指定的名称的文件。
  • () 使用参数中指定的名称关闭文件,并将其重命名为 。

命令关键字

下表描述了仅使用 命令控制顺序文件的关键字。

顺序文件的 命令关键字

,除非文件在打开时标记为删除。

对应于 参数代码,该代码指定应删除该文件。对于非零值 , 或 将启用参数代码,对于零值 , 将禁用参数代码。

请勿重命名文件。

对应于 参数 和文件名 参数。 参数代码指定应重命名文件,文件名 参数提供文件的新名称。

0
0 182
文章 姚 鑫 · 十二月 24, 2024 2m read

第五十七章 File 输入 输出 - READ 命令

在定位的 READ 或 之后,后续的 READ 或 操作将按顺序进行,直到下一个带有 参数的 命令。

命令从当前设备读取数据,一次读取一条记录。读取超过文件末尾会导致错误。

语法

  • x 该变量将保存从文件中读取的记录。
  • n 可选 – 对于可变长度读取,为要读取的字符数,指定为整数。对于固定长度的读取,此参数将被忽略。
  • timeout 超时 可选 – 在超时之前等待读取操作完成的秒数。整数值或解析为整数的变量。

参数虽然是可选的,但强烈建议使用,因为如果指定了 ,则 的成功或失败由 特殊变量的值指示。如果读取尝试在超时到期之前成功,则 设置为 ;如果超时到期,则 设置为 。

以下示例显示了从 顺序文件中读取固定长度记录的 操作。它创建一个顺序文件,将数据写入该文件,然后关闭该文件。然后,它会打开此文件以进行 4 个字符的固定长度读取 ()。它将 参数设置为第一条记录(记录 );每个读取操作都会推进此位置。 循环将每个四字符的记录读取到下标变量中。然后, 命令显示所有这些下标局部变量及其值。

示例

以下示例读取固定长度文件的第三、第四和第五条记录:

   SET myfile="FIXED.LEN"
   OPEN myfile:("FR":100)
   USE myfile:2 
   READ var1(3),var1(4),var1(5)
0
0 254
文章 姚 鑫 · 十二月 23, 2024 2m read

第五十六章 File 输入 输出 - USE 命令

US 命令

USE 命令使打开的顺序文件成为当前设备。可以打开多个顺序文件,但一次只能使用一个顺序文件。

语法

USE file:position
  • file 文件

任何有效的文件规范,用引号括起来。指定的文件必须已打开。在 UNIX 路径名中,可以使用波形符 () 扩展来指示当前用户的主目录。例如: 或 。

  • position 位置

可选 — 文件中下一个 或 WRITE 的位置。position 值是一个数字表达式,其含义取决于文件的记录格式。对于固定长度的记录 是相对于零的绝对记录号,其中每条记录都包含在前面的 命令中指定的字符数。对于流或可变长度记录, 是相对于零的绝对字节位置。默认设置是从文件开头开始按顺序读取或写入记录。

可以使用 函数设置文件位置,该位置由字符数相对于顺序文件的开头、当前位置或结尾的偏移量指定。 特殊变量包含从顺序文件开头开始的当前字符计数位置。

命令关键字

除了上面列出的与 共享的命令关键字外, 命令还有自己的一组关键字:

顺序文件的 命令关键字

当前文件位置。(文件指针位置在首次打开文件时位于文件的开头,除非文件是在追加模式下打开的。在这种情况下,文件指针位置位于文件的末尾。

对应于 参数,该参数设置文件中下一个 或

0
0 153
文章 姚 鑫 · 十二月 22, 2024 2m read

第五十五章 File 输入 输出 - 与非 InterSystems IRIS 软件的交互

与非 InterSystems IRIS 软件的交互

Windows 系统上,在 IRIS 中打开顺序文件以进行 “WL” 写入访问通常会阻止非 应用程序打开顺序文件进行写入访问。同样,非 应用程序打开顺序文件进行写入访问通常会阻止 进程并发 写入访问。

但是,某些非 应用程序,包括记事本和写字板应用程序,会打开一个文件,在共享模式下复制文件,然后立即关闭它。因此, 进程仍然可以以 “WL” 模式打开文件。当这些非 应用程序之一尝试将其副本中的更改保存到原始文件,或尝试重新打开原始文件时,将发生错误。更严重的情况可能发生如下:如果这些非 应用程序之一打开了一个文件,然后 打开、修改和关闭文件,然后非 `` 应用程序保存对文件的更改,两个进程所做的更改都被保存,文件数据的完整性可能会受到损害。

在 系统上,在 中打开一个顺序文件以进行 “WL” 写访问通常不会影响非 应用程序的行为。您必须使用锁来可靠地限制来自非 应用程序的写入访问。

示例

以下示例打开文件 的 文件。因为它没有指定 参数,所以默认情况下,它以读取访问权限和 模式打开文件:

  OPEN "LUDWIG.B"
0
0 115
文章 姚 鑫 · 十二月 20, 2024 2m read

第五十四章 File 输入 输出 - OPEN 参数关键字

OPEN 参数关键字

下表描述了顺序文件的 OPEN 命令参数关键字:

顺序文件的 OPEN关键字参数

/PARAMS=str /PAR=str

No defaul

对应于 parameters 位置参数。(它提供了一种以与位置无关的方式指定参数字母代码字符串的方法)。

/RECORDSIZE=int /REC=int

无默认值

对应于 reclen 位置参数,该参数为固定长度记录建立记录大小。(目前仅针对 操作实现。

/TERMINATOR=str /TER=str

无默认值

对应于 terminators 位置参数,该参数建立用户定义的终止符。 是一串用户定义的记录终止符,仅适用于 Stream 模式。它们允许覆盖默认终止符:回车符、换行符和换页符。用户定义的终止符仅适用于输入,它们不会影响数据写入文件的方式(终止符作为特殊字符写入文件)。如果有多个用户定义的终止符,则会将其视为终止符列表,而不是用作单个终止符的多字符序列。

OPEN 模式锁定

当两个进程尝试打开同一个顺序文件时,第二个 会根据第一个 使用的模式成功或失败。下表显示了使用独占 () 和非独占读取和写入模式的两个打开之间的交互。请注意,这些交互的解释取决于平台。为 操作系统和 操作系统提供了表。

在下表中,横轴表示第一个 的打开模式,纵轴表示第二个

0
0 195
文章 姚 鑫 · 十二月 19, 2024 4m read

第五十三章 File 输入 输出 - OPEN模式参数

A /APPEND /APP

Append:WRITE 操作将数据附加到现有文件的末尾。默认设置是覆盖现有数据,而不是 append

S /STREAM

流格式,回车符、换行符或换页符作为默认终止符。S、V、F 和 U 模式是互斥的。 是默认格式。

V /VARIABLE

请勿尝试在可变长度顺序文件末尾以外的任何位置插入记录;WRITE 将使文件中的所有数据从 WRITE 之后的点开始无法访问。 模式是互斥的。流记录 () 格式是默认格式。

使用转换表写入的可变长度记录(例如使用 转换的 数据)可能会导致存储的记录具有与输入数据不同的字符串长度。IRIS 在读取此记录时使用原始输入字符串长度。

F /FIXED /FIX

:每条记录都是 参数中指定的长度。例如:OPEN “myfile”:(“RF”:4) USE “myfile”:0 READ x:5此示例将前 个字符的记录读入变量 。这仅适用于 D 操作(不适用于 操作)。 模式是互斥的。

U /UNDEFINED

未定义的长度:指定文件记录具有未定义的长度,因此 操作必须指定要读取的字符数。最大记录长度在 参数中指定。输出时无翻译。默认值为最大字符串长度 模式是互斥的。

0
0 134
文章 姚 鑫 · 十二月 18, 2024 3m read

第五十二章 File 输入 输出 - OPEN模式参数

OPEN 模式参数

可以通过以下两种方式之一指定 OPEN 模式参数

  • 用引号字符括起来的字母代码字符串,如 “VRWN”。每个字母都指定一个参数。字母代码可以按任何顺序指定;因为 IRIS 按照从左到右的顺序执行它们,所以在某些情况下,字母代码之间的交互可能会决定首选顺序。
  • 一系列 /keyword 参数,未加引号。这些参数用冒号分隔。关键字参数可以按任意顺序指定;因为 IRIS 以从左到右的顺序执行它们,所以在某些情况下,参数之间的交互可能会决定首选顺序。

指定字母代码参数和关键字参数的组合时,请先指定字母代码字符串,然后指定关键字参数,用冒号分隔。以下示例指定三个字母代码参数,后跟两个关键字参数,后跟 reclen 和 timeout 参数。

  OPEN "mytest":("WNS":/OBUFSIZE=65536:/GZIP=0:32767):10

N /NEW

新建文件。如果指定的文件不存在,则系统创建该文件。如果指定的文件已作为 文件存在,则系统会删除旧文件并将其替换为同名的新文件(权限允许)。请注意,应使用文件锁定来防止使用此参数的并发进程覆盖同一文件。

如果未指定 “N” 模式(或 模式),并且在 OPEN 中指定的文件不存在,则 和 默认为不创建新文件。此行为可使用 的 方法进行配置。 类。

0
0 138
文章 姚 鑫 · 十二月 15, 2024 4m read

第五十一章 File 输入 输出 - 文件路径名工具

文件路径名工具

如果当前设备是顺序文件,则$ZIO包含该文件的完整路径名。

可以使用$ZSEARCH返回指定文件或目录的完整文件规范(路径名和文件名)。文件名可能包含通配符, $ZSEARCH使用通配符返回一系列满足通配符的完全限定路径名。

%Library.File 类包含许多提供文件系统服务的方法。这些包括:

  • NormalizeDirectory(),返回指定文件或目录的完整路径名。
  • NormalizeFilenameWithSpaces(),根据主机平台的情况处理路径名中的空格。如果路径名包含空格字符,则路径名处理取决于平台。 Windows 和 允许路径名中包含空格字符,但包含空格的整个路径名必须用一组附加的双引号 字符括起来。这与 语句一致。有关详细信息,请指定在 命令提示符下。

波形符 (~) 扩展

在 路径名中,波形符 () 表示长名称的 压缩。例如: 。要转换压缩目录名称,请使用 类的 方法。

在 路径名中,可以使用波形符 () 扩展来指示当前用户的主目录或指定用户的主目录:

  • 和分别扩展到当前用户的主目录: /Users/techwriter/和 。
  • 扩展到用户“”的主目录: 。但是,如果用户不存在, 会扩展为当前用户的完整目录路径名,并附加作为文字: 。
0
0 181
文章 姚 鑫 · 十二月 14, 2024 4m read

第五十章 File 输入 输出

本页介绍在 IRIS 数据平台中使用顺序文件。

重要:在大多数情况下,可以使用 %Library.File 类提供的 API,而不需要此页面上的详细信息。请参阅使用 %Library.File

介绍

所有操作系统都将磁盘 文件视为顺序文件。 系统将打印机视为顺序文件 I/O 设备(除非打印机通过串行通信端口连接)。 ® 系统将打印机视为终端 I/O` 设备。有关打印机的更多详细信息,请参阅打印机。

本节讨论 如何处理顺序文件。它提供了顺序文件 的介绍以及相关命令的说明。

  • 要访问顺序文件,必须首先使用OPEN命令打开该文件,并提供文件名作为参数。还可以选择指定OPEN模式参数。如果N指定的文件不存在,则模式参数指定是否创建新文件。您可以同时打开多个文件。
  • 打开顺序文件后,必须指定USE命令来访问该文件,并提供文件名作为参数。 命令使指定文件成为当前设备;因此一次只能使用一个文件。 命令还可以指定模式参数。
  • 然后,可以对该文件发出多个或命令。每个或命令都会向文件传送一条记录或从文件传送一条记录。除非使用模式参数打开该文件,否则无法写入该文件。尝试读取超过文件末尾会导致错误。
  • 您可以使用函数设置文件位置,该位置由从连续文件的开头、当前位置或结尾开始的字符计数偏移量指定。
0
0 122
文章 姚 鑫 · 十二月 13, 2024 3m read

第四十九章 终端输入 输出 - 转义序列编程

转义序列编程

转义序列的 ANSI 标准使智能终端的编程变得实用。字符串中转义字符及其后面的所有字符不会显示在屏幕上,但会更新$X$Y 。使用语句将转义序列发送到终端,并通过直接设置$X和$Y来保持它们最新。

标准建立了转义序列的标准语法。特定转义序列的效果取决于使用的终端类型。

每次之后在$ZB中查找传入的转义序列。 IRIS 将 标准转义序列和任何其他使用 形式的转义序列放入中。 可识别两种形式的转义序列:

常规形式

  • An ESC.
  • 可选字符“O”(字母),十进制值 79
  • 零个或多个十进制值为 的字符。
  • 十进制值 的一个字符。

控制形式

  • 字符,十进制值 。
  • 字符,十进制值 。
  • 零个或多个十进制值为 的字符。
  • 零个或多个十进制值为 的字符。
  • 十进制值 的一个字符。

此外,序列不能超过 个字符。违反这些形式或规则的转义序列设置的位 8,其值为 。

示例

假设正在对一个终端进行编程,其帮助键发送两个字符序列 ( ?的十进制值为 )

例程可以检测非标准转义序列,如下所示:

  1. 让成为。
  2. 当ESC出现在中时:
    1. 使用 Secret 协议禁用 echo 以防止修改 $X/$Y
    2. 使用读取序列的其余部分;
    3. 关闭 以重新启用 echo

在下图中,要求用户输入 。如果用户按

0
0 182
文章 姚 鑫 · 十二月 12, 2024 2m read

第四十八章 终端输入 输出 - PRINT 和 ZPRINT 命令

PRINT 和 ZPRINT 命令

将当前加载的 IRIS 例程的一行或多行写入当前设备。

PRINT`具有相同的效果和参数。

语法

PRINT 
ZPRINT 
PRINT x 
ZPRINT x 
PRINT x:y 
ZPRINT x:y
参数 Definition 定义
(none) 不带参数的PRINTZPRINT命令打印整个例程。
x,y 变量和指示要打印的行范围。它们可以是 TAG+OFFSET 形式的行引用,也可以是 形式的行号。引用不在例程中的行意味着例程最后一行后面有空行。 要打印的第一行或唯一一行。 要打印的最后一行。

示例

此示例打印当前例程的第一行、从 INIT 开始的四行以及从 FINI 到结尾的所有行:

INIT
  SET a=1
  SET b=2
  SET c=3
  SET d=4
FINI
  SET x=24
  SET y=25
  SET z=26
  PRINT +1,INIT:INIT+3,FINI:+9999

对终端进行编程

使用 对格式化 CRT 屏幕进行编程

终端 的几个功能有助于对格式化屏幕进行编程:

  • 使用WRITE *轻松发送控制序列。
  • 使用READ接收转义序列响应。
  • 使用表达式和表达式更新当前光标位置。
0
0 207
文章 姚 鑫 · 十二月 11, 2024 2m read

第四十七章 终端输入 输出 - DTM PC 控制台的助记符空间

DTM PC 控制台的助记符空间

IRIS 提供 IRIS 例程 %XDTM 来匹配开发 应用程序时使用的助记符。该助记词空间可用,但未设置为终端默认助记词空间。如果您将为 创建的应用程序移植到 ,可以:

  • 在管理门户中将 ^%XDTM 配置为终端( MnemonicTerminal )的默认助记词空间,或者
  • 在或命令中引用 助记符空间。

DTM 示例

  OPEN "/dev/tty04/"::"^%XDTM"

Windows

  OPEN "c:\sys\user"::"^%XDTM"

然后 可以正确解释WRITE /mnemonic命令中的 控制助记符,如下表所示。

DTM PC 控制台的控制助记符

Mnemonic
0
0 163
文章 姚 鑫 · 十二月 10, 2024 4m read

第四十六章 终端输入 输出 - CLOSE 命令

CLOSE 命令

释放设备的所有权,这是通过OPEN命令获得的。

语法

CLOSE device

终端预定义助记符空间

IRIS 提供了两个预定义的助记符空间供终端使用:

  • ^%X364 用于 ANSI X3.64 终端
  • ^%XDTM 用于 控制台

如果激活这些助记符空间之一,则可以在WRITE /mnemonic命令中使用与它们关联的控制助记符。还可以创建自己的助记符空间。有关助记符空间的更多信息,请参阅使用助记符空间控制设备。

以下部分描述了这些助记符空间的控制助记符。

X3.64的助记符空间

ANSI X3.64 定义提供内置助记符空间。该助记符空间是管理器命名空间中的 IRIS 例程 。要使用例程 ,请执行以下任一操作:

  • IRIS 系统管理员在配置设置中输入 作为默认助记符空间。从管理门户中,选择“系统管理” 、 “配置” 、 “设备设置” 、 “IO 设置” 。
  • 发出指定此助记符空间的命令:

下表列出了助记符。

Calling Sequence 调用顺序 Name System Variable Affected 受影响的系统变量
0
0 186
文章 姚 鑫 · 十二月 9, 2024 3m read

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

WRITE 命令

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

语法

WRITE *variable 
WRITE *-n
WRITE # 
WRITE /mnemonic
参数 定义
(none) 不带参数的WRITE将写入当前设备上的所有局部变量。
*variable WRITE *变量写入一个字符,其十进制值等于x 。对于 字符,变量的值应为 到 范围内的整数;对于 字符,变量的值应为 。按照约定,从 到 的值表示 位 字符,而 到 表示扩展 字符集,与应用程序本身相关。如果硬件和软件设置正确, 可以处理 位数据。示例:您可以使用第八位来表示国际字符集。 例程通常使用来发送设备相关功能的控制字符。示例: 清除终端屏幕。 不会更改或 ;假设输出高度特定于输出设备。
会清除输入缓冲区。它清除等待下一个命令的所有字符。因此,所有预先输入的字符都被清除。
输入缓冲区保存从键盘到达的字符,甚至是您在例程执行命令之前键入的字符。因此,甚至可以在问题出现在屏幕上之前就回答问题。当READ命令从缓冲区获取字符时, IRIS 将它们回显到终端,以便问题和答案一起出现。当例程检测到错误时,它可能会发出来取消这些答案。
立即清除输入缓冲区。它不会等待下一个READ命令。因此,它会清除
0
0 107
文章 姚 鑫 · 十二月 8, 2024 3m read

第四十四章 终端输入 输出 - 特殊协议字符影响终端 I O

特殊协议字符影响终端 I O

每个操作系统都会拦截某些协议字符 (UNIX) 或组合键(例如 Windows 平台上的CTR-ALT-DEL ),以防止这些字符影响 。 控制台不会尝试覆盖这些操作系统特征。

其他特殊字符可以改变例程的执行方式,但不会出现在命令变量中。在图像模式下操作终端会取消这些效果,并使 像对待任何其他字符一样对待这些字符。

READ受输出和输入控制字符的影响。 只是读取除终止字符之外的所有其他控制字符。它不回应他们。

输出控制字符影响例程的流程和输出。下表对此进行了描述:

输出控制字符

输出控制字符 十进制值 定义
Ctrl-C 3 如果启用了中断,则Ctrl-C会中断例程的执行。该例程的行为就像发生错误。如果禁用中断,则Ctrl-C会导致 IRIS 丢弃当前中迄今为止输入的任何内容。可以使用中断需要网络操作的全局模块请求。要捕获 ,请设置特殊变量 。有关其他信息,请参阅有关启用中断的部分。
Ctrl-S 19 暂停到终端的输出。当 遇到Ctrl-Q时,终端输出将恢复。
Ctrl-Q 17 恢复由暂停的输出。

输入控制字符影响输入。图像模式( 协议)将这些字符视为数据,但在正常模式下它们会影响当前READ命令的输入。这些字符的描述如下表所示:

输入控制字符

0
0 105