WORKING-STORAGE nâng cao trong COBOL – Hiểu rõ OCCURS và REDEFINES qua ví dụ thực tế
5:00 read
Vì sao phải học WORKING-STORAGE nâng cao (OCCURS & REDEFINES)?
Ở các bài trước, bạn đã:
- Bài 002: hiểu level number, PIC, group item, numeric/string
- Bài 006: quen với PERFORM VARYING – vòng lặp có biến đếm
- Bài 007: làm việc với FILE SECTION và record
01để đọc file tuần tự
Trong chương trình batch thực tế như RZZBSQLN1.PCO, WORKING-STORAGE không chỉ có vài biến lẻ 9(4) hay X(20) mà thường chứa:
- Table (mảng 1 chiều) để lưu nhiều record tạm thời – dùng
OCCURS - Struct "2 mặt" cho cùng một vùng nhớ – dùng
REDEFINESđể chia nhỏ date/time, phân tích record phức tạp, đổi format dữ liệu
Bài này tập trung vào hai công cụ rất mạnh (và cũng dễ gây bug nếu không hiểu kỹ):
OCCURS– khai báo table/mảng trong COBOLREDEFINES– cho phép nhiều layout khác nhau cùng "chồng" lên một vùng nhớ
Chúng ta sẽ:
- Xây dựng mental model tương đương với
array/structtrong Java/Python - Phân tích các ví dụ thực tế lấy cảm hứng từ
RZZBSQLN1nhưWK_SQL_TBL,WK_PARM_TBL,SYS_DATE/SYS_DATE-R - Làm bài tập thiết kế table và layout date/time
Ôn lại: WORKING-STORAGE và level number
WORKING-STORAGE dùng để khai báo biến dùng suốt chương trình:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CUSTOMER.
05 CUST-ID PIC 9(5).
05 CUST-NAME PIC X(30).
77 WS-COUNTER PIC 9(5) VALUE 0.
01 CUSTOMERlà record (group item) – giống một struct/class instance05 CUST-ID,05 CUST-NAMElà field con bên trong77 WS-COUNTERlà biến đơn lẻ (không thuộc group)
Khi thêm OCCURS và REDEFINES, bạn đang chuyển từ biến đơn sang cấu trúc dữ liệu phức tạp.
Yêu cầu đăng nhập
Vui lòng đăng nhập để truy cập nội dung này
Additional Resources
Course Guide
Comprehensive PDF guide with examples
GitHub Repository
Example code for all lessons
Discussion
Have a question about this lesson? Post it here and get answers from instructors and peers.
