Обработка файла глаголов используются для выполнения различных операций с файлами. Ниже приведены на обработка файла глаголов:
Разрыв цепи на первый файл операция, которая должна быть выполнена. Если открыть, после чего лишь еще больше операций в файл. Только после открытия файла, переменные в структуру файла доступны для обработки. Файл переменной состояния обновляется после каждого файла.
Синтаксис
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.