COBOL - Obsługa strun
Instrukcje obsługi ciągów w języku COBOL służą do wykonywania wielu operacji funkcjonalnych na łańcuchach. Poniżej znajdują się instrukcje obsługi ciągów -
- Inspect
- String
- Unstring
Sprawdzać
Czasownik sprawdzania służy do liczenia lub zastępowania znaków w ciągu. Operacje na łańcuchach mogą być wykonywane na wartościach alfanumerycznych, numerycznych lub alfabetycznych. Operacje kontrolne są wykonywane od lewej do prawej. Opcje używane do operacji na łańcuchach są następujące -
Tallying
Opcja Tallying służy do liczenia znaków ciągu.
Syntax
Poniżej znajduje się składnia opcji Tallying -
INSPECT input-string
TALLYING output-count FOR ALL CHARACTERS
Używane parametry to -
- ciąg-wejściowy - ciąg, którego znaki mają być liczone.
- output-count - pozycja danych do przechowywania liczby znaków.
Example
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-CNT1 PIC 9(2) VALUE 0.
01 WS-CNT2 PIC 9(2) VALUE 0.
01 WS-STRING PIC X(15) VALUE 'ABCDACDADEAAAFF'.
PROCEDURE DIVISION.
INSPECT WS-STRING TALLYING WS-CNT1 FOR CHARACTER.
DISPLAY "WS-CNT1 : "WS-CNT1.
INSPECT WS-STRING TALLYING WS-CNT2 FOR ALL 'A'.
DISPLAY "WS-CNT2 : "WS-CNT2
STOP RUN.
JCL aby wykonać powyższy program w języku COBOL.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik -
WS-CNT1 : 15
WS-CNT2 : 06
Wymiana
Opcja zamiany służy do zamiany znaków ciągu.
Syntax
Poniżej znajduje się składnia opcji Zastąpienie -
INSPECT input-string REPLACING ALL char1 BY char2.
Użyty parametr to -
input-string - ciąg, którego znaki mają zostać zastąpione ze znaku1 na znak2.
Example
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STRING PIC X(15) VALUE 'ABCDACDADEAAAFF'.
PROCEDURE DIVISION.
DISPLAY "OLD STRING : "WS-STRING.
INSPECT WS-STRING REPLACING ALL 'A' BY 'X'.
DISPLAY "NEW STRING : "WS-STRING.
STOP RUN.
JCL aby wykonać powyższy program w języku COBOL.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik -
OLD STRING : ABCDACDADEAAAFF
NEW STRING : XBCDXCDXDEXXXFF
Strunowy
Czasownik typu string służy do łączenia ciągów. Za pomocą instrukcji STRING można połączyć dwa lub więcej ciągów znaków, aby utworzyć dłuższy ciąg. Klauzula „Ograniczone przez” jest obowiązkowa.
Syntax
Poniżej znajduje się składnia czasownika typu String -
STRING ws-string1 DELIMITED BY SPACE
ws-string2 DELIMITED BY SIZE
INTO ws-destination-string
WITH POINTER ws-count
ON OVERFLOW DISPLAY message1
NOT ON OVERFLOW DISPLAY message2
END-STRING.
Poniżej znajdują się szczegóły użytych parametrów -
- ws-string1 i ws-string2: ciągi wejściowe do konkatenacji
- ws-string: ciąg wyjściowy
- ws-count: służy do liczenia długości nowego połączonego ciągu
- Rozdzielany określa koniec łańcucha
- Wskaźnik i przepełnienie są opcjonalne
Example
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STRING PIC A(30).
01 WS-STR1 PIC A(15) VALUE 'Tutorialspoint'.
01 WS-STR2 PIC A(7) VALUE 'Welcome'.
01 WS-STR3 PIC A(7) VALUE 'To AND'.
01 WS-COUNT PIC 99 VALUE 1.
PROCEDURE DIVISION.
STRING WS-STR2 DELIMITED BY SIZE
WS-STR3 DELIMITED BY SPACE
WS-STR1 DELIMITED BY SIZE
INTO WS-STRING
WITH POINTER WS-COUNT
ON OVERFLOW DISPLAY 'OVERFLOW!'
END-STRING.
DISPLAY 'WS-STRING : 'WS-STRING.
DISPLAY 'WS-COUNT : 'WS-COUNT.
STOP RUN.
JCL aby wykonać powyższy program w języku COBOL -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik -
WS-STRING : WelcomeToTutorialspoint
WS-COUNT : 25
Odsznurować
Czasownik uwalniający jest używany do dzielenia jednego ciągu na wiele podciągów. Klauzula ograniczona przez jest obowiązkowa.
Syntax
Poniżej znajduje się składnia czasownika Unstring -
UNSTRING ws-string DELIMITED BY SPACE
INTO ws-str1, ws-str2
WITH POINTER ws-count
ON OVERFLOW DISPLAY message
NOT ON OVERFLOW DISPLAY message
END-UNSTRING.
Example
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STRING PIC A(30) VALUE 'WELCOME TO TUTORIALSPOINT'.
01 WS-STR1 PIC A(7).
01 WS-STR2 PIC A(2).
01 WS-STR3 PIC A(15).
01 WS-COUNT PIC 99 VALUE 1.
PROCEDURE DIVISION.
UNSTRING WS-STRING DELIMITED BY SPACE
INTO WS-STR1, WS-STR2, WS-STR3
END-UNSTRING.
DISPLAY 'WS-STR1 : 'WS-STR1.
DISPLAY 'WS-STR2 : 'WS-STR2.
DISPLAY 'WS-STR3 : 'WS-STR3.
STOP RUN.
JCL aby wykonać powyższy program w języku COBOL -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik -
WS-STR1 : WELCOME
WS-STR2 : TO
WS-STR3 : TUTORIALSPOINT