[an error occurred while processing this directive]
Software  >  OpenVMS Systems > Documentation > 731final > 6489 > hanzi

HP OpenVMS Systems Documentation

Content starts here

OpenVMS �û��ֲ�


ǰҳ Ŀ¼ ����

14.7.3 ��������̷�������

ȫ�ַ��ź��߼���������������̵����ݷ��ظ����ù��̻�� DCL ��������������κ������ȡȫ�ַ��Ż��߼������߼������԰�Ƕ��������̵����ݷ��ظ����ù��̡�

��������չʾ����������ʹ��ȫ�ָ�ֵ��佨����ȫ�ַ��Ŵ���ֵ:


$ @DATA "Paul Cramer"

$ ! DATA.COM
$ !
$ ! P1 is a full name.
$ ! NAME.COM returns the last name in the
$ ! global symbol LAST_NAME.
$ !
$ @NAME 'P1'
       $ ! NAME.COM
       $ ! P1 is a first name
       $ ! P2 is a last name
       $ ! return P2 in the global symbol LAST_NAME
       $ LAST_NAME == P2
       $ EXIT
$ ! write LAST_NAME to the terminal
$ WRITE SYS$OUTPUT "LAST_NAME = ''LAST_NAME'"

LAST_NAME = CRAMER

DATA.COM ����������� NAME.COM��Ϊ NAME.COM ����һ��ȫ����NAME.COM �������շ���ȫ�ַ��� LAST_NAME�� NAME.COM ���ʱ��DCL ����ִ�� DATA.COM��ָ��ȫ�ַ��� LAST_NAME ��ȡ�����ա�������� NAME.COM ������һ�������ļ��С�Ϊ����������������������չʾ��

�������������У�REPORT.COM ���һ��������ļ�����������ļ��������߼��� REPORT_FILE������ִ��һ���ѱ���д�� REPORT_FILE �ij���:



$! Obtain the name of a file and then run 
$! REPORT.EXE to write a report to the file 
$! 
$ INQUIRE FILE "Name of report file" 
$ DEFINE/NOLOG REPORT_FILE 'FILE' 
$ RUN REPORT 

$ EXIT 

�����������У�������� REPORT.COM ����һ�����̵��á����ù���ʹ���߼��� REPORT_FILE �鿴��������ļ���


$! Command procedure that updates data files
$! and optionally prepares reports
$!
$ UPDATE:
   .
   .
   .
$   INQUIRE REPORT "Prepare a report [Y or N]"
$   IF REPORT THEN GOTO REPORT_SEC
$   EXIT
$!
$ REPORT_SEC:
$   @REPORT
$   WRITE SYS$OUTPUT "Report written to ", F$TRNLNM("REPORT_FILE")
$   EXIT

14.7.4 �ض��������Ϣ

���¼�����������ض��������Ϣ��

14.7.4.1 �ض��� SYS$ERROR

����Ĭ�ϣ�������̰�ϵͳ������Ϣ���͵� SYS$ERROR ָ�����ļ������������¶��� SYS$ERROR ��ϵͳ������Ϣָ����һ��ָ�����ļ���Ȼ������� SYS$ERROR �����¶��岻ͬ�� SYS$OUTPUT (��������¶��� SYS$OUTPUT����û�����¶��� SYS$ERROR)����ôʹ�ñ�׼ϵͳ������ʾ���Ƶ� DCL �����ӳ�󽫰�ϵͳ��������ϵͳ���ؼ��ij�����Ϣ���͵� SYS$ERROR �� SYS$OUTPUT����ˣ��������ν��յ���Щ��Ϣ --- һ������ SYS$ERROR ����ָ�����ļ��У�����һ������ SYS$OUTPUT ָ�����ļ��С��ɹ���֪ͨ�;��漶����Ϣֻ���͵� SYS$OUTPUT ָ�����ļ��������Ҫ���� DCL �����ϵͳ������Ϣ��Ҫȷ�� SYS$ERROR �� SYS$OUTPUT �����ܵ�ͬ���նˡ�

����������������һ���Լ���ӳ���Ҹ�ӳ������ SYS$ERROR����ô��ӳ���ϵͳ������Ϣֻ���͵� SYS$ERROR ָ�����ļ� --- ��ʹ SYS$ERROR ��ͬ�� SYS$OUTPUT������Щ�ļ���ͬʱ��ֻ��ʹ�ñ�׼ϵͳ������ʾ���Ƶ� DCL �����ӳ��Ű���Ϣͬʱ���͵� SYS$ERROR �� SYS$OUTPUT��

���������̽���Ŀ¼����Ϊ��������Ĭ�����õ����Ŀ¼��Ȼ��������Ŀ¼�е��ļ���Ϊ������ϵͳ������Ϣ�����������ʱ�� SYS$ERROR �� SYS$OUTPUT ����Ϊ���豸:


$ ! Purge files in a directory and suppress messages
$ !
$ SET DEFAULT 'P1'
$ ! Suppress messages
$ !
$ DEFINE/USER_MODE SYS$ERROR NL:
$ DEFINE/USER_MODE SYS$OUTPUT NL:
$ PURGE
$ EXIT

14.7.4.2 ����ϵͳ������Ϣ

Ҳ����ʹ�� SET MESSAGE ��������ϵͳ��Ϣ��ʹ���޶��� /NOFACILITY��/NOIDENTIFICATION��/NOSEVERITY �� /NOTEXT������������ʩ������Ϣ��ʶ�����ؼ�����Ϣ�ı���

�����������У���ʩ����ʶ�������Ժ��ı���Ϣ����ʱ���ƣ�ֱ�������ڶ��� SET MESSAGE ����:


$ ! Purge files in a directory and suppress system messages
$ !
$ SET DEFAULT 'P1'
$ ! Suppress system messages
$ !
$ SET MESSAGE/NOFACILITY -
             /NOIDENTIFICATION -
             /NOSEVERITY -
             /NOTEXT
$ PURGE
$ SET MESSAGE/FACILITY -
             /IDENTIFICATION -
             /SEVERITY
             /TEXT
$ EXIT

14.8 ��ȡ��д���ļ� (�ļ� I/O)

��������̶�ȡ��д���ļ��Ļ���������:

���� ����
1 ʹ�� OPEN ������ļ���

�⽫��һ���߼�����ֵ������ļ�������ָ���ļ��Ƿ��Ƕ�ȡ��д����ȡ��д�����ߡ������� READ��WRITE �� CLOSE ����ʹ������߼������鿴�ļ���

2 ʹ�� READ �� WRITE ����Ѽ�¼��ȡ��д�뵽�ļ���

������������ļ��ķ���ͨ�������һ��ѭ������ѭ���ڶ�ȡ��¼��������¼���Ұ��޸ĵļ�¼д�뵽ͬһ�ļ�����һ���ļ���

3 ʹ�� CLOSE ����ر��ļ���

�����û�а��� CLOSE ����ļ��ͱ��ִ򿪣�ֱ��ע��Ϊֹ��

ע��

����ע��ʱϵͳ������̲�����ļ����� SYS$INPUT��SYS$OUTPUT��SYS$COMMAND �� SYS$ERROR�����������Ϊ��ȡ��д�����Ƕ���ȷ�ش���Щ�ļ���

���¼�������:

  • ʹ�� OPEN ����
  • д���ļ�
  • ʹ�� WRITE ����
  • ʹ�� READ ����
  • ʹ�ùر�����
  • �޸��ļ�
    • ���¼�¼
    • �����µ�����ļ�
    • Ϊ�ļ����Ӽ�¼

14.9 ʹ�� OPEN ����

OPEN �����˳����Ի�����˳���ļ������򿪵��ļ�������̲���ģ������Ľ����ڼ䣬���DZ��ִ򿪣���������ȷ�عر����� (ʹ�� CLOSE ����)���ڴ��ļ�ʱ�������ܵ� OpenVMS RMS ��ʹ������̲����ļ���Լ����

���ļ�ʱ��OPEN �����һ���߼��� (ָ��Ϊ��һ������) ���������ļ� (ָ��Ϊ�ڶ�������)������������Ʒ�������߼������������� READ��WRITE �� CLOSE ����ʹ������߼�����������ļ���

�����������У�OPEN ������߼��� INFILE ������ļ� DISK4:[MURPHY]STATS.DAT:


$ OPEN/READ INFILE DISK4:[MURPHY]STATS.DAT

ע��

OPEN �����е��߼�������Ψһ����� OPEN ��������ã��������������ƺ�����ȷ�ģ���ô���� OPEN �����е��߼�����Ҫ��ʾһ���߼������壬��ʹ�� SHOW LOGICAL ���

Ҫȷ��������̿��Դ�ȡ��ȷ���ļ���ʹ�������ļ�˵�� (���磬DISK4:[MURPHY]STATS.DAT) �����ڴ��ļ�֮ǰʹ�� SET DEFAULT ����ָ���ʵ����豸��Ŀ¼��

��Ҳ����ָ���ɹ������ļ���/SHARE �޶������������Ѵ򿪵��ļ������⣬�û������� DCL ���� TYPE �� SEARCH ��ȡ�ɹ������ļ���

OPEN/READ ������ļ��������߼���������ļ������Ѽ�¼ָ��������ļ��Ŀ�ʼ�����ļ���ȡʱ�����Զ�ȡ���Dz���д���¼��ÿ������ȡһ����¼��ָ���ƶ�����һ����¼��

�������������У�OPEN/READ ������ļ� STATS.DAT����Ϊ����ļ������߼��� INFILE:


$   OPEN/READ INFILE DISK4:[MURPHY]STATS.DAT
$ READ_FILE:
$   READ/END_OF_FILE=DONE INFILE DATA
$   GOTO READ_FILE
$ DONE:
$   CLOSE INFILE
$   EXIT

������Ҫд�����ļ�ʱ��ʹ�� OPEN/WRITE ���OPEN/WRITE �����ӡ�ļ���ʽ����˳���ļ�������ļ��ļ�¼��ʽ�ǿɱ�ģ����̶��Ŀ��� (VFC) �� 2 �ֽڼ�¼��ͷ��/WRITE �޶��ʲ����� /APPEND �޶���һ��ʹ�á�

���ָ��һ���Ѿ����ڵ��ļ�����ô OPEN/WRITE �����һ�����ļ�����汾�ű������ļ��� 1 ������

�����������е�������̽���һ������д������ļ� (NAMES.DAT):


$   OPEN/WRITE OUTFILE DISK4:[MURPHY]NAMES.DAT
$ UPDATE:
$   INQUIRE NEW_RECORD "Enter name"
$   WRITE OUTFILE NEW_RECORD
$   IF NEW_RECORD .EQS. "" THEN GOTO EXIT_CODE
$   GOTO UPDATE
$ EXIT_CODE:
$   CLOSE OUTFILE
$   EXIT

OPEN/APPEND ����Ѽ�¼���ӵ������ļ���ĩ�ˡ�������Դ�һ�������ڵ��ļ����ǾͲ���һ�����󣬲��Ҳ�������ļ���/APPEND �޶��ʲ����� /WRITE �޶���һ��ʹ�á�

�����������У���¼�����ӵ������ļ� NAMES.DAT ��ĩ��:


$ OPEN/APPEND OUTFILE DISK4:[MURPHY]NAMES.DAT
$ INQUIRE NEW_RECORD "Enter name"
$ WRITE OUTFILE NEW_RECORD
   .
   .
   .
$ CLOSE OUTFILE

OPEN/READ/WRITE ����Ѽ�¼ָ��������ļ��Ŀ�ʼ��������Զ�ȡ��һ����¼����ʹ������������ļ�ʱ��ֻ�����滻�����ȡ�ļ�¼������д���µļ�¼���ļ�β�����⣬�����ļ�¼�������滻�ļ�¼��ͬ���Ĵ�С��

�����������У���¼ָ��������ļ� STATS.DAT �Ŀ�ʼ��������Զ�ȡ��һ����¼:


$ OPEN/READ/WRITE FILE DISK4:[MURPHY]STATS.DAT

14.10 д���ļ�

Ҫд���ļ���ʹ�����¹���:

���� ����
1 ���ļ��Ա�д�롣
2 ��һ����ſ�ʼд��ѭ����

�ļ� I/O ������һ��ѭ������ɣ�������д����ȡ������¼��

3 ��ȡҪд������ݡ�

ʹ�� INQUIRE ����� READ ��������ݶ���һ�����š�

4 �������ݡ�

���������ݵķ��š�����������Ϊ�� (���磬������� Return ������������û����������)���͵���д���ļ����ݵ�ĩ�ˣ�����Ӧ�ý���ѭ�������򣬼�����

5 ������д���ļ���

ʹ�� WRITE ����ѷ��ŵ�ֵ (һ����¼) д���ļ���

6 ���ص�ѭ���Ŀ�ʼ��

��������ѭ���ڣ�ֱ��û�и��������д���ļ���

7 ����ѭ�����ر��ļ���

����������̰�����д�����ļ� STATS.DAT�����������Ƶ��ļ����ڣ��ͽ���һ���°汾��


$ ! Write a file
$ ON ERROR THEN EXIT                         ! Exit if the command
$ !                                          !   procedure cannot
$ !                                          !   open the file
$ OPEN/WRITE IN_FILE DISK4:[MURPHY]STATS.DAT ! Open the file
$ ON CONTROL_Y THEN GOTO END_WRITE           ! Close the file if you
$ !                                          !   quit execution with
$ !                                          !   Ctrl/Y
$ ON ERROR THEN GOTO END_WRITE               ! Close the file if an
$ !                                          !   error occurs
$WRITE:                                      ! Begin the loop
$ INQUIRE STUFF "Input data"                 ! Prompt for input
$ IF STUFF .EQS. "" THEN GOTO END_WRITE      ! Test for the end of
$ !                                          !   the file
$ WRITE IN_FILE STUFF                        ! Write to the file
$ GOTO WRITE                                 ! Go to the beginning
$END_WRITE:                                  ! End the loop
$ !                                          !
$ CLOSE IN_FILE                              ! Close the file

14.10.1 ʹ��Ψһ�ļ��������ļ�

Ҫ��Ψһ�������ļ���ʹ�� F$SEARCH �ʷ������ɲ鿴��������Ƿ��Ѿ���Ŀ¼�С�(�й� F$SEARCH �����飬����� OpenVMS DCL Dictionary �Դʷ�������������)

������������ʾ�û�����һ���ļ�����Ȼ��ʹ�� F$SEARCH �ʷ�������Ĭ��Ŀ¼������������ơ�����Ѿ�����������Ƶ��ļ�����ѿ��ƴ��ݵ� ERROR_1��������̴�ӡ��Ϣ "The file already exists"�����ѿ��Ʒ��ص���� GET_NAME��Ȼ�����������ʾ������һ���ļ�����������������ʾ:


$ ! FILES.COM
$ !
$GET_NAME:
$ INQUIRE FILE "File"           ! Prompt the user for a file name
$ IF F$SEARCH (FILE) .NES. ""   ! Make sure the file name is unique
$ THEN
$    WRITE SYS$OUTPUT "The file already exists"
$    GOTO GET_NAME
$ ELSE
$    OPEN/WRITE IN_FILE 'FILE'  ! Open the file with WRITE access
$ ENDIF
   .
   .
   .
$ EXIT

14.11 ʹ�� WRITE ����

���¼����������ʹ�� WRITE ���

14.11.1 ָ������

����Ϊ WRITE ����ָ������ʱ����ѭ�� 12 ���������ַ�������ʽ���򡣿��԰����·���ָ������:

  • ָ�����ַ�������ʽд�����ݡ�WRITE �����Զ��滻���źʹʷ�������
  • ��Ϊ�����ַ�����һ���ַ���д������ļ���WRITE ������������ŵ��ַ�����ִ�з����滻��
  • ��������ַ����ͷ�������Ҫǿ�Ʒ����滻���������ַ������������ڣ��������������֮ǰʹ��˫ʡ�Ժű�ʶ����������֮�����һ����ʡ�Ժš�
    ��������ַ����ͷ���������һ�������ǣ����������֮ǰ��֮�����һ�����ţ���������ס����ķ��ţ�Ȼ��������ַ������������ڡ�����:


    $ WRITE OUTFILE "Count is ",COUNT,"."
    
  • �� WRITE ��������ʹ��ʡ�Ժ�ǿ�Ʒ����滻��
  • ʹ��ʡ�Ժ�ǿ�����ַ����ڵķ����滻���ɽ�������ַ����ʹʷ�������

����


$! Define symbols
$!
$ CREATED = "File created April 15, 2002"
$ COUNT = 4
$ P4 = "fourth parameter"
$!
$! Open the file DATA.OUT for writing
$!
$ OPEN/WRITE OUTFILE DISK4:[MURPHY]DATA.OUT
$!
$ WRITE OUTFILE CREATED                 (1)
$ WRITE OUTFILE "CREATED"               (2)
$!
$ WRITE OUTFILE "Count is ''COUNT'."    (3)
$ WRITE OUTFILE P'COUNT'                (4)
$!
$ WRITE OUTFILE "Mode is ''f$mode()'"   (5)
$!
$ CLOSE OUTFILE


$ TYPE DISK4:[MURPHY]DATA.OUT [Return]   (6)
File created April 15, 2002
CREATED
Count is 4.
fourth parameter
Mode is INTERACTIVE
$

����������ʱ��ע�����¼���:

  1. ָ��������Ϊ�ַ�������ʽд�롣
  2. ���ַ��� CREATED ��Ϊ�����ַ���д������ļ���
  3. ��������ַ����ͷ����� ��
  4. �� WRITE ��������ʹ��ʡ�Ժ�ǿ�Ʒ����滻������������У�WRITE �����滻���� COUNT ��ֵ�����ڽ����� (P4)ִ�з����滻��
  5. ��������ַ����ʹʷ�������
  6. ��ʾ����ǰ�� WRITE ����д������ļ� DATA.OUT �����ݡ�

