MainframeMaster

COBOL Tutorial

COBOL TEXT - Quick Reference

Progress0 of 0 lessons

Overview

The TEXT feature in COBOL provides comprehensive text processing and string manipulation capabilities. It enables programs to handle text data efficiently, manipulate strings, parse text content, and perform various text-based operations.

Purpose and Usage

  • Text processing - Handle and manipulate text data
  • String manipulation - Concatenate, split, and modify strings
  • Text parsing - Extract and analyze text content
  • Text formatting - Format text for display and output
  • Text validation - Validate text content and format

TEXT vs Standard Alphanumeric Operations

Standard: Basic alphanumeric handling
TEXT: Specialized text processing and manipulation
Result: Enhanced text processing capabilities

TEXT provides specialized text processing capabilities beyond basic alphanumeric operations.

Syntax and Usage

TEXT operations are implemented in the PROCEDURE DIVISION using specialized constructs for text processing, string manipulation, and text-based operations.

Basic TEXT Syntax

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
* Basic TEXT syntax examples PROCEDURE DIVISION. * String concatenation STRING FIRST-NAME DELIMITED BY SPACE " " DELIMITED BY SIZE LAST-NAME DELIMITED BY SPACE INTO FULL-NAME * String parsing UNSTRING INPUT-TEXT DELIMITED BY "," INTO FIELD1 FIELD2 FIELD3 * Text inspection and replacement INSPECT TEXT-FIELD REPLACING ALL "OLD" BY "NEW" * Text formatting MOVE FUNCTION TRIM(TEXT-INPUT) TO FORMATTED-TEXT * Text validation IF TEXT-FIELD IS ALPHABETIC PERFORM PROCESS-TEXT END-IF * Text searching INSPECT TEXT-FIELD TALLYING COUNT FOR ALL "SEARCH-TERM"

Basic TEXT operations for string manipulation and text processing.

Complete TEXT Program Example

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
* Complete COBOL program demonstrating TEXT usage IDENTIFICATION DIVISION. PROGRAM-ID. TEXT-DEMO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. WORKING-STORAGE SECTION. 01 TEXT-DATA. 05 INPUT-TEXT PIC X(100). 05 OUTPUT-TEXT PIC X(100). 05 PARSED-FIELDS. 10 FIELD1 PIC X(30). 10 FIELD2 PIC X(30). 10 FIELD3 PIC X(30). 01 TEXT-STATISTICS. 05 CHAR-COUNT PIC 9(3). 05 WORD-COUNT PIC 9(3). 05 LINE-COUNT PIC 9(3). 01 TEXT-OPERATIONS. 05 SEARCH-TERM PIC X(20). 05 REPLACE-TERM PIC X(20). PROCEDURE DIVISION. MAIN-LOGIC. PERFORM INITIALIZE-TEXT-PROCESSING PERFORM PROCESS-TEXT-DATA PERFORM ANALYZE-TEXT PERFORM FORMAT-TEXT-OUTPUT STOP RUN. INITIALIZE-TEXT-PROCESSING. MOVE "Hello,World,COBOL" TO INPUT-TEXT MOVE "Hello" TO SEARCH-TERM MOVE "Hi" TO REPLACE-TERM. PROCESS-TEXT-DATA. * Parse comma-separated text UNSTRING INPUT-TEXT DELIMITED BY "," INTO FIELD1 FIELD2 FIELD3 * Replace text content INSPECT INPUT-TEXT REPLACING ALL SEARCH-TERM BY REPLACE-TERM * Concatenate processed text STRING FIELD1 DELIMITED BY SPACE " " DELIMITED BY SIZE FIELD2 DELIMITED BY SPACE " " DELIMITED BY SIZE FIELD3 DELIMITED BY SPACE INTO OUTPUT-TEXT. ANALYZE-TEXT. * Count characters MOVE FUNCTION LENGTH(INPUT-TEXT) TO CHAR-COUNT * Count words (simplified) INSPECT INPUT-TEXT TALLYING WORD-COUNT FOR ALL " " ADD 1 TO WORD-COUNT * Count lines (simplified) INSPECT INPUT-TEXT TALLYING LINE-COUNT FOR ALL "." ADD 1 TO LINE-COUNT. FORMAT-TEXT-OUTPUT. * Format output text MOVE FUNCTION TRIM(OUTPUT-TEXT) TO OUTPUT-TEXT * Display results DISPLAY "Original Text: " INPUT-TEXT DISPLAY "Processed Text: " OUTPUT-TEXT DISPLAY "Character Count: " CHAR-COUNT DISPLAY "Word Count: " WORD-COUNT DISPLAY "Line Count: " LINE-COUNT.

