OpenVMS/Hanzi
用户手册

 

BA322-90016

 

2005 年 5 月

 

本用户手册描述 OpenVMS/Hanzi 软件的基本概念、特性及命令。

 

 

 

修订/更新:

本用户手册取代 OpenVMS/Hanzi V1.5 AXP 的 OpenVMS/Hanzi 用户手册。

软件版本:

OpenVMS/Hanzi I64 Version 8.2

OpenVMS/Hanzi Alpha Version 7.3-2

 

 

 

 

Hewlett-Packard Company

Palo Alto, California

 

© Copyright 2005 Hewlett-Packard Development Company, L.P.

机密计算机软件。必须有 HP 授予的有效许可证,方可拥有、使用或复制本软件。根据供应商的标准商业许可证的规定,美国政府应遵守 FAR 12.211 和 12.212中有关“商业计算机软件”、“计算机软件文档”与“商业货物技术数据”条款的规定。

本文档中的信息如有更改,恕不另行通知。随 HP 产品及服务提供的明示性担保声明中列出了适用于此 HP 产品及服务的专用担保条款。本文中的任何内容均不构成额外的担保。HP 对本文中的技术或编辑错误以及缺漏不负任何责任。

Intel 和 Itanium 是 Intel Corporation 及其子公司在美国及其他国家或地区的商标或注册商标。

Printed in Singapore。

 

序言 viii

第 1 章 简介

第 2 章 DEC 汉字字符集

2.1 综述 2-1

2.2 DEC 汉字码 2-2

2.2.1 代码结构 2-3

2.2.2 汉字码表 2-4

第 3 章 汉字字符终端输入输出支持

3.1 编辑输入字符 3-1

3.2 读校验功能 3-1

3.3 用户定义字符支持 3-2

3.3.1 硬件要求 3-2

3.3.2 LAT/Master 3-2

3.3.3 支持 ODL 所需要的系统设置 3-3

3.3.4 每一设备设置 3-3

3.3.4.1 终端服务器端口设置 3-4

3.3.4.2 用 HANZIGEN 设置终端端口 3-5

3.3.4.3 设置 VT382 终端 3-5

3.3.4.4 设置打印机 3-5

3.3.5 按需装入的限制 3-6

第 4 章 DCL 命令和公用程序

4.1 操作准备 4-1

4.1.1 设置汉字终端 4-1

4.1.2 设置汉字打印机 4-1

4.2 DCL 命令 4-1

4.2.1 命令过程中的变元 4-1

4.2.2 SHOW 中使用汉字 4-2

4.2.3 APPEND、BACKUP、CONVERT、COPY、CREATE 和TYPE 中
使用汉字 4-2

4.2.4 ASSIGN、DEASSIGN 和 DEFINE 中使用汉字 4-2

4.2.5 DIRECTORY 中使用汉字 4-3

4.2.6 MESSAGE 中使用汉字 4-3

4.2.7 OpenVMS HELP 中使用汉字 4-3

4.2.8 READ 和 WRITE 中使用汉字 4-3

4.2.9 REPLY 中使用汉字 4-4

4.2.10 SET 中使用汉字 4-4

4.2.11 SEARCH 中使用汉字 4-4

4.2.12 汉字符号 4-5

4.2.13 命令过程中的标号 4-5

4.3 通用 PostScript 打印子系统 4-5

第 5 章 HANZIGEN 公用程序

5.1 综述 5-1

5.2 启动序列 5-1

5.3 命令概要 5-1

5.3.1 SET 命令 5-1

5.3.1.1 命令格式 5-2

5.3.1.2 SET 命令限制 5-3

5.3.2 SHOW 命令 5-4

5.3.2.1 命令格式 5-4

5.4 命令例子 5-5

5.5 超越一行继续命令 5-6

5.6 注释行支持 5-6

第 6 章 字符管理程序 (CMGR) 公用程序

6.1 综述 6-1

6.2 CMGR 的一般特性 6-1

6.3 使用 CMGR 6-1

第 7 章 SORT 和 MERGE 公用程序

7.1 综述 7-1

7.2 汉字整理序列 7-1

7.3 命令格式 7-2

7.3.1 /KEY 限定词 7-2

7.3.2 /SPECIFICATION 限定词 7-3

7.4 SORT 例子 7-3

7.5 MERGE 例子 7-5

7.6 /SPECIFICATION 例子 7-5

7.7 可调用SORT 和 MERGE 例行程序中的汉字支持 7-6

第 8 章 HMAIL 公用程序

8.1 综述 8-1

8.2 开始 HMAIL 对话期 8-1

8.3 HMAIL 特性 8-1

8.3.1 汉字个人名 8-1

8.3.2 汉字主题名 8-2

8.3.3 汉字文件夹名 8-2

8.3.4 汉字字符串匹配 8-2

8.3.5 汉字整理序列的文件夹名显示 8-3

8.3.6 调用 HTPU 作为默认编辑程序 8-6

8.4 命令概要 8-6

第 9 章 HTPU 和 HEVE 公用程序

9.1 综述 9-1

9.2 使用 HTPU 和 HEVE 9-1

9.3 HTPU 特性 9-3

9.4 HEVE 特性 9-3

第 10 章 HDUMP 公用程序

第 11 章 汉字日期和时间支持

11.1 综述 11-1

11.2 操作准备 11-1

11.3 预定义汉字输出格式 11-1

11.4 预定义汉字语言表 11-2

11.5 选择运行时间汉字输出格式 11-3

11.6 用户定义汉字输出格式 11-3

11.7 选择运行时间汉字输入格式 11-4

11.8 例子 11-4

11.8.1 HMAIL 11-4

11.8.2 DIR 命令 11-5

11.8.3 RTL 日期/时间操纵例行程序 11-6

第 12 章 调试器公用程序

12.1 用户环境设置 12-1

12.1.1 字符单元用户界面 12-1

12.1.2 DECwindows Motif 用户界面 12-2

12.2 调试器命令 12-2

12.2.1 EXAMINE 命令 12-2

12.2.2 DEPOSIT 命令 12-2

附录 A 编程语言

A.1 在 MACRO-32 中使用汉字的例子 A-1

A.2 在 DEC FORTRAN 中使用汉字的例子 A-3

A.3 在 BASIC 中使用汉字的例子 A-4

A.4 在 PASCAL 中使用汉字的例子 A-5

A.5 在 COBOL 中使用汉字的例子 A-6

A.6 在 PL/I 中使用汉字的例子 A-7

A.7 在 DEC C 中使用汉字的例子 A-8

附录 B 处理汉字的编程特性

B.1 HSYSHR B-1

B.1.1 使用可调用 HSYSHR 例行程序的例子 B-1

B.2 HSMGSHR B-7

B.3 SORT 和 MERGE 可调用例行程序 B-7

B.3.1 状态码 B-9

B.3.2 可调用例行程序的接口 B-9

B.3.3 使用可调用 SORT 和 MERGE 例行程序的例子 B-10

B.3.3.1 使用拼音整理序列调用 SORT 例行程序的程序 B-10

B.3.3.2 使用多种整理序列调用 SORT 例行程序的程序 B-11

B.3.3.3 调用 MERGE 例行程序的程序 B-13

B.4 可调用 HTPU 例行程序 B-15

B.4.1 HTPU 可调用例行程序 B-16

B.4.2 样本程序 B-17

 

2-1 DEC 汉字字符集 2-1

2-2 汉字字符的双字节表示法 2-3

2-3 汉字码表 2-4

2-4 DEC GB-2312 汉字字符集 2-5

2-5 扩充 GB 字符集 2-5

 

 

2-1 DEC GB-2312 字符集 2-2

2-2 扩充 GB 字符集 2-2

5-1 /SYSTEM 和 /PERMANENT 限定词的限制概要 5-4

9-1 HEVE 预定义编辑键及其功能 9-2

11-1 预定义输出日期格式 11-2

11-2 预定义输出时间格式 11-2

11-3 汉字语言表 11-3

 

 

 

序言

对象

本用户手册的对象为所有 OpenVMS/Hanzi 系统的用户。

手册结构

本手册包含 11 章及 2 个附录。

手册后面有 2 个附录供对使用软件有经验的用户继续探讨。

常规

本手册使用以下常规:

OpenVMS, VMS

术语 OpenVMS 和 VMS 意指 OpenVMS 操作系统。

OpenVMS/Hanzi

