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