The program demonstrates comprehensive text processing capabilities.

Advanced TEXT Usage

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
* Advanced TEXT usage with complex text processing PROCEDURE DIVISION. ADVANCED-TEXT-OPERATIONS. PERFORM COMPLEX-TEXT-PARSING PERFORM TEXT-TRANSFORMATION PERFORM TEXT-VALIDATION PERFORM TEXT-FORMATTING. COMPLEX-TEXT-PARSING. * Parse complex text structure UNSTRING COMPLEX-TEXT DELIMITED BY "|" INTO PARSED-FIELD1 PARSED-FIELD2 PARSED-FIELD3 WITH POINTER PARSE-POINTER ON OVERFLOW PERFORM HANDLE-PARSE-ERROR NOT ON OVERFLOW PERFORM CONTINUE-PARSING. TEXT-TRANSFORMATION. * Transform text case MOVE FUNCTION UPPER-CASE(INPUT-TEXT) TO UPPER-TEXT MOVE FUNCTION LOWER-CASE(INPUT-TEXT) TO LOWER-TEXT * Replace multiple patterns INSPECT TRANSFORM-TEXT REPLACING ALL "PATTERN1" BY "REPLACEMENT1" INSPECT TRANSFORM-TEXT REPLACING ALL "PATTERN2" BY "REPLACEMENT2" INSPECT TRANSFORM-TEXT REPLACING ALL "PATTERN3" BY "REPLACEMENT3". TEXT-VALIDATION. * Validate text format IF TEXT-TO-VALIDATE IS ALPHABETIC MOVE 'VALID' TO VALIDATION-STATUS ELSE IF TEXT-TO-VALIDATE IS NUMERIC MOVE 'VALID' TO VALIDATION-STATUS ELSE MOVE 'INVALID' TO VALIDATION-STATUS END-IF * Check text length IF FUNCTION LENGTH(TEXT-TO-VALIDATE) > MAX-LENGTH MOVE 'TOO-LONG' TO VALIDATION-STATUS END-IF. TEXT-FORMATTING. * Format text for output MOVE FUNCTION TRIM(UNFORMATTED-TEXT) TO FORMATTED-TEXT * Add formatting characters STRING "[" DELIMITED BY SIZE FORMATTED-TEXT DELIMITED BY SPACE "]" DELIMITED BY SIZE INTO FINAL-TEXT. HANDLE-PARSE-ERROR. DISPLAY "Error: Text parsing failed" MOVE 'ERROR' TO PARSE-STATUS. CONTINUE-PARSING. DISPLAY "Text parsing completed successfully" MOVE 'SUCCESS' TO PARSE-STATUS.

Advanced TEXT usage with complex text processing and validation.

Common Use Cases

TEXT is essential in various scenarios where text processing, string manipulation, and text-based applications are required.

Text Parsing Applications

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
* Text parsing application using TEXT IDENTIFICATION DIVISION. PROGRAM-ID. TEXT-PARSER. DATA DIVISION. WORKING-STORAGE SECTION. 01 PARSING-DATA. 05 CSV-LINE PIC X(200). 05 PARSED-FIELDS. 10 FIELD OCCURS 10 TIMES PIC X(50). 05 FIELD-COUNT PIC 9(2). 01 PARSING-CONTROL. 05 DELIMITER PIC X VALUE ",". 05 PARSE-POINTER PIC 9(3). PROCEDURE DIVISION. MAIN-LOGIC. PERFORM INITIALIZE-PARSER PERFORM PARSE-CSV-DATA PERFORM PROCESS-PARSED-FIELDS STOP RUN. INITIALIZE-PARSER. MOVE "Name,Age,City,Occupation,Salary" TO CSV-LINE MOVE ZERO TO FIELD-COUNT. PARSE-CSV-DATA. * Parse CSV line into fields UNSTRING CSV-LINE DELIMITED BY DELIMITER INTO FIELD(1) FIELD(2) FIELD(3) FIELD(4) FIELD(5) WITH POINTER PARSE-POINTER TALLYING IN FIELD-COUNT ON OVERFLOW PERFORM HANDLE-PARSE-OVERFLOW NOT ON OVERFLOW PERFORM CONTINUE-PROCESSING. PROCESS-PARSED-FIELDS. * Process each parsed field PERFORM VARYING I FROM 1 BY 1 UNTIL I > FIELD-COUNT PERFORM PROCESS-INDIVIDUAL-FIELD END-PERFORM. PROCESS-INDIVIDUAL-FIELD. * Clean and format individual field MOVE FUNCTION TRIM(FIELD(I)) TO FIELD(I) * Display processed field DISPLAY "Field " I ": " FIELD(I). HANDLE-PARSE-OVERFLOW. DISPLAY "Warning: Parse overflow occurred" DISPLAY "Parsed " FIELD-COUNT " fields". CONTINUE-PROCESSING. DISPLAY "Successfully parsed " FIELD-COUNT " fields".