术语 OpenVMS/Hanzi 意指汉字 OpenVMS Alpha 和汉字 OpenVMS I64 操作系统,用于中华人民共和国。

OpenVMS/Hanzi I64

术语 OpenVMS/Hanzi I64 意指汉字 OpenVMS I64 操作系统,用于中华人民共和国。

OpenVMS/Hanzi Alpha

术语 OpenVMS/Hanzi Alpha 意指汉字 OpenVMS Alpha 操作系统,用于中华人民共和国。

Hanzi

世界不同的地方正使用着不同的汉字字符集: 中华人民共和国及新加坡使用简体汉字, 香港及台湾使用繁体汉字, 日本使用 Kanji, 而韩国则使用 Hanja。为针对这复杂的情况并避免混淆, 本手册采用了 "Hanzi"一字来说明所指的简体汉字是由中华人民共和国国家标准信息交换用汉字编码字符基本集 (GB2312-80)所定义的简体汉字。

<RETURN>

回车。

在例子或格式中, 除非另有声明, 否则用户输入的每一行的末尾都出现一个隐含的回车。用户必须在输。

键符号

在例子中,键及键序列都会以符号表示, 如 <PF2> 、CTRL/Z 等。

<CTRL>

CTRL/x 表示用户必须在按住标号为<CTRL> 键的同时按另一个键。例如,CTRL/C、CTRL/Y 及CTRL/O。

.

.

.

纵向省略号表示不展示系统在应答某一命令时要显或者不展示用户输入的所有数据。

...

横向省略号表示可输入附加参数、值或资料。

( )

在格式描述中, 如果选择多个任选项, 则必须将其括在格式描述中。

[ ]

