
 
Обработка файла глаголов используются для выполнения различных операций с файлами. Ниже приведены на обработка файла глаголов:
Разрыв цепи на первый файл операция, которая должна быть выполнена. Если открыть, после чего лишь еще больше операций в файл. Только после открытия файла, переменные в структуру файла доступны для обработки. Файл переменной состояния обновляется после каждого файла.
Синтаксис
OPEN "mode" file-name.
Здесь, file-name - строковая константа, которые вы можете использовать, чтобы имя вашего файла. Файл может быть открыт в followin режимы:
| Режим | Описание | 
|---|---|
| Вход | Режим ввода используется для существующих файлов. В этом режиме, мы можем только читать файл, нет никаких других операции на файл. | 
| Выход | Выходной режим используется для вставки записей в файлах. Если последовательный файл и файл - это проведение некоторые записи, а затем существующие записи будут удалены и затем новые записи будет вставлен в файл. Она не произойдет это в случае индексированные файл или относительной файл. | 
| Продлить | Продлить режим используется для добавления записей в последовательный файл. В этом режиме, отчеты вставлены в конце. Если файл имеет режим доступа случайных или динамический, а затем продлить режим не может быть использован. | 
| I-O | Входной/выходной режим используется для чтения и записи записи файла. | 
Читать глагол используется для чтения файла записей. В функции read для выборки из файла. На каждом читать глагол, только одна запись может быть включены в структуру файлов. Для выполнения операции чтения, открыть файл в входной или I-O режим. На каждом читать, указатель файла увеличивается, и поэтому последовательные отчеты.
Ниже синтаксис для чтения записи, если файл имеет режим доступа: РКП
READ file-name NEXT RECORD INTO ws-file-structure AT END DISPLAY 'End of File' NOT AT END DISPLAY 'Record Details:' ws-file-structure END-READ.
Ниже приведены параметры, используемые для:
Следующей записи является дополнительным, и указывается, когда индексированные последовательный файл считывается последовательно.
В является дополнительным. WS-структуры файла определяется в Working-Storage раздел, чтобы получить значения из читать заявление.
В конце условие в конце файла.
ExampleThe следующий пример показывает существующий файл с помощью линия роботизированная организации. Эта программа может быть скомпилирован и выполняется с помощью попробуйте вариант, когда она будет отображаться все записи в файл.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
      FILE-CONTROL.
      SELECT STUDENT ASSIGN TO 'input.txt'
      ORGANIZATION IS LINE SEQUENTIAL.            
DATA DIVISION.
   FILE SECTION.
   FD STUDENT.
   01 STUDENT-FILE.
      05 STUDENT-ID PIC 9(5).
      05 NAME PIC A(25).
   WORKING-STORAGE SECTION.
   01 WS-STUDENT.
      05 WS-STUDENT-ID PIC 9(5).
      05 WS-NAME PIC A(25).
   01 WS-EOF PIC A(1). 
PROCEDURE DIVISION.
   OPEN INPUT STUDENT.
      PERFORM UNTIL WS-EOF='Y'
         READ STUDENT INTO WS-STUDENT
            AT END MOVE 'Y' TO WS-EOF
            NOT AT END DISPLAY WS-STUDENT
         END-READ
      END-PERFORM.
   CLOSE STUDENT.
STOP RUN.
Предположим, что входной файл данных, имеющихся в input.txt содержит следующие:
20003 Mohtashim M. 20004 Nishant Malik 20005 Amitabh Bachhan
При компиляции и выполнения этой программы, она производит следующие результаты:
20003 Mohtashim M. 20004 Nishant Malik 20005 Amitabh Bachhan
Ниже синтаксис на чтение записи когда файл режим доступа является случайным.
READ file-name RECORD INTO ws-file-structure KEY IS rec-key INVALID KEY DISPLAY 'Invalid Key' NOT INVALID KEY DISPLAY 'Record Details: ' ws-file-structure END-READ.
Например, в следующем примере считывает существующий файл с помощью индексированных организации. В рамках этой программы может быть скомпилирован и выполняется с помощью JCL на мейнфреймах где он будет отображать все записи в файл. На мейнфреймах server мы не использовать текстовые файлы; вместо этого мы используем файлы PS.
Предположим, что имеется файл на мейнфреймах, то же содержание, что input.txt в примере выше.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT STUDENT ASSIGN TO IN1
      ORGANIZATION IS INDEXED
      ACCESS IS RANDOM
      RECORD KEY IS STUDENT-ID
      FILE STATUS IS FS.