Text parsing applications use TEXT for structured data extraction.

Report Formatting

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
* Report formatting using TEXT IDENTIFICATION DIVISION. PROGRAM-ID. REPORT-FORMATTER. DATA DIVISION. WORKING-STORAGE SECTION. 01 REPORT-DATA. 05 REPORT-TITLE PIC X(50). 05 REPORT-DATE PIC X(10). 05 REPORT-HEADER PIC X(100). 05 REPORT-LINE PIC X(100). 01 FORMATTING-CONTROL. 05 LINE-WIDTH PIC 9(3) VALUE 80. 05 MARGIN-SIZE PIC 9(2) VALUE 5. PROCEDURE DIVISION. MAIN-LOGIC. PERFORM FORMAT-REPORT-HEADER PERFORM FORMAT-REPORT-CONTENT PERFORM FORMAT-REPORT-FOOTER STOP RUN. FORMAT-REPORT-HEADER. * Format report title MOVE "Monthly Sales Report" TO REPORT-TITLE MOVE FUNCTION CURRENT-DATE TO REPORT-DATE * Create formatted header STRING REPORT-TITLE DELIMITED BY SPACE " - " DELIMITED BY SIZE REPORT-DATE DELIMITED BY SPACE INTO REPORT-HEADER * Center the header PERFORM CENTER-TEXT DISPLAY REPORT-HEADER. FORMAT-REPORT-CONTENT. * Format report content lines MOVE "Sales data for the current month" TO REPORT-LINE PERFORM FORMAT-LINE DISPLAY REPORT-LINE MOVE "Total sales: $1,234,567" TO REPORT-LINE PERFORM FORMAT-LINE DISPLAY REPORT-LINE. FORMAT-REPORT-FOOTER. * Format report footer MOVE "End of Report" TO REPORT-LINE PERFORM CENTER-TEXT DISPLAY REPORT-LINE. FORMAT-LINE. * Add margin to line STRING SPACES DELIMITED BY SIZE REPORT-LINE DELIMITED BY SPACE INTO FORMATTED-LINE. CENTER-TEXT. * Center text within line width COMPUTE CENTER-POSITION = (LINE-WIDTH - FUNCTION LENGTH(REPORT-LINE)) / 2 MOVE SPACES TO CENTERED-TEXT STRING SPACES DELIMITED BY SIZE REPORT-LINE DELIMITED BY SPACE INTO CENTERED-TEXT WITH POINTER CENTER-POSITION.

Report formatting uses TEXT for structured output presentation.