在格式描述中, 凡是括以中括号的项目都可从中选择任何一项、所有项或不予选择。(然而,在赋值语句的子串说明的语法中,括号不是任选的。

{ }

在格式描述时, 大括号括住所需的选择项; 您必须从任选项中选择一项。

有关文献

 

 

 

第 1 章

简介

OpenVMS/Hanzi 在现有的 OpenVMS 软件特性上添加汉字字符处理能力。现在,用户可在各种 OpenVMS/Hanzi 功能下处理 ASCII 及 DEC 汉字码。

OpenVMS/Hanzi 支持以双字节八字位格式表示的中文数据,符合中华人民共和国国家标准信息交换用汉字编码字符基本集(GB-2312-80)。有关 DEC 汉字字符集的详情,请参阅本手册第 2 章。

在 OpenVMS/Hanzi 上, 大部分的 OpenVMS DCL命令都支持汉字字符。有关这些命令的详细介绍,请参阅第 3, 4, 6, 7, 8, 9,10,11 和 12 章。用户也可于多种编程语言写成的程序使用汉字。附录 A 列有多种样本程序供参考。

OpenVMS/Hanzi 提供了许多能够处理汉字字符的公用程序, 例如:

HANZIGEN 公用程序可设置并显示汉字终端类型。它也可提供机制,供用户为公用程序选择语言。

 

 

 

第 2 章

DEC 汉字字符集

本章叙述 DEC 汉字字符集的结构。

2.1 综述

DEC 汉字字符集是包含汉字和非汉字字符的基本字符集, 与 GB-2312-801 兼容。

DEC 汉字字符集分为两部分 -- DEC GB-2312字符集和扩充 GB 字符集, 共有 7,445 个字符及 8,836个字符位。

扩充 GB 字符集是一个扩充区域, 有 8,836 个字符位供用户定义自己的字形,供以后扩充字符集之用。

图 2-1 展示 DEC 汉字字符集的结构。

图2-1 DEC 汉字字符集

 

 

表 2-1 和 2-2 列出 DEC 汉字字符集内各区域的定义。

表2-1 DEC GB-2312 字符集

区域

描述

GB-2312

此处的字符位是按照 GB-2312-80 标准永久地定义的,用户不能变换。

DEC 保留字符位

此处的字符位专供 DEC 使用而保留。

 

表2-2 扩充 GB 字符集

区域

描述

用户定义

用户可在此处的字符位上用 CMGR 公用程序定义自己的字符。

用户定义

(保留)

用户可在此处的字符位上用 CMGR 以及 /RESERVED 限定词定义自己的字符。

 

注意

在扩充 GB 字符集中定义的字符可按需装入汉字打印机。

2.2 DEC 汉字码

DEC 汉字码用双字节表示一个图形字符。为区别汉字码和一般的 ASCII 码, 一个字符的第一字节的最高有效位总是设置为 1,而第二字节的最高有效位则可以是 1 (即字符属于 DEC GB-2312 字符集)或 0(即字符属于扩充 GB 字符集)。

图 2-2 展示一个汉字在 DEC GB-2312 字符集及扩充 GB 字符集中的表示方法。

 

 

图2-2 汉字字符的双字节表示法

 

2.2.1 代码结构

DEC 汉字码符合 GB-2312-80 标准。DEC GB-2312 字符集和扩充 GB 字符集的代码表都划分为 94 个区(节), 编号自 1 至 94。每个区又分为 94 个位,编号也自 1 至 94。

DEC 汉字码的第一字节决定该码的区号,而第二字节则决定该码的位号。此外,第二字节的最高有效位决定该码是属于 DEC GB-2312字符集还是扩充 GB 字符集。

下面两个例子说明在 DEC GB-2312 字符集及扩充 GB 字符集中一个汉字字符的双字节汉字码和区位号的相互关系。通常,区号及位号是十进制的,而双字节汉字码则以十六进制表示。

例子:

1.在 DEC GB-2312 字符集中,

区号 (十进制) = 第一字节 (十六进制) - A0 (十六进制) 和

位号 (十进制) = 第二字节 (十六进制) - A0 (十六进制)

所以, 当 16 = B0 — A0 和

01 = A1 — A0

区号 16、位号 1 就等于 DEC 汉字码 B0A1。

 

2.在扩充 GB 字符集中,

区号 (十进制) = 第一字节 (十六进制) — A0 (十六进制) 和

位号 (十进制) = 第二字节 (十六进制) — 20 (十六进制)

所以, 当 16 = B0 — A0 和

01 = 21 — 20

区号 16、位号 1 就等于 DEC 汉字码 B021。

2.2.2 汉字码表

图 2-3 展示双字节码空间的划分及 DEC 汉字字符集的位置。

图2-3 汉字码表

 

 

注意

斜线区域为 ASCII 控制码的分布位置。DEC 汉字码未分配在斜线区域,目的是使 DEC 汉字码与 ASCII控制码兼容。

 

 

图2-4 DEC GB-2312 汉字字符集

 

 

图2-5 扩充 GB 字符集

 

 

图 2-4 及图 2-5 展示 DEC GB-2312 字符集及扩充 GB字符集如何进一步划分为区。

 

第 3 章

汉字字符终端输入输出支持

OpenVMS/Hanzi 支持下列汉字字符的终端输入和输出特性:

3.1 编辑输入字符

OpenVMS/Hanzi 可支持所有由 OpenVMS 支持的行编辑功能,诸如光标移动、删除、插入、重键以及行绕回。有关完整的支持特性,请参阅 OpenVMS 文献。

终端屏幕上显示的汉字字符占据的位置多于一列。因此, OpenVMS/Hanzi 提供两种操作态进行编辑:

  1. ASCII 字符态

在此态中,在汉字终端上删除键一次删除一列。光标移动键一次移过一列。

这就是 OpenVMS 提供的唯一编辑态。

  1. 汉字字符态

在此态中,删除键一次删除一个字符。光标移动键一次移过一个汉字字符。而删除字键 (CTRL/J) 可删除一个英文字或一串汉字字符。

如果输入行没有完全填满和输入字符太宽无法显示(例如, 行末尾只有一个显示单元 空着,而该输入是一个汉字字符)则这个输入的汉字会被暂存起来为下一次读入要求的数据输入。

HANZIGEN 公用程序用来在这两种编辑态之间进行转换。有关转换态的命令, 请参阅第 5 章《HANZIGEN 公用程序》。

3.2 读校验功能

此特性根据应用程序指定的规则校验输入数据。

应用程序可指定一个用标记分成一个以上的输入区的输入字段。如果 DEC GB-2312 字符集中的汉字字符处于标记定义的界上 (也就是说, 它必须分成两半以 插入不同的区域),它就被视为无效字符。

此特性可用 HANZIGEN 关断。当该应用程序一次读一个字节输入时,

它也可自动关断。

3.3 用户定义字符支持

OpenVMS/Hanzi 可为用户提供 CMGR 公用程序 (请参阅第 6 章《字符管理程序 (CMGR) 公用程序》)建立用户定义字符 (UDC)。这些字符可以用来补充由 OpenVMS/Hanzi 支持的汉字标准定义字符。

为了要在终端或打印机上显示这些字符, OpenVMS/Hanzi支持用于终端输入输出的按需装入 (ODL) 协议。支持 ODL 协议的终端和打印机可自动卸下 UDC 字形数据来显示 UDC。

3.3.1 硬件要求

ODL 的硬件要求如下:

  1. 支持 ODL 协议的汉字终端或汉字打印机包括:
  2. 终端:

VT382-C

  • 打印机:

LA88-C

LA380-C

  1. 带支持 ODL 协议的 LAT 软件的终端服务器。

3.3.2 LAT/Master

LAT/Master 是在 LAT 环境中支持 ODL 所需要的软件,它包括 OpenVMS/Hanzi 上运行的软件和终端服务器上运行的软件。

为了使 ODL 在 LAT 网络上操作, 必须把以下版本的DECserver 软件下行装入对应的服务器单元:

  • DECserver 200 软件 3.0 版本 (或更高)
  • DECserver 300 软件 1.0 版本 (或更高)
  • DECserver 500 软件 2.1 版本 (或更高)
  • DECserver 700 软件 1.0 版本 (或更高)
  • DECserver 90L 软件 1.0 版本 (或更高)
  • DECserver 90TL 软件 1.0 版本 (或更高)

要利用 LAT 能力, 须确保所有装入主机安装了正确的DECserver 软件版本以及该系统运行 OpenVMS。

要了解如何在装入主机上安装 DECserver 软件和把服务器映象下行装入服务器, 请参阅随 DECserver 提供的有关文献。

3.3.3 支持 ODL 所需要的系统设置

ODL 机制要求系统设置伪设备 FHA0: 和 FONT_HANDLER。

系统必须用下列命令配置:

$ RUN SYS$SYSTEM:SYSGEN

SYSGEN> CONNECT FHA0: /NOADAPTER /MAXUNIT=1

SYSGEN> EXIT

$ RUN /DETACH -

/AST_LIMIT=100 -

/PRIORITY=8 -

/PRIVILEGES=(CMKRNL,PHY_IO) -

/PROCESS_NAME="FONT_HANDLER" -

/RESOURCE_WAIT -

/NOSWAPPING -

/UIC=[1,20] -

HSY$SYSTEM:FONTHANDL.EXE

OpenVMS/Hanzi 上的 SYSGEN 命令为字形数据下行装入而装入一个伪设备驱动器并建立一个伪设备 FHA0:。RUN 命令建立一个系统进程 FONT_HANDLER 为终端及打印机的按需装入请求服务。

注意, 这些命令已编辑在 OpenVMS/Hanzi 系统启动命令过 SYS$STARTUP:HSY$STARTUP.COM 中, 因此正常情况下, OpenVMS/Hanzi 系统对 ODL 配置是正确的。

 

3.3.4 每一设备设置

如果设备与终端服务器相连接,则必须恰当地配置终端服务器端口。

对于直接连接或与一个终端服务器相连接的设备,系统中的每个终端端口必须对 ODL进行个别配置。通常,终端端口对 ODL 的默认值为撤销 ODL。HANZIGEN 公用程序用来对个别终端 (参阅用 HANZIGEN 设置终端端口一节) 允许 ODL。终端或打印机也要求设置,以便允许终端或打印机的 ODL 能力。

3.3.4.1 终端服务器端口设置

DECserver 软件中, 为 ODL 支持引入新端口特征 ON-DEMAND [LOADING]。这就使得用户可在每个与汉字终端或汉字打印机相连接的服务器端允许或撤销 ODL 能力。要对一个具体端口允许或撤销 ODL, 则在 Local 态发出下列命令:

Local> {SET|DEFINE} PORT [n] ON-DEMAND [LOADING]

{ENABLED|DISABLED}

例如, 要对端口 3 永久地允许 ODL 能力(即把这些设置存储到永久数据库中), 则发出:

Local> DEFINE PORT 3 ON-DEMAND LOADING ENABLED

注意

要在 DECserver 500中设置永久的特征,则需要在装入主机中执行终端服务器配置程序 (TSC)。

要校验是否已允许 ON-DEMAND [LOADING] 特征, 则在 Local 态发出 LIST PORT CHARACTERISTICS 命令:

Local> LIST PORT CHARACTERISTICS

Port 3: Server: HGD111

Character Size: 8 Input Speed: 9600

Flow Control: XON Output Speed: 9600

Parity: None Modem Control: Disabled

Access: Local Local Switch: None

Backwards Switch: None Name:

Break: Local Session Limit: 4

Forwards Switch: None Type: Soft

Preferred Service: None

Authorized Groups: 0

Enabled Characteristics:

Autobaud, Autoprompt, Broadcast, Input Flow

Control, Loss Notification,Massage Codes, Output

Flow Control, On-Demand Loading, Verification

Local>

3.3.4.2 用 HANZIGEN 设置终端端口

在 OpenVMS/Hanzi 中, 使用 HANZIGEN 在终端端口上允许 ODL。有关使用 HANZIGEN 命令来允许和撤销 ODL 的详情, 请参阅第 5 章《HANZIGEN 公用程序》一章。限定词 "/FONT" 和 "/NOFONT" 在 HANZIGEN 中用来允许或撤销按需装入。按照默认是撤销按需装入。下列命令将对当前终端

$ RUN HSY$SYSTEM:HANZIGEN

HANZIGEN> SET /FONT

要永久地允许 ODL (即在下一次系统再引导前一直有效), 使用下列命令:

$ RUN HSY$SYSTEM:HANZIGEN

HANZIGEN> SET /FONT /PERMANENT

3.3.4.3 设置 VT382 终端

在汉字终端上允许 ODL, 需要进行下列步骤:

  • 对 ODL 设置设备。

按 <F3> 键以进入 "设置目录",然后选择 "终端" 设置并且在 "终端设置" 项目单内允许 ODL。

  • 如果终端与一个服务器端口连接, 则在 "Local>"提示处允许当前端口上的 ON-DEMAND [LOADING]特性。有关详情, 请参阅终端服务器端口设置一节。

Local> SET PORT ON-DEMAND LOADING ENABLED

  • 注册进入 OpenVMS/Hanzi, 使用 HANZIGEN 来允许在终端端口上的 ODL。有关详情, 请参阅用 HANZIGEN 设置终端端口一节。

目前, 只有 VT382 汉字终端具有处理按需装入的能力。

3.3.4.4 设置打印机

在上一个对话期中列出的汉字打印机上允许 ODL, 需要进行下列步骤:

  • 按相应的打印机手册所述, 按需装入设置打印机。
  • 如果打印机与一个服务器端口相连接, 则在 "Local>" 提示处允许该端口上的 ON-DEMAND [LOADING] 特征。有关详情,请参阅终端服务器端口设置一节。
  • 注册进入 OpenVMS/Hanzi, 使用 HANZIGEN 允许在终端端口上的 ODL。有关详情, 请参阅用 HANZIGEN 设置终端端口一节。

HANZIGEN> SET/DEVICE_TYPE=LA380/FONT/PERMANENT LTA100:

  • 如常设置打印机端口和队列。如果打印机与一个终端服务器端口连接,则在初始化打印队列前应调整远程打印队列的超时值 (LAT$SYMTIMEOUT 逻辑名)。用户应在 SYS$MANAGER:LAT$SYSTARTUP.COM 中定义此 LAT$SYMTIMEOUT 逻辑名。 LAT$SYMTIMEOUT 的默认值是 10 分钟。如果超时字符出现於打印表, 建议用一个较 大的 LAT$SYMTIMEOUT 值以免超时。下列命令把 LAT$SYMTIMEOUT 定义为 15 分钟。

$ DEFINE/SYSTEM/EXECUTIVE LAT$SYMTIMEOUT "00:15:00"

3.3.5 按需装入的限制

应该注意, ODL 只在终端处于 NODMA 和 NOPASTHRU 态时才起作用。用户可用下列命令来检验终端是否处于所要求的态:

$ SHOW TERMINAL

如果终端不是处于所要求的态,则可使用下列命令来设置:

  • 把当前终端设置为 NODMA 态

$ SET TERMINAL/NODMA

  • 把当前终端设置为 NOPASTHRU 态

$ SET TERMINAL/NOPASTHRU

 

 

 

第 4 章

DCL 命令和公用程序

本章列出汉字终端及汉字打印机所需的设备特征,并叙述在 DCL 命令及公用程序中如何应用汉字字符。

4.1 操作准备

4.1.1 设置汉字终端

在 OpenVMS/Hanzi 的大部分公用程序中, 您可用 HANZIGEN 公用程序把汉字终端初始化成恰当的设置类型:

HANZIGEN> SET /DEVICE_TYPE=VT382

4.1.2 设置汉字打印机

用户应使用 HANZIGEN 公用程序来初始化汉字打印机,以便具有所需的特征:

HANZIGEN> SET/DEVICE_TYPE=LA380/FONT/PERMANENT LAT100:

4.2 DCL 命令

本节说明在 DCL 命令中如何使用汉字字符。

4.2.1 命令过程中的变元

您可在变元中使用有汉字字符的字符串。例如:

$ TYPE SAMPLE.COM

$ SHOW SYMBOL P1

$ SHOW SYMBOL P2

$ SHOW SYMBOL P3

$ EXIT

$

$ @SAMPLE 参数1 参数2 参数3

P1="参数1"

P2="参数2"

P3="参数3"

$

4.2.2 SHOW 中使用汉字

您可以使用下列 SHOW 命令, 以汉字显示系统资料:

  • $ SHOW USER
  • $ SHOW QUEUE
  • $ SHOW SYSTEM
  • $ SHOW MEMORY
  • $ SHOW DEVICE
  • $ SHOW PROCESS
  • $ SHOW LOGICAL
  • $ SHOW TRANSLATION

与 OpenVMS 求助信息相似, 用户可以应用 HANZIGEN 公用程序来选择英文或汉字信息, 唯 SHOW LOGICAL 及 SHOW TRANSLATION 例外。

4.2.3 APPEND、BACKUP、CONVERT、COPY、CREATE 和TYPE 中使用汉字

用户可在文件中使用汉字数据, 并可在APPEND、BACKUP、CONVERT、COPY、CREATE 和 TYPE命令中包括汉字。例如:

$ CREATE HANZI.DAT

独览梅花扫腊雪

$

$ TYPE HANZI.DAT

独览梅花扫腊雪

$

4.2.4 ASSIGN、DEASSIGN 和 DEFINE 中使用汉字

您可在逻辑名及其等效字符串中使用汉字, 也可于 ASSIGN、DEASSIGN、DEFINE 命令中使用汉字。

您可用 SHOW LOGICAL 和 SHOW TRANSLATION 命令显示由 ASSIGN 和 DEFINE 以汉字字符定义的逻辑名, 而词法功能 F$LOGICAL 则可转换汉字。例如:

$ DEFINE 逻辑名 等效名

$ SHOW LOGICAL 逻辑名

逻辑名="等效名" (PROCESS)

$ _变数=F$LOGICAL("逻辑名")

$ SHOW SYMBOL _变数

_变数 = "等效名"

$

4.2.5 DIRECTORY 中使用汉字

在 DIRECTORY 命令中支持两种语言的系统信息。可用 HANZIGEN 公用程序选择英文或汉字信息。

4.2.6 MESSAGE 中使用汉字

您可在信息文件中的设施字段及文本中使用汉字,但汉字不适用于 ident 字段。

4.2.7 OpenVMS HELP 中使用汉字

您可使用 HELP 命令和 HANZIGEN 公用程序来调用 OpenVMS HELP 设施, 以汉字或英文显示有关 OpenVMS 命令或题目的资料。

注意, 您可使用下列命令直接显示英文求助 (即使您的输出设备设置成 HANZI_MSG):

$ HELP @HELPLIB

此外, 使用下列命令可显示 OpenVMS/Hanzi 特定求助题目:

$ HELP @HSYHLP

4.2.8 READ 和 WRITE 中使用汉字

包含汉字字符的数据可以构成输入和输出文本的一部分。例如:

$ TYPE HANZI.DAT

汉字写读测试 1

$ OPEN/READ INPUT HANZI.DAT

$ OPEN/WRITE OUTPUT HANZI1.DAT

$ READ INPUT REC

$ WRITE OUTPUT REC

$ WRITE OUTPUT "汉字写读测试 2"

$ CLOSE INPUT

$ CLOSE OUTPUT

$ TYPE HANZI1.DAT

汉字写读测试 1

汉字写读测试 2

$

4.2.9 REPLY 中使用汉字

您可在信息文本中使用汉字。例如:

$ REPLY/TERMINAL=TT "REPLY 中混合汉字使用"

Reply received from user SYSTEM at _RTA3:12:34:56.78

REPLY 中混合汉字使用

$

4.2.10 SET 中使用汉字

您可使用汉字指定提示符或在命令描述文件的动词中使用汉字,但汉字不适用于限定词或标号。

4.2.11 SEARCH 中使用汉字

您可在被检索的字符串中使用汉字。例如:

$ TYPE HANZI.DAT

山高月小

古往今来

$

$ SEARCH/HIGHLIGHT=UNDERLINE HANZI.DAT 小

山高月小

$

4.2.12 汉字符号

符号名应以一个英文字母 (包括 _ 及 $) 开始。第二个以及接着的字符可用汉字。要赋值的字符串中亦可使用汉字。例如

$ _变数="汉字数据"

$ SHOW SYMBOL _变数

_变数="汉字数据"

4.2.13 命令过程中的标号

您可在命令过程中用汉字作为标号名, 您可用 GOTO 命令转移到一个汉字标号。

4.3 通用 PostScript 打印子系统

通用 PostScript 打印子系统 (WWPPS) 提供对 Alpha 和 I64 平台上纯文本文件的高质量打印。它能够同时打印包含单字节和多字节亚洲字符的纯文本文件。

要调用这个公用程序,您可以在 DCL 提示下使用以下命令:

$ RUN SYS$SYSTEM:WWPPS

这个公用程序将响应为以下提示:

$ WWPPS>

另外,您可以通过定义以下外部命令简化这个调用:

$ WWPPS := = $SYS$SYSTEM:WWPPS

这里是一个打印纯文本文件的例子:

$ RUN SYS$SYSTEM:WWPPS

WWPPS>PRINT/QUEUE=hp$printer/LOCALE=zh_cn_dechanzi hanzi-text_file.txt

或者简化为:

$ WWPPS PRINT/QUEUE=hp$printer/LOCALE=zh_cn_dechanzi hanzi-text_file.txt

对于 WWPPS 特性的详细描述,请参阅《OpenVMS 用户手册》。

 

 

 

第 5 章

HANZIGEN 公用程序

本章描述 HANZIGEN 公用程序的功能。

5.1 综述

HANZIGEN 公用程序设置及展示汉字终端类型、允许及撤销汉字终端及打印机的按需装入。

HANZIGEN 的 SET 和 SHOW 命令与 DCL 的相似, 但 HANZIGEN 的SET 和 SHOW 命令操纵与汉字终端有关的属性。

5.2 启动序列

键入以下命令来启动 HANZIGEN:

$ RUN HSY$SYSTEM:HANZIGEN

HANZIGEN>

5.3 命令概要

 

SET

设置汉字终端特征,并允许或撤销汉字终端及打印机的按需装入。

SHOW

展示汉字终端属性。

HELP

列出 HANZIGEN 命令。

EXIT

终止 HANZIGEN 并返回 DCL 命令级。

 

5.3.1 SET 命令

SET 命令设置汉字终端类型及允许按需装入。汉字终端类型可以是VT82、VT382、LA84、 LA86、LA88、LA280 或 LA380。要设置汉字终端为 ASCII 特征, 您可指定 VT100 或 VT300_series为设备类型。对于提供英文和汉字求助/出错信息的公用程序,您可使用 SET 命令通过 /OUTPUT任选项选择输出语言。

5.3.1.1 命令格式

SET 的命令格式为:

SET [设备名[ : ]] [/DEVICE_TYPE= 设备类型]

[/INPUT= 输入类型

[/OUTPUT= 输出类型 ]

[/[NO]FONT]

[/PERMANENT]

[/SYSTEM]

其中

设备名

指定连接汉字终端的设备的物理设备名。

/DEVICE_TYPE= 设备类型

指定 HANZIGEN 支持的有效设备类型:

VT82 标识为 VT82汉字终端设备。

VT100 标识为 VT100终端设备。此限定

词可用来以 VT100 终端特征重置

VT82。

VT382 标识为 VT382-CB汉字终端设备。

VT300_series 标识为VT300 系列终端设备。

此限定词可用来以 VT300 系列终端

特征重置 VT382。

LA84 标识为 LA84-C汉字打印设备。

LA86 标识为 LA86-C汉字打印设备。

LA88 标识为 LA88-C汉字打印设备。

LA280 标识为 LA280-CB汉字打印设备。

LA380 标识为 LA380-CB汉字打印设备。

/INPUT=输入类型

设置终端为汉字或 ASCII终端。 输入类型的有效值为:

HANZI 终端能输入汉字,并有汉字终端的

操作特性。

ASCII 终端为标准的 ASCII 终端。

VT82、VT382、LA84、LA86、LA88、LA280及 LA380 的默认输入类型为 HANZI。

/OUTPUT=输出类型

设置终端以显示汉字或 ASCII 信息。输出类型的有效类型值为:

HANZI_MSG 显示汉字信息。

ASCII_MSG 显示 ASCII 信息。

LA84、LA86、LA88、LA280、LA380、VT82 及VT382 的默认输出类型为 HANZI_MSG。

/[NO]FONT

允许按需装入。按需装入从系统字形数据库检索用户定义字形, 并把这些字形传送到 LA84-C、LA86-C、LA88-C、LA280-CB 或 LA380-CB 汉字打印机或 VT382 汉字终端。/[NO]FONT 限定词只与 LA84、LA86、LA88、LA280、LA380 及 VT382 设备类型一同使用。默认是 /NOFONT。

/PERMANENT

指定特征更改为永久性。如果您要设置特征的设备不是自己的设备, 便需要使用这个限定词。/PERMANENT 不能与 /OUTPUT 一起使用。这个限定词要求用户有 PHY_IO 或 LOG_IO 特权。

/SYSTEM

指定特征更改为系统默认。/SYSTEM 只不能与 /DEVICE_TYPE 和 /OUTPUT 一起使用。这个限定词要求用户有 PHY_IO 特权。

5.3.1.2 SET 命令限制

下表概述一系列对 /PERMANENT 和 /SYSTEM 限定词有限制的命令限定词。

 

表5-1 /SYSTEM 和 /PERMANENT 限定词的限制概要

 

/SYSTEM

/PERMANENT

/DEVICE_TYPE

不可并用

可并用

/INPUT

可并用

可并用

/OUTPUT

不可并用

不可并用

/[NO]FONT

可并用

可并用

 

5.3.2 SHOW 命令

SHOW 命令展示汉字终端及打印机特征,显示格式是每种设备占一行,并且具如下字段:

  • 当前 SYS$INPUT 设备的名称
  • 设备类型
  • 允许或不允许按需装入
  • 输入类型 (HANZI 或 ASCII)
  • 输出类型 (HANZI_MSG 或 ASCII_MSG)

在 HANZIGEN 命令级上, VT82 和 VT382

的设备类型将展示为 HANZI_VDU, 而 LA84-C、LA86-C、LA88-C、LA280-CB 和 LA380-CB的设备类型则为 HANZI_PRT。

但是, 在 DCL SHOW 命令上, 已由 HANZIGEN 设置为VT82 或VT382 终端的设备名是 VT80 或 VT300, 而由 HANZIGEN 设置为 LA84、LA86、LA88、LA280 或 LA380 终端的设备名则是 LA84。

5.3.2.1 命令格式

SHOW 的命令格式为:

SHOW [设备名[:]][/ALL][/PERMANENT][/SYSTEM]

其中

 

 

 

 

设备名

指定 HANZIGEN 将显示的物理设备名。

/ALL

显示所有终端设备的特征。这个限定词要求用户有 PHY_IO 和 SHARE 特权。对于非当前设备的那些设备, 输出类型显示则是 "Unknown" (见下面的例子)。

/PERMANENT

显示终端的永久特征。这个限定词要求用户有 PHY_IO 或 LOG_IO 特权。

/SYSTEM

显示系统默认的特征。这个限定词要求用户有 PHY_IO特权。

注意, 在 DCL SHOW 命令中, 由 HANZIGEN 设置为汉字终端的终端设备名为 VT80。

5.4 命令例子

  1. 展示设置为汉字终端的所有终端设备的特征。

HANZIGEN>SHOW

Device Name Type On Demand Input Output

_RTA2: HANZI_VDU DISABLE ASCII HANZI_MSG

HANZIGEN>SHOW/ALL

Device Name Type On Demand Input Output

_OPA0: LA36 DISABLE ASCII Unknown

_RTA1: VT300_Series DISABLE HANZI Unknown

_RTA2: HANZI_VDU DISABLE ASCII HANZI_MSG

_LTA5006: VT200_Series DISABLE HANZI Unknown

_LTA5007: HANZI_VDU DISABLE ASCII Unknown

_LTA5008: HANZI_VDU DISABLE ASCII Unknown

 

Total : 6 Terminals

 

  1. 设置显示汉字信息的 VT382 终端。

$ RUN HSY$SYSTEM:HANZIGEN

HANZIGEN> SHOW

Device name Type On Demand Input Output

_TTA0: VT200_series DISABLE ASCII ASCII_MSG

HANZIGEN> SET /DEVICE_TYPE=VT382

HANZIGEN> SHOW

Device name Type On Demand Input Output

_TTA0: HANZI_VDU DISABLE HANZI HANZI_MSG

 

  1. 设置并展示已允许按需装入的 LA380-C 汉字打印机。

HANZIGEN> SET TXA1: /DEVICE_TYPE=LA380 /PERMANENT /FONT

HANZIGEN> SHOW TXA1:

Device name Type On Demand Input Output

_TXA1: HANZI_PTR ENABLE HANZI Unknown

 

  1. 重置终端为 ASCII 特征并展示之。

HANZIGEN> SHOW TXA2:

Device name Type On Demand Input Output

_TAX2: HANZI_VDU DISABLE HANZI Unknown

HANZIGEN> SET TXA2: /DEVICE_TYPE=VT100 /PERMANENT

HANZIGEN> SHOW TXA2:

Device name Type On Demand Input Output

_TXA2: VT100 DISABLE ASCII Unknown

5.5 超越一行继续命令

如 DCL 命令一样,您可把一个命令串分几行输入。做法是在 HANZIGEN 命令级把连字符 "-" 放在一行之尾。例如:

HANZIGEN> SET TTA0: /DEVICE_TYPE=VT382 -

_HANZIGEN> /PERMANENT

5.6 注释行支持

如 DCL 命令一样, 您可在 HANZIGEN 命令级输入注释行, 做法是在注释前加入感叹号 "!"。例如:

HANZIGEN> ! set tta0 as VT382 as Hanzi terminal

HANZIGEN> SET TTA0:/DEVICE_TYPE=VT382 /PERMANENT

 

 

 

第 6 章

字符管理程序 (CMGR) 公用程序

本章描述字符管理程序 (CMGR) 公用程序的特性。

6.1 综述

字符管理程序 (CMGR) 是一个公用程序,您可用它来建立及管理汉字字符, 特别是用户定义字符 (UDC)。

有关如何使用 CMGR 命令的详情,请参阅《字符管理程序 (CMGR) 用户手册》。

6.2 CMGR 的一般特性

CMGR 提供下列特性:

6.3 使用 CMGR

CMGR 公用程序由一个 DCL 命令调用:

$ CHARACTER_MANAGER

CMGR>

在这个提示处, 用户可以输入 CMGR 命令以执行不同功能。用户也可以从 DCL 级以 "CHARACTER_MANAGER" DCL 命令开头, 调用 CMGR 命令。例如:

$ CHARACTER_MANAGER CMGR_command

命令完成后, 控制送回 DCL。

 

 

 

第 7 章

SORT 和 MERGE 公用程序

本章描述 OpenVMS/Hanzi SORT 和 MERGE 公用程序中提供的汉字处理能力。

7.1 综述

OpenVMS/Hanzi SORT 和 MERGE 公用程序支持包含汉字字符的文件。其功能如下:

7.2 汉字整理序列

OpenVMS/Hanzi 的 SORT 和 MERGE公用程序根据用户所指定的关键字来排列输入文件记录,然后产生一个已排序的输出文件。SORT 和 MERGE可按照下列整理序列来排列汉字数据记录:

RADICAL

把指定的汉字字段以部首序列排序和合并。汉字字符根据 GB-2312-80 标准的部首索引分类和排序。

STROKE

把指定的汉字字段以笔画数序列排序和合并。

PINYIN

把指定的汉字字段以拼音序列排序和合并。汉字字符根据 GB-2312-80 标准的拼音索引分类及排序。

QUWEI

把指定的汉字字段以区位码序列排序和合并。(结果与使用内相同。)

注意: 如果排序键包括的数据既不是有效的 DEC 汉字字符, 又不是 UDC,则系统会给此数据分配一个为零的整理值。

7.3 命令格式

SORT 的命令格式是:

$ SORT[qualifiers]

input-file-specification[qualifiers] -

_$ output-file-specification[qualifiers]

MERGE 的命令格式是:

$ MERGE[qualifiers]

input-file-specifications[qualifiers] -

_$ output-file-specification[qualifiers]

在合并前, MERGE命令里的输入文件必须先以同一种整理序列及同一种次序(升序或降序) 预先排序。MERGE命令所指定的排序次序及整理序列必须与输入文件的相同。

7.3.1 /KEY 限定词

/KEY 限定词定义 SORT 的关键字,在一命令行中最多可出现 255 次。用圆括号把 /KEY 子限定词括起来。

除了在 OpenVMS SORT 和 MERGE 中提供的之外, OpenVMS/Hanzi 的 SORT 和 MERGE 还支持下列子限定词。

CSIZE:n

SORT 或 MERGE 的 CSIZE子限定词只能用于汉字整理序列。n 是 SORT 或 MERGE 关键字的字符数长度。注意, 不能在一个关键字说明中同时指定 CSIZE 和 SIZE。

RADICAL

RADICAL子限定词指定用部首整理序列来把记录排序或合并。

STROKE

STROKE子限定词指定用笔画整理序列来把记录排序或合并。

PINYIN

PINYIN子限定词指定用拼音整理序列来把记录排序或合并。

QUWEI

QUWEI子限定词指定用区位码整理序列来把记录排序或合并。

/KEY 限定词的例子如下:

/KEY=(POSITION:1, CSIZE:5, RADICAL, STROKE)

上例中, RADICAL 是主整理序列; STROKE是次整理序列。 注意, 同时可指定多重汉字整理序列。

7.3.2 /SPECIFICATION 限定词

OpenVMS/Hanzi 的 SORT 和 MERGE提供一个命令限定词,通过该限定词传送一个输入文件说明。说明文件的默认文件类型是.SRT。指定该文件的命令格式如下:

$ SORT/SPECIFICATION=input-specification-file ...

在《OpenVMS User's Manual》中,说明文件的格式和功能有详述。

说明文件中的 /FIELD 限定词用来定义 SORT 或 MERGE 关键字字段,与 /KEY 命令限定词很类似。除了OpenVMS SORT 或 MERGE 公用程序中 /FIELD限定词的所有有效的子限定词外, OpenVMS/Hanzi SORT 和 MERGE 还把下列当作有效子限定词:

  • RADICAL
  • STROKE
  • PINYIN
  • QUWEI

这些表示其相应整理序列的子限定词等于 /KEY命令限定词中相同子限定词。下面是说明文件中 /FIELD限定词的一个例子:

/FIELD=(NAME:Hanzi-field, POSITION:1, SIZE:4, PINYIN)

注意, 在一个 /FIELD 限定词内不能指定多个整理序列。如果要对一个关键字指定几种整理序列,则在说明文件中对同一关键字指定不同整理序列的多个 /FIELD 限定词。

7.4 SORT 例子

  1. 以部首整理序列排序。

$ TYPE POET.DAT

李商隐 !"李"字之部首码 72 ,笔画 07 ,拼音 LI , 区位 3278

白居易 !"白"字之部首码 119,笔画 05 ,拼音 BAI , 区位1655

王维 !"王"字之部首码 70 ,笔画 04 ,拼音 WANG, 区位 4585

李白 !"李"字之部首码 72 ,笔画 07 ,拼音 LI , 区位 3278

孟浩然 !"孟"字之部首码 65 ,笔画 08 ,拼音 MENG, 区位 3547

$

$ SORT/KEY=(POSITION:1,CSIZE:1,RADICAL)POET.DAT RADICAL.DAT

$ TYPE RADICAL.DAT

孟浩然 !"孟"字之部首码 65 ,笔画 08 ,拼音MENG, 区位3547

王维 !"王"字之部首码 70 ,笔画 04 ,拼音WANG, 区位 4585

李白 !"李"字之部首码 72 ,笔画 07 ,拼音LI , 区位 3278

李商隐 !"李"字之部首码 72 ,笔画 07 ,拼音LI , 区位 3278

白居易 !"白"字之部首码 119,笔画 05 ,拼音BAI , 区位 1655

$

  1. 以笔画数整理序列排序, 汉字关键字的长度为 2。

$ SORT/KEY=(POSITION:1,CSIZE:2,STROKE)POET.DAT STROKE.DAT

$ TYPE STROKE.DAT

王维 !"王"字之部首码 70 , 笔画 04 ,拼音 WANG,区位 4585

白居易 !"白"字之部首码 119, 笔画 05 ,拼音 BAI ,区位 1655

李白 !"李"字之部首码 72 , 笔画 07 ,拼音 LI ,区位 3278

李商隐 !"李"字之部首码 72 , 笔画 07 ,拼音 LI ,区位 3278

孟浩然 !"孟"字之部首码 65 , 笔画 08 ,拼音 MENG,区位 3547

$

  1. 以多种整理序列排序。在一个排序操作中,对同一个关键字, 用户可指定多种整理序列。

$ TYPE POET1.DAT

李商隐 !"李"字之部首码 72 ,笔画 07 ,拼音 LI , 区位 3278

白居易 !"白"字之部首码 119,笔画 05 ,拼音 BAI , 区位 1655

王维 !"王"字之部首码 70 ,笔画 04 ,拼音 WANG, 区位 4585

李白 !"李"字之部首码 72 ,笔画 07 ,拼音 LI , 区位 3278

孟浩然 !"孟"字之部首码 65 ,笔画 08 ,拼音 MENG, 区位 3547

杜甫 !"杜"字之部首码 72 ,笔画 07 ,拼音 DU , 区位 2237

$

$ SORT/KEY=(POSITION:1,CSIZE:2,STROKE,QUWEI) -_$ POET1.DAT STRQUWEI.DAT

$ TYPE STRQUWEI.DAT

王维 !"王"字之部首码70 ,笔画 04 ,拼音WANG, 区位 4585

白居易 !"白"字之部首码119,笔画 05 ,拼音BAI , 区位 1655

杜甫 !"杜"字之部首码72 ,笔画 07 ,拼音DU , 区位 2237

李白 !"李"字之部首码72 ,笔画 07 ,拼音LI , 区位 3278

李商隐 !"李"字之部首码72 ,笔画 07 ,拼音LI , 区位 3278

孟浩然 !"孟"字之部首码65 ,笔画 08 ,拼音MENG, 区位 3547

$

7.5 MERGE 例子

以下例子显示两个文件以降序合并起来。

 

7.6 /SPECIFICATION 例子

以下例子显示 /SPECIFICATION 限定词的用法:

 

 

7.7 可调用SORT 和 MERGE 例行程序中的汉字支持

您使用可调用 SORT 和 MERGE例行程序把排序或合并操作加入应用程序中去处理汉字数据记录。这些例行程序OpenVMS 过程调用和条件处理标准的编程语言调用。

有关可调用 SORT 和 MERGE 例行程序的详情,以及这些例行程序如何调用和样本程序, 请参阅附录 B , 在 SORT 和 MERGE 可调用例行程序中的汉字支持。

 

 

第 8 章

HMAIL 公用程序

本章描述 HMAIL 公用程序的特性。

8.1 综述

HMAIL 在 MAIL 公用程序上增加了下述特性:

8.2 开始 HMAIL 对话期

HMAIL 可用 DCL 命令调用:

 

$ HMAIL

HMAIL>

8.3 HMAIL 特性

HMAIL 在 OpenVMS MAIL 公用程序上增加的特性,将会在以下的各节中逐一描述。有关 OpenVMS MAIL 公用程序的特性, 请参阅《OpenVMS User's Manual》。

8.3.1 汉字个人名

HMAIL 让用户可以在个人名中包含汉字字符。例如,用户 TENG 要以汉字个人名发送文件 FILE.TXT 至用户 HANZI::LEE, 可以输入以下命令:

 

HMAIL> send/personal_name="邓立人, 计算机工程部" file.txt

送往: hanzi::lee

主题: 紧急会议

 

在节点 HANZI 上的用户 LEE 会收到以下信息:

 

新邮件到达 HANZI 节点来自 TENG "邓立人,计算机工程部" (15:51:02)

8.3.2 汉字主题名

HMAIL 让用户可以在主题名中包含汉字。以下例子说明如何进行。

 

HMAIL> send file.txt

送往: hanzi::lee

主题: 紧急会议

8.3.3 汉字文件夹名

文件夹名可以包含汉字。以下例子说明如何产生一个汉字名称的文件夹。

 

HMAIL> select mail

%MAIL-I-SELECTED, 选择 5 个信息

 

HMAIL> move/all 会议报告

文件夹 会议报告 不存在

您想建立吗 (Y/N, 默认是 N)? y

%MAIL-I-NEWFOLDER, 文件夹 会议报告 已建立

8.3.4 汉字字符串匹配

在 HMAIL 中, SEARCH 命令的检索字符串和 SELECT、SET FOLDER、DIRECTORY 以及 READ 命令的 /SUBJECT_SUBSTRING 限定词均可使用汉字。例如:

 

 

8.3.5 汉字整理序列的文件夹名显示

在 OpenVMS MAIL 中, 文件夹名只可以按 ASCII 整理序列显示。在 HMAIL 中, 用户可以指定根据汉字整理序列显示文件夹名。DIRECTORY/FOLDER 命令增加了一个新的限定词
/COLLATING_SEQUENCE, 语法如下:

以下规则适用于 /COLLATING_SEQUENCE 这个新的限定词:

  • 此限定词要在 DIRECTORY/FOLDER 命令中指定才有效。
  • 关键字 ASCII 只可单独指定,不可与其他关键字混合。
  • 除 ASCII 外的其他关键字, 都可指定多关键字;提供的第一个关键字是主整理序列,第二个是次整理序列, 依此类推。
  • 重复的关键字不予理会。
  • 指定一个以上的关键字时才需要括号。
  • 如不指定此限定词, 文件夹名就会按 ASCII 序列显示。

以下例子说明这个新限定词的用法:

 

HMAIL> select 会议报告

%MAIL-I-SELECTED, 选择 5 个信息

HMAIL> directory/folder

在 DISK$USER:[USER]MAIL.MAI;1 中的文件夹列表

要取消列表, 可按 CTRL/C

CFMS CRDB

CVMS MAIL

会议报告 会议程序

数据库资料 私人邮件

系统资料 中文邮件

 

HMAIL>directory/folder/collating=(stroke,radical)

在 DISK$USER:[USER]MAIL.MAI;1 中的文件夹列表

要取消列表, 可按 CTRL/C

CFMS CRDB

CVMS MAIL

中文邮件 会议报告

会议程序 私人邮件

系统资料 数据库资料

 

HMAIL> directory/folder/collating=radical

在 DISK$USER:[USER]MAIL.MAI;1 中的文件夹列表

要取消列表, 可按 CTRL/C

CFMS CRDB

CVMS MAIL

中文邮件 系统资料

会议报告 会议程序

数据库资料 私人邮件

 

HMAIL> directory/folder/collating=ascii

在 DISK$USER:[USER]MAIL.MAI;1 中的文件夹列表

要取消列表, 可按 CTRL/C

CFMS CRDB

CVMS MAIL

会议报告 会议程序

数据库资料 私人邮件

系统资料 中文邮件

 

除了文件夹名显示的序列外, 在 /START 限定词中提供的值还会按选择的显示整理序列与文件夹名比较。因此, 您如果指定
/COLLATING=STROKE, 文件夹名的笔画整理值就会进行比较,以决定哪些文件夹名要显示出来。以下例子说明如何进行。

 

HMAIL> directory/folder/collating=stroke/start=记

在 DISK$USER:[USER]MAIL.MAI;1 中的文件夹列表

要取消列表, 可按 CTRL/C

会议报告 会议程序

系统资料 私人邮件

数据库资料

 

HMAIL>directory/folder/collating=radical/start=记

在 DISK$USER:[USER]MAIL.MAI;1 中的文件夹列表

要取消列表, 可按 CTRL/C

数据库资料 私人邮件

 

HMAIL> directory/folder/collating=ascii/start=记

在 DISK$USER:[USER]MAIL.MAI;1 中的文件夹列表

要取消列表, 可按 CTRL/C

数据库资料 私人邮件

系统资料 中文邮件

8.3.6 调用 HTPU 作为默认编辑程序

在 HMAIL 中, 会调用 HTPU 作为默认编辑程序。您可以使用 SET EDITOR 命令设置选择的编辑程序来取代此默认。例如,您可以用以下命令把默认编辑程序设置成其他的编辑程序:

HMAIL> set editor [其他编辑程序]2

8.4 命令概要

下表概述与汉字处理有关的 HMAIL 命令。

命令/限定词

描述

SET PERSONAL_NAME,
/PERSONAL_NAME

用户可使用汉字个人名字。

/SUBJECT

用户可使用汉字主题名。

COPY, DIRECTORY, FILE, MOVE, READ, SELECT, SET/SHOW FOLDER, SET WASTEBASKET

可指定汉字文件夹名。

SEARCH,
/SUBJECT_SUBSTRING

检索字符串中可包含汉字,以找出汉 字字符串。

DIRECTORY/FOLDER
/COLLATING_SEQUENCE

指定文件夹名按汉字整理序列如 QUWEI, RADICAL, STROKE 及PINYIN 显示。

DIRECTORY/FOLDER/START

指定根据当前选择的整理序列要显示的第一个文件夹名。

HELP

如果 HANZIGEN 的终端输出设置是 HANZI_MSG, 便显示汉字求助文本。

 

 

 

第 9 章

HTPU 和 HEVE 公用程序

本章描述 HTPU 和 HEVE 公用程序的特性。

9.1 综述

HTPU 和 HEVE 增强 DECTPU 和 EVE 的功能,可支持汉字文本编辑和 HEDT 功能。这种公用程序既支持字符单元终端 (CCT) 用户接口, 也支持 DECwindows Motif/Hanzi 用户接口。

HTPU/HEVE 以 DECTPU/EVE 为基础, 由两层组成,即 HTPU (Hanzi Text Processing Utility) 及 HEVE (Hanzi Extensible Versatile Editor)。HEVE 通过 HTPU 内设过程调用汉字文本处理的功能。

9.2 使用 HTPU 和 HEVE

要使用 CCT 接口调用 HTPU, 并以 HEVE 作为默认编辑程序, 您可使用以下的命令:

$ EDIT/HTPU TEXT.TXT

您也可以如下定义一个外来命令,从而缩短调用命令:

$ HEVE:== $EDIT/HTPU

要使用 DECwindows Motif/Hanzi 接口调用 HTPU, 并以 HEVE 作为默认编辑程序, 您可使用以下的命令:

$ SET DISPLAY/CREATE/NODE=<您的工作站的节点名>

$ HEVE/DISPLAY=MOTIF TEXT.TXT

TEXT.TXT 是要编辑的文件。

一旦启动 HEVE, 您可按键盘键输入文本。您也可以使用 HEVE 命令和预定义功能键对文本进行编辑。 表 9-1 列出那些预定义功能键。

 

 

 

 

表9-1 HEVE 预定义编辑键及其功能

功能

功能

CTRL/A

转换态
(插入/重写)

<FIND>

寻找指定串

CTRL/B

再调用先前的一个 HEVE 命令

<INSERT_HERE>

把选定范围的文本插入当前光标位置

CTRL/E

把光标移至行尾

<REMOVE>

移去选定范围

CTRL/H

把光标移至行首

<SELECT>

选定文本范围

CTRL/J

擦除当前字

<PREV_SCREEN>

上一个屏幕

CTRL/L

插入分页

<NEXT_SCREEN>

下一个屏幕

CTRL/U

擦除行首

<F10>

退出 HEVE

CTRL/W

刷新屏幕

<F11>

更改方向 (正向或反向)

CTRL/Z

退出 HEVE

<F12>

按行移动光标

<DELETE>

删除前一个字符

<F13>

擦除当前字

上箭头

上移

<F14>

转换态 (插入/重写)

下箭头

下移

 

 

右箭头

右移

 

 

左箭头

左移

 

 

有关 HEVE 及其命令的详情, 可参阅《HEVE 用户手册》, 或在 HEVE 内 按下 <DO> 键, 输入 HELP 命令。

9.3 HTPU 特性

HTPU 提供一套内设过程及可调用的接口,供用户编制汉字编辑程序。您可以仿照 HTPU 默认编辑程序 HEVE, 只运用 HTPU 语言及其内设过程编写编辑程序, 或透过可调用接口在应用程序中调用 HTPU。

较之 DECTPU, HTPU 增强的功能包括:

有关一整套新的或经修改的内设过程的详情,可参阅《HTPU 和 HEVE 用户参考手册》。有关 DECTPU 内设过程的详情,可参阅《DEC Text Processing Utility Reference Manual》。《Guide to the DEC Text Processing Utility》描述 HTPU 语言。

HTPU 可调用接口的详情,可参阅本手册附录 B.4。有关 DECTPU 可调用接口的详情,请参阅《OpenVMS Utility Routines Manual》第 14 章。

9.4 HEVE 特性

HEVE 以 HTPU 语言及内设过程为基础,可以编辑汉字字符及 ASCII 字符。HEVE 支持 EVE 的所有功能3,且有下列扩充功能:

有关 HEVE 专有的命令,可参阅《HTPU 和 HEVE 用户参考手册》。有关 EVE 的命令, 可参阅《Extensible Versatile Editor Reference Manual》。

 

 

第 10 章

HDUMP 公用程序

HDUMP 是 DUMP 的汉字版本, 可以用于显示和打印 DEC 汉字字符集的文件内容, 增强了 DUMP 公用程序。

HDUMP 和 DUMP 的主要区别在于 HDUMP 允许正确显示双字节汉字字符。当一行上只剩下一个字节而接着来的是一个双字 DUMP 便不能进行正确处理, DUMP 只会把该汉字的第一字节放在行末,把第二字节卸出到下一行上, 所以造成错误结果。然而,HDUMP 可把该汉字的第一、第二字节一同移到下一卸出行上,在显示字段的左边线前显示或打印一个 ASCII 字符位。

所有在认可汉字范围外的双字节代码均以句点 (.) 显示或打印。

HDUMP 的命令格式是:

$ HDUMP 文件名

所有的命令限定词均与 DUMP 的相同。

以下是 HDUMP 的一个例子。

 

$ TYPE HANZI.DAT

 

美国DEC计算机有限公司电话: 3-7315211

美国DEC计算机有限公司电话: 3-7315211

 

$ HDUMP/RECORD HANZI.DAT

 

Hdump of file WRKD$:[HANZI.SRC]HANZI.DAT;2 on 4-MAR-1991 15:16:48.94

File ID (3210,43,0) End of file block 1 / Allocated 3

Record number 1 (00000001), 39 (0027) bytes

ABBE3CB C6BCC3A3 C5A3C4A3 FAB9C0C3 美国DEC计算机 000000

2D33BAA3 B0BBE7B5 BECBABB9 DECFD0D3 有限公司电话:3- 000010

313132 35313337 7315211..........000020

Record number 2 (00000002), 36 (0024) bytes

CFD0D3FA BBE3CBC6 BC434544 FAB9C0C3 美国DEC计算机有000000

3133372D 33BAA3B0 BBE7B5BE CBABB9DE 限公司电话:3-731 000010

31313255 5211..........000020

 

 

第 11 章

汉字日期和时间支持

本章描述汉字日期和时间的支持。

11.1 综述

输入输出格式中的汉字日期和时间均受支持。另备有汉字语言表及预定义日期和时间输出格式。系统及用户进程如相应地设汉字日期和时间输出格式可在 DCL 命令 DIR 以及 DCL 公用程序 MAIL 和 HMAIL 中使用。此外,用户在定义自己的用户定义日期和时间输入及输出格式时,可以使用汉字语言表。这些日期和时间输入及输出格式可以由 OpenVMS RTL 的日期和时间操纵例行程序使用。有关日期和时间操纵例行程序及其用法的详述请参阅《VMS RTL Library (LIB$) Manual》。

11.2 操作准备

用汉字日期时间前, 系统经理 (或有 CMEXEC、SYSNAM 和 SYSPRV 特权的用户) 必须执行命令过程 SYS$MANAGER:LIB$DT_STARTUP.COM, 以便为日期时间定义多种输出格式(包括预定义汉字输出格式)。此外,也可定义汉字日期时间单元。命令如下:

$ ! Choose Hanzi as language

$ DEFINE SYS$LANGUAGES HANZI

$ ! Define Hanzi output formats and date and time elements

$ @SYS$MANAGER:LIB$DT_STARTUP.COM

最理想是从 OpenVMS/Hanzi 的 SYSTARTUP_VMS.COM 执行以上命令。

11.3 预定义汉字输出格式

下表展示预定义汉字日期时间输出格式。有关使用的助忆符的描述,请参阅《VMS RTL Library (LIB$) Manual》。

 

 

表11-1 预定义输出日期格式

日期格式逻辑名

格式

例子

LIB$DATE_FORMAT_042

!Y4年!MNB月!DB日

!WAU

1991年11月12日(二)

LIB$DATE_FORMAT_043

!Y4年!MNB月!DB日 !WU

1991年11月12日星期二

 

表11-2 预定义输出时间格式

时间格式逻辑名

格式

例子

LIB$TIME_FORMAT_021

!MIU!HB2时!MB分!SB秒

下午2时16分26秒

 

11.4 预定义汉字语言表

汉字语言表可定义多个逻辑名。这些逻辑名可按 11.6 节的描述在用户定义输出格式中使用。下表列出这些逻辑名以作参考:

 

表11-3 汉字语言表

逻辑名

输出助忆符

等效名

LIB$WEEKDAYS_
[U|L|C]

W[U|L|C]

"星期一", "星期二","星期三","星期四", "星期五","星期六", "星期日"

LIB$WEEKDAY_
ABBREVIATIONS_
[U|L|C]

WA[U|L|C]

"(一)", "(二)", "(三)","(四)","(五)", "(六)", "(日)"

LIB$MONTHS_
[U|L|C],
LIB$MONTHS_ ABBREVIATIONS_
[U|L|C]

MA[U|L|C],
MAA[U|L|C]

"一月", "二月","三月", "四月"," 五月", "六月", "七月", "八月", "九月", "十月","十一月", "十二月"

LIB$MI_
[U|L|C]

MI[U|L|C]

"上午", "下午"

11.5 选择运行时间汉字输出格式

要为日期或时间,或日期和时间两者选择一个特定的汉字格式,用户必须使用 11.3 节定义的逻辑名来定义 LIB$DT_FORMAT 逻辑名。例如:

 

$ DEFINE SYS$LANGUAGES HANZI

$ DEFINE LIB$DT_FORMAT LIB$DATE_FORMAT_042,LIB$TIME_FORMAT_021

 

上述两个逻辑名的次序决定了其输出的次序。上述定义使日期以指定的格式输出日期后是一个空格, 之后是以指定格式表示的时间,如下所示:

1991年11月12日 (二) 下午 2时16分26秒

11.6 用户定义汉字输出格式

用户可使用自己的执行态逻辑名以汉字来定义其个人的输出格式。例如:

 

$ DEFINE/EXEC/TABLE=LNM$DT_FORMAT_TABLELIB$DATE_FORMAT_601 -

_$ "系统时间: !Y4年!MNB月!DB日"

$ DEFINE/EXEC/TABLE=LNM$DT_FORMAT_TABLE LIB$TIME_FORMAT_601 -

_$ "!MIU!HB2时!MB分!SB秒 !WU"

 

定义所要的格式后,用户可以在下列命令中使用这些格式:

 

$ DEFINE SYS$LANGUAGES HANZI

$ DEFINE LIB$DT_FORMAT LIB$DATE_FORMAT_601,LIB$TIME_FORMAT_601

 

产生的汉字日期时间输出如下:

系统时间: 1991年11月12日 下午 2时16分26秒 星期二

11.7 选择运行时间汉字输入格式

要为日期时间输入选择一个特定的汉字格式以供应用,用户必须定义 LIB$DT_INPUT_FORMAT 逻辑名。LIB$DT_INPUT_FORMAT 的等效名可以包含 11.4 节所描述的预定义汉字语言表中的助忆符。

11.8 例子

11.8.1 HMAIL

$ DEFINE SYS$LANGUAGE HANZI

$ DEFINE LIB$DT_FORMAT LIB$DATE_FORMAT_043,LIB$TIME_FORMAT_021