DATA DIVISION.
   FILE SECTION.
   FD STUDENT.
      01 STUDENT-FILE.
      05 STUDENT-ID PIC 9(5).
      05 NAME PIC A(25).
     
   WORKING-STORAGE SECTION.
   01 WS-STUDENT.
      05 WS-STUDENT-ID PIC 9(5).
      05 WS-NAME PIC A(25).
PROCEDURE DIVISION.
   OPEN INPUT STUDENT.
      MOVE 20005 TO STUDENT-ID.
      
      READ STUDENT RECORD INTO WS-STUDENT-FILE
         KEY IS STUDENT-ID
         INVALID KEY DISPLAY 'Invalid Key'
         NOT INVALID KEY DISPLAY WS-STUDENT-FILE
      END-READ.
      
   CLOSE STUDENT.
STOP RUN.
JCL для выполнения выше COBOL программы:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO //IN1 DD DSN=STUDENT-FILE-NAME,DISP=SHR
При компиляции и выполнения этой программы, она производит следующие результаты:
20005 Amitabh Bachhan
Запись глагол используется для вставки записей в файле. После того, как запись, она больше не будет доступна в буфер записи. Перед тем, как вставлять записи в файле, установите значения в буфер записи и затем выполнить запись глагол.
Напишите заявление может использоваться с с возможностью напрямую писать отчеты из рабочей системы хранения данных переменных. От - дополнительное предложение. Если режим доступа является последовательным, затем запись запись,s файл должен открыть в выходной режим или режим выдвижения. Если режим доступа является случайным или динамической, затем запись запись, файл должен быть открыт в режиме выхода или I-O режим.
Ниже синтаксис для чтение записи при организации файла выполняется последовательно:
WRITE record-buffer [FROM ws-file-structure] END-WRITE.
Ниже синтаксис читать запись при организации файла индексируется или относительной:
WRITE record-buffer [FROM ws-file-structure] INVALID KEY DISPLAY 'Invalid Key' NOT INVALID KEY DISPLAY 'Record Inserted' END-WRITE.
Например:в следующем примере показано, как вставить новую запись в новый файл при организации является последовательным.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT STUDENT ASSIGN TO OUT1
      ORGANIZATION IS SEQUENTIAL
      ACCESS IS SEQUENTIAL
      FILE STATUS IS FS.
DATA DIVISION.
   FILE SECTION.
   FD STUDENT
   01 STUDENT-FILE.
      05 STUDENT-ID PIC 9(5).
      05 NAME PIC A(25).
      05 CLASS PIC X(3).
   WORKING-STORAGE SECTION.
   01 WS-STUDENT.
      05 WS-STUDENT-ID PIC 9(5).
      05 WS-NAME PIC A(25).
      05 WS-CLASS PIC X(3).
PROCEDURE DIVISION.
   OPEN EXTEND STUDENT.
      MOVE 1000 TO STUDENT-ID.
      MOVE 'Tim' TO NAME.
      MOVE '10' TO CLASS.
      WRITE STUDENT-FILE
      END-WRITE.	
   CLOSE STUDENT.
STOP RUN.
JCL для выполнения выше COBOL программы:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO //OUT1 DD DSN=OUTPUT-FILE-NAME,DISP=(NEW,CATALOG,DELETE)
При компиляции и выполнения этой программы, она будет добавить новую запись в выходной файл.
1000 Tim 10
Переписать глагол используется для обновления записей. Файл должен быть открыт в I-O режим для повторной записи операций. Он может использоваться только после успешного завершения операции чтения. Переписать глагол перезаписывает последняя запись читать.
Ниже синтаксис для чтение записи при организации файла выполняется последовательно:
REWRITE record-buffer [FROM ws-file-structure] END-REWRITE.
Ниже синтаксис читать запись при организации файла индексируется или относительной:
REWRITE record-buffer [FROM ws-file-structure] INVALID KEY DISPLAY 'Invalid Key' NOT INVALID KEY DISPLAY 'Record Updated' END-REWRITE.
Например:в следующем примере показано, как обновить существующую запись, которые мы включили в предыдущие записи шаг:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT STUDENT ASSIGN TO IN1
      ORGANIZATION IS INDEXED
      ACCESS IS RANDOM
      RECORD KEY IS STUDENT-ID
      FILE STATUS IS FS.
