COBOL এ স্ট্রিং ম্যানিপুলেশন (String Manipulation in COBOL)
COBOL একটি প্রাচীন প্রোগ্রামিং ভাষা হলেও, এটি স্ট্রিং ম্যানিপুলেশনের জন্য একটি শক্তিশালী সেট অফ ফিচার প্রদান করে। স্ট্রিং ম্যানিপুলেশন এমন একটি প্রক্রিয়া যেখানে আপনি স্ট্রিং বা টেক্সট ডেটা কেটে, যোগ, পরিবর্তন এবং পরীক্ষা করতে পারেন। COBOL এ স্ট্রিং ম্যানিপুলেশন সাধারণত INSPECT, STRING, UNSTRING, এবং MOVE স্টেটমেন্ট ব্যবহার করে করা হয়। নিচে COBOL এ স্ট্রিং ম্যানিপুলেশনের বিভিন্ন টেকনিক এবং উদাহরণ আলোচনা করা হলো।
১. INSPECT স্টেটমেন্ট (INSPECT Statement)
INSPECT স্টেটমেন্ট ব্যবহার করা হয় একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট চরিত্রের সংখ্যা গোনার জন্য অথবা স্ট্রিংয়ের মধ্যে কিছু পরিবর্তন করার জন্য। এটি সাধারণত টেক্সট প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
INSPECT string [TALLYING tally-variable FOR CHARACTERS]
[REPLACING ALL old-char BY new-char].উদাহরণ ১: ক্যারেক্টারের সংখ্যা গণনা
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MY-STRING PIC X(30) VALUE 'COBOL IS EASY TO LEARN'.
01 CHAR-COUNT PIC 9(2) VALUE 0.
PROCEDURE DIVISION.
INSPECT MY-STRING TALLYING CHAR-COUNT FOR CHARACTERS
DISPLAY 'Total Characters: ' CHAR-COUNT.
STOP RUN.এখানে INSPECT স্টেটমেন্টটি MY-STRING এর মধ্যে মোট ক্যারেক্টারের সংখ্যা গুনবে এবং CHAR-COUNT ভেরিয়েবলে তা সংরক্ষণ করবে।
উদাহরণ ২: স্ট্রিংয়ের চরিত্র প্রতিস্থাপন
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MY-STRING PIC X(30) VALUE 'COBOL IS HARD TO LEARN'.
01 NEW-STRING PIC X(30).
PROCEDURE DIVISION.
INSPECT MY-STRING REPLACING ALL 'HARD' BY 'EASY'
MOVE MY-STRING TO NEW-STRING
DISPLAY 'Updated String: ' NEW-STRING.
STOP RUN.এখানে INSPECT স্টেটমেন্টটি MY-STRING এর মধ্যে 'HARD' শব্দটি 'EASY' দ্বারা প্রতিস্থাপন করবে।
২. STRING স্টেটমেন্ট (STRING Statement)
STRING স্টেটমেন্ট ব্যবহার করা হয় একাধিক স্ট্রিংকে একত্রে যুক্ত করার জন্য। এটি অনেকগুলো স্ট্রিং বা চরিত্র একত্রিত করে একটি নতুন স্ট্রিং তৈরি করে।
সিনট্যাক্স:
STRING string1 DELIMITED BY delimiter
string2 DELIMITED BY delimiter
INTO result-string.উদাহরণ:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FIRST-NAME PIC X(10) VALUE 'John'.
01 LAST-NAME PIC X(10) VALUE 'Doe'.
01 FULL-NAME PIC X(20).
PROCEDURE DIVISION.
STRING FIRST-NAME DELIMITED BY SPACE
LAST-NAME DELIMITED BY SPACE
INTO FULL-NAME.
DISPLAY 'Full Name: ' FULL-NAME.
STOP RUN.এখানে STRING স্টেটমেন্টটি FIRST-NAME এবং LAST-NAME এর মানগুলো একত্র করে FULL-NAME এ সংরক্ষণ করবে। এতে ফলস্বরূপ 'John Doe' তৈরি হবে।
৩. UNSTRING স্টেটমেন্ট (UNSTRING Statement)
UNSTRING স্টেটমেন্ট ব্যবহার করা হয় একটি স্ট্রিংকে বিভক্ত করে বিভিন্ন উপাদানে ভাগ করার জন্য। এটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট ডেলিমিটার ব্যবহার করে স্ট্রিং ভেঙে দেয়।
সিনট্যাক্স:
UNSTRING input-string DELIMITED BY delimiter
INTO part1, part2, part3.উদাহরণ:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FULL-NAME PIC X(20) VALUE 'John Doe'.
01 FIRST-NAME PIC X(10).
01 LAST-NAME PIC X(10).
PROCEDURE DIVISION.
UNSTRING FULL-NAME DELIMITED BY SPACE
INTO FIRST-NAME, LAST-NAME.
DISPLAY 'First Name: ' FIRST-NAME.
DISPLAY 'Last Name: ' LAST-NAME.
STOP RUN.এখানে UNSTRING স্টেটমেন্টটি FULL-NAME স্ট্রিংটি স্পেস দিয়ে বিভক্ত করে FIRST-NAME এবং LAST-NAME এ আলাদা করে সংরক্ষণ করবে।
৪. MOVE স্টেটমেন্ট (MOVE Statement)
COBOL এ MOVE স্টেটমেন্টটি ব্যবহার করে একটি স্ট্রিং বা চরিত্রের মান অন্য একটি স্ট্রিং বা ভেরিয়েবলে কপি করা হয়।
সিনট্যাক্স:
MOVE string1 TO string2.উদাহরণ:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SOURCE-NAME PIC X(20) VALUE 'COBOL PROGRAMMING'.
01 TARGET-NAME PIC X(20).
PROCEDURE DIVISION.
MOVE SOURCE-NAME TO TARGET-NAME.
DISPLAY 'Target Name: ' TARGET-NAME.
STOP RUN.এখানে MOVE স্টেটমেন্টটি SOURCE-NAME এর মান TARGET-NAME এ কপি করবে।
৫. STRING LENGTH এবং SUBSTRING (Length and Substring in COBOL)
COBOL এ স্ট্রিংয়ের দৈর্ঘ্য এবং সাবস্ট্রিং বের করার জন্য কিছু অন্যান্য স্টেটমেন্টও ব্যবহার করা যায়।
স্ট্রিংয়ের দৈর্ঘ্য বের করা:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MY-STRING PIC X(20) VALUE 'COBOL PROGRAMMING'.
01 STRING-LENGTH PIC 9(2).
PROCEDURE DIVISION.
COMPUTE STRING-LENGTH = LENGTH OF MY-STRING.
DISPLAY 'Length of string: ' STRING-LENGTH.
STOP RUN.সাবস্ট্রিং বের করা:
COBOL এ REFERENCE MODIFIER ব্যবহার করে সাবস্ট্রিং বের করা যায়।
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MY-STRING PIC X(20) VALUE 'COBOL PROGRAMMING'.
01 SUB-STRING PIC X(10).
PROCEDURE DIVISION.
MOVE MY-STRING(1:5) TO SUB-STRING.
DISPLAY 'Substring: ' SUB-STRING.
STOP RUN.এখানে, MY-STRING(1:5) প্রথম ৫টি ক্যারেক্টার সাবস্ট্রিং হিসেবে SUB-STRING এ কপি করবে।
সারসংক্ষেপ
COBOL এ স্ট্রিং ম্যানিপুলেশন করতে আপনি INSPECT, STRING, UNSTRING, MOVE, এবং REFERENCE MODIFIER এর মতো শক্তিশালী টুলস ব্যবহার করতে পারেন। স্ট্রিংয়ের দৈর্ঘ্য বের করা, সাবস্ট্রিং কাটা, এবং স্ট্রিংয়ের মধ্যে চরিত্র বা শব্দ প্রতিস্থাপন এই সমস্ত কার্যাবলী COBOL এ খুব সহজে করা যায়। COBOL এর এই স্ট্রিং ম্যানিপুলেশন ফিচারগুলো ব্যবসায়িক অ্যাপ্লিকেশন এবং ডেটা প্রক্রিয়াকরণের জন্য অত্যন্ত উপযোগী।
STRING এবং UNSTRING স্টেটমেন্ট এর মাধ্যমে স্ট্রিং হ্যান্ডলিং
COBOL প্রোগ্রামিং ভাষায় STRING এবং UNSTRING স্টেটমেন্টগুলি স্ট্রিং ম্যানিপুলেশন বা স্ট্রিং হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়। স্ট্রিং হ্যান্ডলিং হল ডেটা প্রক্রিয়াকরণের একটি গুরুত্বপূর্ণ অংশ, বিশেষত যখন আমাদের একাধিক টুকরো ডেটাকে একত্রিত বা ভেঙে ফেলার প্রয়োজন হয়। এই স্টেটমেন্টগুলি ব্যবহার করে আপনি স্ট্রিং যোগ (concatenate) এবং বিভক্ত (split) করতে পারেন।
1. STRING স্টেটমেন্ট
STRING স্টেটমেন্ট ব্যবহার করে একাধিক স্ট্রিং একত্রিত (concatenate) করা হয়। এটি স্ট্রিংগুলির মধ্যে একটি নতুন স্ট্রিং তৈরি করতে সাহায্য করে।
Sintax:
STRING string-1 DELIMITED BY delimiter
string-2 DELIMITED BY delimiter
INTO result-string- string-1, string-2: এগুলি হলো সেই স্ট্রিংগুলি যা একত্রিত করা হবে।
- DELIMITED BY delimiter: এখানে "delimiter" দ্বারা কোনো নির্দিষ্ট চিহ্ন বা স্পেস দিয়ে স্ট্রিং শেষ হতে পারে।
- INTO result-string: এখানে result-string হলো সেই স্ট্রিং যেখানে একত্রিত ফলাফল রাখা হবে।
উদাহরণ:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 STRING-1 PIC X(10) VALUE 'Hello '.
01 STRING-2 PIC X(10) VALUE 'World'.
01 RESULT PIC X(20).
PROCEDURE DIVISION.
STRING STRING-1 DELIMITED BY SPACE
STRING-2 DELIMITED BY SPACE
INTO RESULT
DISPLAY RESULT
STOP RUN.এখানে, STRING-1 এবং STRING-2 একত্রিত হয়ে RESULT তে যোগ হবে, এবং আউটপুট হবে **"Hello World"**।
কিছু গুরুত্বপূর্ণ বিষয়:
- DELIMITED BY: এই প্যারামিটারটি ব্যবহার করা হয় স্ট্রিংয়ের শেষ চিহ্ন বা স্পেস নির্দেশ করতে, যা স্ট্রিংকে আলাদা করে।
- INTO: এটি নির্দেশ করে যে, একত্রিত স্ট্রিং কোথায় রাখা হবে।
2. UNSTRING স্টেটমেন্ট
UNSTRING স্টেটমেন্ট ব্যবহার করে একটি স্ট্রিং থেকে একাধিক অংশ বের করা হয়। এটি মূলত স্ট্রিংকে একটি নির্দিষ্ট ডেলিমিটার দ্বারা বিভক্ত (split) করে পৃথক পৃথক ভ্যারিয়েবলে রাখার জন্য ব্যবহৃত হয়।
Sintax:
UNSTRING source-string
DELIMITED BY delimiter
INTO string-1, string-2, ...- source-string: এটি সেই স্ট্রিং যা থেকে ডেটা বের করা হবে।
- DELIMITED BY delimiter: ডেলিমিটার হিসেবে কোনো নির্দিষ্ট চিহ্ন বা স্পেস ব্যবহৃত হবে, যা স্ট্রিংকে বিভক্ত করবে।
- INTO string-1, string-2: এখানেই স্ট্রিং থেকে আলাদা আলাদা অংশে ডেটা সংরক্ষণ করা হবে।
উদাহরণ:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FULL-NAME PIC X(20) VALUE 'John Doe'.
01 FIRST-NAME PIC X(10).
01 LAST-NAME PIC X(10).
PROCEDURE DIVISION.
UNSTRING FULL-NAME
DELIMITED BY SPACE
INTO FIRST-NAME, LAST-NAME
DISPLAY 'First Name: ' FIRST-NAME
DISPLAY 'Last Name: ' LAST-NAME
STOP RUN.এখানে, FULL-NAME স্ট্রিংটি SPACE দ্বারা বিভক্ত হয়ে FIRST-NAME এবং LAST-NAME এ ভেঙে যাবে। আউটপুট হবে:
First Name: John
Last Name: Doeকিছু গুরুত্বপূর্ণ বিষয়:
- DELIMITED BY: এটি স্ট্রিংটি বিভক্ত করার জন্য নির্দিষ্ট একটি চিহ্ন বা স্পেস ব্যবহার করে।
- INTO: এটি নির্দেশ করে যে, বিভক্ত অংশগুলো কোথায় রাখা হবে।
- UNSTRING একাধিক স্ট্রিং বা উপাদানকে পৃথক পৃথক ভ্যারিয়েবলে রাখতে সক্ষম।
STRING এবং UNSTRING এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | STRING | UNSTRING |
|---|---|---|
| কার্য | স্ট্রিংগুলিকে একত্রিত (concatenate) করা | একটি স্ট্রিংকে বিভক্ত (split) করা |
| ব্যবহার | একাধিক স্ট্রিংকে একত্রিত করতে | একটি স্ট্রিংকে নির্দিষ্ট ডেলিমিটার দ্বারা ভাগ করতে |
| সিনট্যাক্স | STRING source-string INTO result-string | UNSTRING source-string INTO var1, var2, ... |
| উদাহরণ | STRING 'Hello' ' ' 'World' INTO result | UNSTRING 'John Doe' INTO first-name, last-name |
সারসংক্ষেপ
COBOL-এ STRING এবং UNSTRING স্টেটমেন্টগুলি স্ট্রিং ম্যানিপুলেশন বা স্ট্রিং হ্যান্ডলিং এর জন্য ব্যবহৃত হয়:
- STRING: একাধিক স্ট্রিংকে একত্রিত (concatenate) করতে ব্যবহৃত হয়।
- UNSTRING: একটি স্ট্রিংকে বিভক্ত (split) করে একাধিক অংশে ভাগ করতে ব্যবহৃত হয়।
এই স্টেটমেন্টগুলির মাধ্যমে আপনি স্ট্রিং প্রক্রিয়া ও সংরক্ষণ অনেক সহজে এবং কার্যকরভাবে করতে পারেন।
COBOL-এ INSPECT স্টেটমেন্ট এবং তার মাধ্যমে স্ট্রিং প্রক্রিয়াকরণ
COBOL-এ INSPECT স্টেটমেন্টটি একটি অত্যন্ত শক্তিশালী কমান্ড যা স্ট্রিং প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। এটি স্ট্রিংয়ে থাকা নির্দিষ্ট চরিত্র বা প্যাটার্নের উপর বিভিন্ন অপারেশন কার্যকর করতে পারে। INSPECT ব্যবহার করে স্ট্রিং থেকে চরিত্র গণনা করা, প্রতিস্থাপন করা, বা চরিত্রের অবস্থান চিহ্নিত করা সম্ভব।
INSPECT এর সাধারণ গঠন:
INSPECT source-string [TALLYING|REPLACING|CONVERTING] target-charactersource-string: যেটি স্ট্রিং বা টেক্সট আপনি প্রক্রিয়া করতে চান।TALLYING: কাউন্টিং বা গুনতি করার জন্য ব্যবহার করা হয়।REPLACING: স্ট্রিংয়ের মধ্যে নির্দিষ্ট চরিত্র পরিবর্তন করার জন্য ব্যবহৃত হয়।CONVERTING: স্ট্রিংয়ের নির্দিষ্ট চরিত্রকে অন্য চরিত্রে রূপান্তর করার জন্য ব্যবহৃত হয়।
INSPECT স্টেটমেন্টের বিভিন্ন ব্যবহার
১. TALLYING (গণনা করা)
TALLYING অপশন ব্যবহার করে আপনি একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট চরিত্রের সংখ্যা গুনতে পারেন।
উদাহরণ:
01 SOURCE-STRING PIC X(50) VALUE 'COBOL IS EASY TO LEARN'.
01 CHARACTER-COUNT PIC 99.
PROCEDURE DIVISION.
INSPECT SOURCE-STRING TALLYING CHARACTER-COUNT FOR ALL 'O'.
DISPLAY 'Number of O: ' CHARACTER-COUNT.
STOP RUN.ব্যাখ্যা:
- এখানে
INSPECTস্টেটমেন্টটিSOURCE-STRINGথেকে 'O' চরিত্রের সংখ্যা গণনা করে এবংCHARACTER-COUNTভেরিয়েবলে সেট করে।FOR ALLব্যবহার করা হয়েছে, অর্থাৎ সমস্ত 'O' চরিত্রের জন্য গণনা করা হবে। - আউটপুট হবে: Number of O: 2।
২. REPLACING (প্রতিস্থাপন করা)
REPLACING অপশন ব্যবহার করে স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট চরিত্র বা প্যাটার্ন পরিবর্তন করা যায়।
উদাহরণ:
01 SOURCE-STRING PIC X(50) VALUE 'COBOL IS EASY TO LEARN'.
01 RESULT-STRING PIC X(50).
PROCEDURE DIVISION.
INSPECT SOURCE-STRING REPLACING ALL 'O' BY 'X'.
MOVE SOURCE-STRING TO RESULT-STRING.
DISPLAY RESULT-STRING.
STOP RUN.ব্যাখ্যা:
- এই উদাহরণে
INSPECTস্টেটমেন্টটিSOURCE-STRINGএর সমস্ত 'O' চরিত্রকে 'X' দ্বারা প্রতিস্থাপন করছে। - আউটপুট হবে: CXBL IS EASY TX LEARN।
৩. CONVERTING (রূপান্তর করা)
CONVERTING অপশন ব্যবহার করে স্ট্রিংয়ের নির্দিষ্ট চরিত্রগুলিকে অন্য চরিত্রে রূপান্তর করা যায়। এটি ক্যাপিটাল এবং লোয়ার কেস কনভার্সনেও ব্যবহৃত হতে পারে।
উদাহরণ:
01 SOURCE-STRING PIC X(50) VALUE 'hello world'.
01 RESULT-STRING PIC X(50).
PROCEDURE DIVISION.
INSPECT SOURCE-STRING CONVERTING 'abcdefghijklmnopqrstuvwxyz' TO 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
MOVE SOURCE-STRING TO RESULT-STRING.
DISPLAY RESULT-STRING.
STOP RUN.ব্যাখ্যা:
- এই উদাহরণে
CONVERTINGঅপশন ব্যবহার করা হয়েছে, যাতে সমস্ত ছোট হাতের অক্ষর বড় হাতের অক্ষরে রূপান্তরিত হয়। - আউটপুট হবে: HELLO WORLD।
INSPECT স্টেটমেন্টের বৈশিষ্ট্য এবং সুবিধা
- গণনা এবং শর্ত যাচাই:
INSPECTস্টেটমেন্টটি সহজেই স্ট্রিংয়ের মধ্যে নির্দিষ্ট চরিত্রের সংখ্যা গণনা করতে পারে। এটি স্ট্রিংয়ের মধ্যে প্যাটার্ন খুঁজে বের করতেও সহায়ক।
- স্ট্রিং পরিবর্তন:
REPLACINGএবংCONVERTINGঅপশনগুলো স্ট্রিংয়ের চরিত্র বা প্যাটার্ন দ্রুত পরিবর্তন করতে সাহায্য করে।
- রূপান্তর ক্ষমতা:
CONVERTINGঅপশনটি স্ট্রিংয়ের বিশেষ অক্ষরগুলিকে নির্দিষ্ট পরিবর্তন করে, যেমন বড় হাতের অক্ষরকে ছোট হাতের অক্ষরে রূপান্তর করা বা সেগুলিকে উপযুক্ত ফরম্যাটে রাখা।
- সহজ ব্যবহার:
INSPECTস্টেটমেন্টটি COBOL-এ স্ট্রিং প্রক্রিয়াকরণের জন্য অত্যন্ত সহজ এবং দক্ষ একটি পদ্ধতি।
INSPECT স্টেটমেন্টের কিছু অতিরিক্ত উদাহরণ
৪. INSPECT দিয়ে স্ট্রিংয়ের ভ্যালিডেশন (শর্ত যাচাই)
01 STRING-VALUE PIC X(20) VALUE '1234567890ABC'.
01 DIGIT-COUNT PIC 99.
PROCEDURE DIVISION.
INSPECT STRING-VALUE TALLYING DIGIT-COUNT FOR ALL NUMERIC.
DISPLAY 'Number of Digits: ' DIGIT-COUNT.
STOP RUN.ব্যাখ্যা:
- এখানে
INSPECTস্টেটমেন্টটিSTRING-VALUEস্ট্রিংয়ে সমস্ত ডিজিটের সংখ্যা গণনা করছে এবংDIGIT-COUNTএ সেই সংখ্যাটি সংরক্ষণ করছে।
সারসংক্ষেপ
INSPECTএকটি শক্তিশালী COBOL স্টেটমেন্ট যা স্ট্রিং প্রক্রিয়াকরণে ব্যবহৃত হয়। এর মাধ্যমে আপনি স্ট্রিং থেকে নির্দিষ্ট চরিত্র বা প্যাটার্ন গণনা, প্রতিস্থাপন, এবং রূপান্তর করতে পারেন।- এটি
TALLYING,REPLACING, এবংCONVERTINGঅপশন সমর্থন করে, যা স্ট্রিং প্রক্রিয়াকরণ আরও সহজ এবং কার্যকরী করে তোলে। INSPECTস্টেটমেন্টটি বিশেষত ডেটা ক্লিনিং, ফরম্যাটিং এবং বৈধতা যাচাই করার জন্য খুবই কার্যকর।
DELIMITERS এবং POINTER এর ব্যবহার
DELIMITERS এবং POINTERS COBOL প্রোগ্রামিং ভাষায় গুরুত্বপূর্ণ কন্ট্রোল স্ট্রাকচার যা ডেটার প্রক্রিয়াকরণ এবং ফাইল অপারেশনগুলিতে ব্যবহৃত হয়। নিচে বিস্তারিতভাবে এই দুটি ফিচারের ব্যবহার আলোচনা করা হল।
১. DELIMITERS
DELIMITERS হল বিশেষ চিহ্ন বা ক্যারেক্টার যা একটি ডেটার স্ট্রিং বা ফিল্ডের সীমা চিহ্নিত করে। এটি সাধারণত স্ট্রিং অপারেশন, ফাইল ইনপুট/আউটপুট বা ডেটা প্রক্রিয়াকরণের সময় ব্যবহৃত হয়। COBOL-এ, ডেলিমিটার মূলত স্ট্রিং এবং ফাইল ম্যানিপুলেশন কাজে ব্যবহৃত হয়।
১.১ DELIMITER এর ব্যবহার
COBOL-এ সাধারণত DELIMITERS স্ট্রিং বা ডেটার মধ্যে সীমা চিহ্নিত করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, ডেটাবেস বা ফাইল থেকে নির্দিষ্ট সীমানার ডেটা এক্সট্র্যাক্ট করতে বা প্রক্রিয়া করতে DELIMITER ব্যবহার করা হয়। COBOL প্রোগ্রামে ফাইল ইনপুট/আউটপুট অথবা স্ট্রিং প্রসেসিংয়ের সময় ডেলিমিটার ব্যবহার করা হয়।
১.২ STRING এবং DELIMITER উদাহরণ
ধরা যাক, একটি স্ট্রিং এর মধ্যে "," ডেলিমিটার ব্যবহার করে আপনি পৃথক ডেটা উপাদানগুলো আলাদা করতে চান। এটি STRING স্টেটমেন্টের সাথে ব্যবহার করা যায়।
01 input-string PIC X(100).
01 delimiter PIC X VALUE ','.
01 part-1 PIC X(50).
01 part-2 PIC X(50).
MOVE 'John,Smith,30' TO input-string
UNSTRING input-string DELIMITED BY delimiter INTO part-1, part-2
DISPLAY 'First Name: ' part-1
DISPLAY 'Last Name: ' part-2এখানে UNSTRING স্টেটমেন্টটি input-string কে "," ডেলিমিটার ব্যবহার করে আলাদা করে, এবং দুইটি পৃথক অংশে ভাগ করে part-1 এবং part-2 এ রাখে।
১.৩ Delimiters in Files
ফাইল ম্যানিপুলেশনের সময়ও ডেলিমিটার ব্যবহৃত হয়। এটি সাধারণত ডেটার মধ্যে সীমা চিহ্নিত করতে ব্যবহৃত হয়, যেমন CSV (Comma Separated Values) ফাইল বা অন্য কোনো স্ট্রাকচার্ড ফাইলের মধ্যে ডেটা এক্সট্র্যাক্ট করার সময়।
২. POINTER
COBOL-এ POINTER একটি বিশেষ ডেটা টাইপ যা মেমরি অবস্থান বা নির্দিষ্ট ডেটার লোকেশন নির্দেশ করে। এটি POINTER হিসেবে ডেটার অবস্থান বা রেফারেন্স রাখার জন্য ব্যবহৃত হয়। POINTER সাধারণত DYNAMIC ALLOCATION বা DYNAMIC MEMORY MANAGEMENT এর জন্য ব্যবহৃত হয়, এবং এটি কোডের অপটিমাইজেশন এবং মেমরি ম্যানেজমেন্টে সাহায্য করে।
২.১ POINTER ডিফাইন করা
COBOL-এ POINTER ফিল্ডটি POINTER ডেটা টাইপ দিয়ে ডিফাইন করা হয়।
01 PTR-FIELD POINTER.এখানে, PTR-FIELD একটি POINTER ফিল্ড যা মেমরির একটি নির্দিষ্ট অবস্থান নির্দেশ করবে।
২.২ POINTER ব্যবহার
POINTER ব্যবহার করা হয় যখন আপনি কোনো ডেটার অবস্থান ধরে রেখে তাকে বিভিন্ন অংশে অ্যাক্সেস করতে চান। উদাহরণস্বরূপ, কোডে ডাইনামিকালি ডেটা পয়েন্ট করতে।
01 POINTER-VALUE POINTER.
01 MY-VALUE PIC 9(3).
01 MY-ADDRESS POINTER.
SET MY-ADDRESS TO ADDRESS OF MY-VALUE
SET POINTER-VALUE TO MY-ADDRESS
DISPLAY 'Address of MY-VALUE: ' MY-ADDRESSএখানে, MY-ADDRESS ফিল্ডের মাধ্যমে MY-VALUE এর মেমরি অবস্থান ধরে রাখা হচ্ছে এবং POINTER-VALUE এর মাধ্যমে তা অ্যাক্সেস করা হচ্ছে।
২.৩ POINTERs for Dynamic Memory Allocation
COBOL-এ POINTER ব্যবহার করা হয় ডাইনামিক মেমরি অ্যালোকেশন করতে, যেখানে ALLOCATE বা FREE অপারেশন ব্যবহার করে মেমরি এক্সট্র্যাক্ট বা মুক্ত করা হয়।
ALLOCATE BUFFER-LENGTH TO POINTER-VALUEএখানে, ALLOCATE স্টেটমেন্টটি POINTER-VALUE ফিল্ডে ডাইনামিক মেমরি বরাদ্দ করে।
৩. DELIMITERS এবং POINTER এর সুবিধা
- DELIMITERS:
- স্ট্রিং প্রক্রিয়াকরণ সহজ করে: ডেলিমিটার ব্যবহারের মাধ্যমে স্ট্রিং বা ডেটা ভাগ করে প্রক্রিয়াকরণ করা সহজ হয়।
- ফাইল থেকে ডেটা এক্সট্র্যাক্ট করা: ডেলিমিটার ব্যবহার করে ফাইল থেকে নির্দিষ্ট ডেটা পৃথক করে এক্সট্র্যাক্ট করা যায়।
- ডেটা সেগমেন্টেশন: ডেলিমিটার ব্যবহার করলে ডেটা সেগমেন্টে ভাগ করা যায়, যা ডেটা বিশ্লেষণ এবং প্রক্রিয়া সহজ করে।
- POINTER:
- ডাইনামিক মেমরি ব্যবস্থাপনা: POINTER ব্যবহার করলে আপনি ডাইনামিকালি মেমরি এক্সট্র্যাক্ট এবং মুক্ত করতে পারেন, যা মেমরি ব্যবস্থাপনায় সাহায্য করে।
- ফ্লেক্সিবল ডেটা অ্যাক্সেস: POINTER ব্যবহার করলে ডেটার অবস্থান সম্পর্কে দ্রুত তথ্য পাওয়া যায় এবং মেমরির নির্দিষ্ট অবস্থান অ্যাক্সেস করা যায়।
- কার্যকরী কোড অপটিমাইজেশন: POINTER ব্যবহারে মেমরি অপটিমাইজেশন হয় এবং ডেটা অ্যাক্সেস দ্রুত হয়।
সারসংক্ষেপ
DELIMITERS এবং POINTER COBOL প্রোগ্রামিং ভাষায় গুরুত্বপূর্ণ ভূমিকা পালন করে। DELIMITERS ডেটা সেগমেন্টেশনে এবং স্ট্রিং অপারেশনগুলোতে ব্যবহৃত হয়, যেখানে POINTER ডাইনামিক মেমরি ব্যবস্থাপনা এবং মেমরি অবস্থান অ্যাক্সেস করার জন্য ব্যবহৃত হয়। COBOL-এ এই দুটি ফিচার ব্যবহার করে আপনি ডেটা প্রক্রিয়াকরণ, ফাইল অপারেশন এবং মেমরি অপটিমাইজেশন আরও কার্যকরভাবে করতে পারেন।
COBOL এ স্ট্রিং কনক্যাটেনেশন এবং সাবস্ট্রিং অপারেশন
COBOL প্রোগ্রামিং ভাষায় স্ট্রিং কনক্যাটেনেশন এবং সাবস্ট্রিং অপারেশন খুবই গুরুত্বপূর্ণ। এই অপারেশনগুলো স্ট্রিং ম্যানিপুলেশনে ব্যবহৃত হয়, যেমন দুটি বা তার বেশি স্ট্রিং একত্রিত করা এবং স্ট্রিং থেকে একটি নির্দিষ্ট অংশ বের করা।
১. স্ট্রিং কনক্যাটেনেশন (String Concatenation)
স্ট্রিং কনক্যাটেনেশন হল দুটি বা ততোধিক স্ট্রিং একত্রিত করা, অর্থাৎ একাধিক স্ট্রিং মিলিয়ে একটি নতুন স্ট্রিং তৈরি করা। COBOL-এ স্ট্রিং কনক্যাটেনেশন সাধারণত STRING স্টেটমেন্ট ব্যবহার করে করা হয়।
স্ট্রিং কনক্যাটেনেশনের উদাহরণ
IDENTIFICATION DIVISION.
PROGRAM-ID. StringConcatenationExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 STRING-1 PIC X(20) VALUE 'Hello '.
01 STRING-2 PIC X(20) VALUE 'World!'.
01 RESULT PIC X(40).
PROCEDURE DIVISION.
STRING STRING-1 DELIMITED BY SPACE
STRING-2 DELIMITED BY SPACE
INTO RESULT
DISPLAY RESULT
STOP RUN.ব্যাখ্যা:
- STRING: এখানে STRING-1 এবং STRING-2 কে RESULT স্ট্রিংয়ের মধ্যে যুক্ত (concatenate) করা হয়েছে।
- DELIMITED BY SPACE: এখানে স্পেস দ্বারা স্ট্রিংয়ের শেষ চিহ্নিত করা হয়েছে। অর্থাৎ, কনক্যাটেনেশন চলাকালে স্পেস ব্যবহার করে দুটি স্ট্রিং পৃথক করা হয়েছে।
আউটপুট:
Hello World!২. সাবস্ট্রিং অপারেশন (Substring Operation)
সাবস্ট্রিং অপারেশন হল একটি স্ট্রিং থেকে নির্দিষ্ট অংশ বা সেগমেন্ট বের করা। COBOL-এ UNSTRING স্টেটমেন্ট ব্যবহার করে সাবস্ট্রিং অপারেশন করা হয়। এছাড়া, REFERENCE ক্লজের মাধ্যমে নির্দিষ্ট অংশের স্ট্রিং বের করা যেতে পারে।
সাবস্ট্রিং অপারেশনের উদাহরণ
IDENTIFICATION DIVISION.
PROGRAM-ID. SubstringExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FULL-NAME PIC X(50) VALUE 'John Doe'.
01 FIRST-NAME PIC X(20).
01 LAST-NAME PIC X(20).
PROCEDURE DIVISION.
UNSTRING FULL-NAME
DELIMITED BY SPACE
INTO FIRST-NAME
LAST-NAME
DISPLAY 'First Name: ' FIRST-NAME
DISPLAY 'Last Name: ' LAST-NAME
STOP RUN.ব্যাখ্যা:
- UNSTRING: এখানে FULL-NAME স্ট্রিংটি প্রথমে স্পেস দ্বারা পৃথক করা হয়েছে। FIRST-NAME এবং LAST-NAME এ দুটি অংশ বিভক্ত করা হয়েছে।
- DELIMITED BY SPACE: এখানে স্পেসের ভিত্তিতে স্ট্রিংটিকে দুটি অংশে বিভক্ত করা হয়েছে।
আউটপুট:
First Name: John
Last Name: Doe৩. সাবস্ট্রিং এক্সট্র্যাকশন (Substring Extraction)
COBOL-এ স্ট্রিং থেকে নির্দিষ্ট অবস্থান থেকে অংশ বের করার জন্য REFERENCE এবং UNSTRING স্টেটমেন্ট ব্যবহার করা যেতে পারে।
সাবস্ট্রিং এক্সট্র্যাকশনের উদাহরণ
IDENTIFICATION DIVISION.
PROGRAM-ID. ExtractSubstringExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FULL-NAME PIC X(50) VALUE 'John Doe'.
01 EXTRACT PIC X(20).
PROCEDURE DIVISION.
MOVE FULL-NAME (6:3) TO EXTRACT
DISPLAY 'Extracted Substring: ' EXTRACT
STOP RUN.ব্যাখ্যা:
- FULL-NAME (6:3): এখানে FULL-NAME স্ট্রিংয়ের ৬ তম পজিশন থেকে শুরু করে ৩টি চরিত্র (যা হবে 'Doe') বের করা হয়েছে।
- MOVE: স্ট্রিংটি EXTRACT ভেরিয়েবলে রাখা হয়েছে।
আউটপুট:
Extracted Substring: Doeসারসংক্ষেপ
COBOL-এ স্ট্রিং কনক্যাটেনেশন এবং সাবস্ট্রিং অপারেশন স্ট্রিং ম্যানিপুলেশন ব্যবস্থাপনা করতে গুরুত্বপূর্ণ টুলস। STRING স্টেটমেন্ট কনক্যাটেনেশন অপারেশন এবং UNSTRING স্টেটমেন্ট সাবস্ট্রিং অপারেশন করতে ব্যবহৃত হয়। COBOL স্ট্রিং থেকে সাবস্ট্রিং বের করার জন্য REFERENCE এবং UNSTRING অপারেশনগুলো কার্যকরী।
Read more