14.11.2 ʹ�� /SYMBOL �޶���

�� WRITE ����д��һ����¼ʱ�����Ѽ�¼ָ�붨λ�ڸղ�д��ļ�¼֮��WRITE ����д��ļ�¼���Զ�� 2,048 ���ֽڳ���

���������������һ����������ʹ�� /SYMBOL �޶���д���¼:

  • ��¼���ȱ� 1,024 ���ֽ�Ҫ����
  • �� WRITE �����еı���ʽ�� 255 ���ֽ�Ҫ����

�й�д�볤��¼�����飬����� OpenVMS DCL Dictionary �� WRITE �����������

14.11.3 ʹ�� /UPDATE �޶���

������ʹ�ô� /UPDATE �޶��ʵ� WRITE ������ļ�¼�������Dz����¼�¼��Ҫʹ�� /UPDATE �޶��ʣ�������ļ�����ȡ��д�롣

14.12 ʹ�� READ ����

ʹ�� READ �����ȡ��¼�������������ݸ�ֵ��һ�����š�������ʹ�� READ �����ȡС�ڻ���� 1,024 ���ַ����ļ�¼��Ҫ��һ���ļ��ж�ȡ���ݣ�ʹ�����¹���:

���� ����
1 Ϊ��ȡ���ļ���
2 ��һ����ſ�ʼ��ȡѭ����

�ļ� I/O ������ѭ������ɣ���������ȡ��д�뵥����¼��

3 ������ļ���ȡ���ݡ�

ʹ�ô� /END_OF_FILE �޶��ʵ� READ �����ȡ��¼�������������ݸ�ֵ��һ�����š��������ļ�βʱ��/END_OF_FILE �޶���ʹ DCL �ѿ��ƴ��ݸ� /END_OF_FILE �޶���ָ���ı�š�һ�㣬��ָ����Ƕ�ȡѭ�������ı�š�

4 �������ݡ�

˳��ض�ȡ�ļ�ʱ��������ǰ��¼Ȼ���ȡ��һ����¼��

5 ���ص�ѭ���Ŀ�ʼ��

������ѭ���ڣ�ֱ���ﵽ�ļ�β��

6 ����ѭ�����ر��ļ���

����������̶�ȡ�ʹ����ļ� STATS.DAT �е�ÿ����¼����������ظ���ִ�� READ ���ֱ�������ļ�����״̬��Ȼ���������ת�Ƶ����Ϊ END_READ ���С�


$ OPEN/READ INFILE DISK4:[MURPHY]STATS.DAT  !Open the file
$ !
$READ_DATA:                                 !Begin the loop
$ READ/END_OF_FILE=END_READ INFILE RECORD   !Read a record; test for
$                                           !  end of file
$                                           ! Process the data
   .
   .
   .
$ GOTO READ_DATA                            !Go to the beginning
$                                           !   of the loop
$END_READ:                                  !End of loop
$ CLOSE INFILE                              !Close the file
$ EXIT

Ϊ READ ����ָ��һ��������ʱ��������ͳ����������������ڵ�ǰ����ľֲ����ű������Ϊһ������ READ ����ʹ��ͬһ����������ôÿ�� READ �������¶��������������ֵ�����磬������������У�ÿ��ѭ��ʱ��READ ����������ļ� (STATS.DAT) ��ȡ�¼�¼��Ȼ����ʹ�������¼���¶������ RECORD ��ֵ��

14.12.1 ʹ�� /END_OF_FILE �޶���

����ȡ�ļ�ʱ��ͨ������ȡ������ÿ����¼��ֱ���ļ�β��ʹ�� READ ����� /END_OF_FILE �޶��ʿ��Թ���һ��ѭ������ѭ���д��ļ���ȡ��¼��������¼���ҵ���ɶ�ȡ���м�¼ʱ�˳�ѭ����

ע�⣬Ϊ /END_OF_FILE �޶���ָ���ı���� GOTO ����ָ���ı����ѭͬ���Ĺ���(�й�ʹ�� GOTO ��������飬������� 13 ����)

��ѭ����ʹ�� READ ����ʱ����Ӧ������ʹ�� /END_OF_FILE �޶��ʡ����򣬵� OPENVMS ��¼�������� (OpenVMS RMS) ����ָ���ļ������ij�������ʱ��������ͳ����ִ�е�ǰ ON ����ָ���ij������������磬OpenVMS RMS ���س���״̬ %RMS-E-EOF�����ʹ��������˳���������������ѽ����Լ��ij���������


ǰҳ ��ҳ Ŀ¼ ����