DATA DIVISION.
   FILE SECTION.
   FD STUDENT
   01 STUDENT-FILE.
      05 STUDENT-ID PIC 9(4).
      05 NAME PIC A(12).
      05 CLASS PIC X(3).
      
   WORKING-STORAGE SECTION.
   01 WS-STUDENT.
      05 WS-STUDENT-ID PIC 9(5).
      05 WS-NAME PIC A(25).
      05 WS-CLASS PIC X(3).
PROCEDURE DIVISION.
   OPEN I-O STUDENT.
   MOVE '1000' TO STUDENT-ID.
  
   READ STUDENT
      KEY IS STUDENT-ID
      INVALID KEY DISPLAY ‘KEY IS NOT EXISTING’
   END-READ.
  
   MOVE 'Tim Dumais' TO NAME.
   REWRITE STUDENT-FILE
   END-REWRITE.
   CLOSE STUDENT.
STOP RUN.
JCL для выполнения выше COBOL программы:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO //IN1 DD DSN=OUTPUT-FILE-NAME,DISP=SHR
При компиляции и выполнения этой программы, она будет обновлять записи:
1000 Tim Dumais 10
Удалить глагол может быть выполнена только на индексируются и относительной файлов. Файл должен быть открыт в I-O режим. В последовательном организация файлов, записей не могут быть удалены. Запись последнего читать, читать удаляется в случае режиме последовательного доступа. В произвольном режиме доступа, укажите ключ записи и затем выполнить операции удаления.
Ниже синтаксис для удаления записи:
DELETE file-name RECORD INVALID KEY DISPLAY 'Invalid Key' NOT INVALID KEY DISPLAY 'Record Deleted' END-DELETE.
Пример, чтобы удалить существующие записи:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT STUDENT ASSIGN TO OUT1
      ORGANIZATION IS INDEXED
      ACCESS IS RANDOM
      RECORD KEY IS STUDENT-ID
      FILE STATUS IS FS.
DATA DIVISION.
   FILE SECTION.
   FD STUDENT
   01 STUDENT-FILE.
      05 STUDENT-ID PIC 9(4).
      05 NAME PIC A(12).
      05 CLASS PIC X(3).
   WORKING-STORAGE SECTION.
   01 WS-STUDENT.
      05 WS-STUDENT-ID PIC 9(5).
      05 WS-NAME PIC A(25).
      05 WS-CLASS PIC X(3).
PROCEDURE DIVISION.
   OPEN I-O STUDENT.
   MOVE '1000' TO STUDENT-ID.
   
   DELETE STUDENT RECORD
      INVALID KEY DISPLAY 'Invalid Key'
      NOT INVALID KEY DISPLAY 'Record Deleted'
   END-DELETE.
   
   CLOSE STUDENT.
STOP RUN.
JCL для выполнения выше COBOL программы:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO //OUT1 DD DSN=OUTPUT-FILE-NAME,DISP=SHR
При компиляции и выполнения этой программы, она производит следующие результаты:
Record Deleted
Запустите глагол может быть выполнена только на индексируются и относительной файлов. Он используется для поместите указатель файла на конкретной записи. Режим доступа должны быть последовательными или динамический. Файл должен быть открыт в I-O или режим ввода.
Ниже синтаксис поместите курсор на конкретной записи:
START file-name KEY IS [=, >, <, NOT, <= or >=] rec-key INVALID KEY DISPLAY 'Invalid Key' NOT INVALID KEY DISPLAY 'File Pointer Updated' END-START.
Закройте глагол используется, чтобы закрыть файл. После выполнения операция закрытия переменные в структуру файла не будет доступна для обработки. Связь между программой и файл будет потеряно.
Ниже синтаксис закрыть файл:
CLOSE file-name.