Text Processing Applications

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
* Text processing application using TEXT IDENTIFICATION DIVISION. PROGRAM-ID. TEXT-PROCESSOR. DATA DIVISION. WORKING-STORAGE SECTION. 01 PROCESSING-DATA. 05 INPUT-TEXT PIC X(500). 05 PROCESSED-TEXT PIC X(500). 05 WORD-COUNT PIC 9(3). 05 CHAR-COUNT PIC 9(3). 01 PROCESSING-CONTROL. 05 SEARCH-WORD PIC X(20). 05 REPLACE-WORD PIC X(20). 05 PROCESS-STATUS PIC X(10). PROCEDURE DIVISION. MAIN-LOGIC. PERFORM INITIALIZE-PROCESSOR PERFORM PROCESS-TEXT-CONTENT PERFORM ANALYZE-TEXT-STATISTICS PERFORM DISPLAY-PROCESSING-RESULTS STOP RUN. INITIALIZE-PROCESSOR. MOVE "This is a sample text for processing" TO INPUT-TEXT MOVE "sample" TO SEARCH-WORD MOVE "example" TO REPLACE-WORD. PROCESS-TEXT-CONTENT. * Copy input text to processed text MOVE INPUT-TEXT TO PROCESSED-TEXT * Replace words in text INSPECT PROCESSED-TEXT REPLACING ALL SEARCH-WORD BY REPLACE-WORD * Convert to uppercase MOVE FUNCTION UPPER-CASE(PROCESSED-TEXT) TO PROCESSED-TEXT * Trim whitespace MOVE FUNCTION TRIM(PROCESSED-TEXT) TO PROCESSED-TEXT. ANALYZE-TEXT-STATISTICS. * Count characters MOVE FUNCTION LENGTH(PROCESSED-TEXT) TO CHAR-COUNT * Count words (simplified) INSPECT PROCESSED-TEXT TALLYING WORD-COUNT FOR ALL " " ADD 1 TO WORD-COUNT. DISPLAY-PROCESSING-RESULTS. DISPLAY "=== TEXT PROCESSING RESULTS ===" DISPLAY "Original Text: " INPUT-TEXT DISPLAY "Processed Text: " PROCESSED-TEXT DISPLAY "Character Count: " CHAR-COUNT DISPLAY "Word Count: " WORD-COUNT DISPLAY "Processing Status: " PROCESS-STATUS.

Text processing applications use TEXT for content manipulation and analysis.

Best Practices and Tips

Following these best practices ensures effective use of TEXT in COBOL applications for better text processing and performance.

TEXT Best Practices

  • Design efficient text processing algorithms - Optimize for large text data
  • Implement proper text validation - Validate text content and format
  • Use appropriate text formatting - Ensure readability and proper output
  • Handle text encoding properly - Manage character sets and encoding issues
  • Optimize text processing performance - Use efficient algorithms and techniques
  • Document text processing logic - Maintain clear documentation of text operations

Text Processing Techniques

TechniquePurposeExample
String ConcatenationCombine multiple stringsSTRING A B INTO C
String ParsingSplit strings by delimitersUNSTRING TEXT DELIMITED BY ","
Text ReplacementReplace text patternsINSPECT TEXT REPLACING ALL "OLD" BY "NEW"
Text SearchingFind text patternsINSPECT TEXT TALLYING COUNT FOR ALL "PATTERN"
Text FormattingFormat text for outputFUNCTION TRIM(TEXT)
Case ConversionConvert text caseFUNCTION UPPER-CASE(TEXT)

Performance Considerations

  • Efficient algorithms - Use optimized text processing algorithms
  • Memory management - Manage memory usage for large text data
  • Batch processing - Process text in batches for large datasets
  • Caching strategies - Cache frequently used text operations
  • Error handling - Implement robust error handling for text operations
  • Resource optimization - Optimize resource usage for text processing

TEXT Quick Reference

AspectDescriptionExample
LocationPROCEDURE DIVISIONIn text processing operations
String ConcatenationCombine strings using STRINGSTRING A B INTO C
String ParsingSplit strings using UNSTRINGUNSTRING TEXT DELIMITED BY ","
Text ReplacementReplace text using INSPECTINSPECT TEXT REPLACING ALL "OLD" BY "NEW"
Text FunctionsUse built-in text functionsFUNCTION TRIM(TEXT)

Test Your Knowledge

1. What is the primary purpose of TEXT in COBOL?

  • To define arithmetic operations
  • To handle text processing, string manipulation, and text-based operations
  • To control file operations
  • To define data types

2. Where is TEXT typically used in a COBOL program?

  • In the DATA DIVISION for text data definitions
  • In the PROCEDURE DIVISION for text processing operations
  • In the ENVIRONMENT DIVISION for system configuration
  • In the IDENTIFICATION DIVISION

3. What types of operations can TEXT handle?

  • Only file operations
  • Only database operations
  • Text processing, string manipulation, parsing, and text formatting operations
  • Only mathematical calculations

4. How does TEXT differ from standard alphanumeric operations?

  • They are identical in function
  • TEXT provides specialized text processing and string manipulation capabilities
  • TEXT only works with numeric data
  • Standard alphanumeric operations are more advanced than TEXT

5. Which of the following is a common use of TEXT?

  • File sorting operations
  • Text parsing, string manipulation, report formatting, and text processing applications
  • Database operations
  • Mathematical calculations

Frequently Asked Questions