ماڈیول اسباق (2/2)
فائل I/O آپریشنز
ایک بار جب فائل DATA DIVISION میں منسلک اور اعلان ہو جاتی ہے، تو ہم اسے PROCEDURE DIVISION کے اندر ہیر پھیر کر سکتے ہیں۔ COBOL میں، فائلوں کے لائف سائیکل کا انتظام ایک معیاری، لازمی بہاؤ کی پیروی کرتا ہے: کھولیں، آپریشن کریں (پڑھیں یا لکھیں) اور بند کریں۔
1. فائلیں کھولنا: کھلا بیان
اس سے پہلے کہ آپ کسی فائل سے پڑھ سکیں یا لکھ سکیں، اسے مناسب رسائی موڈ بتا کر کھولنا چاہیے:
OPEN INPUT SALES-FILE.اہم موڈ ہیں:
INPUT: فائل صرف پڑھنے کے موڈ میں کھلی ہے۔ فائل ڈسک پر موجود ہونی چاہیے، ورنہ پروگرام ناکام ہو جائے گا۔OUTPUT: فائل لکھنے کے موڈ میں کھلی ہے۔ اگر فائل پہلے سے موجود ہے، تو اس کا سابقہ مواد حذف ہو جائے گا (اوور رائٹ)۔ اگر یہ موجود نہیں ہے، تو یہ پیدا ہوتا ہے.EXTEND: فائل کو ڈیٹا شامل کرنے کے لیے کھولا جاتا ہے۔ نئے ریکارڈ موجودہ فائل کے آخر سے لکھے جائیں گے۔I-O: فائل پڑھنے اور لکھنے دونوں کے لیے کھولی جاتی ہے (زیادہ تر رشتہ دار یا انڈیکسڈ رسائی فائلوں کے لیے استعمال ہوتی ہے، لکیری ترتیب والی فائلوں کے لیے نہیں)۔
2. پڑھنا ڈیٹا: READ بیان
ترتیب وار فائل سے ریکارڈ پڑھنے کے لیے، ہم READ بیان استعمال کرتے ہیں۔ چونکہ ہم پہلے سے نہیں جانتے کہ فائل میں کتنے ریکارڈ ہیں، ہمیں ہمیشہ AT END شق کا استعمال کرتے ہوئے فائل کے اختتام (EOF) کی حالت کو ہینڈل کرنا چاہیے:
READ SALES-FILE
AT END MOVE "Y" TO WS-EOF
END-READ.READ SALES-FILE: نوٹ کریں کہ بیان منطقی فائل نام کا حوالہ دیتا ہے (SELECTاورFDشقوں میں بیان کیا گیا ہے)، ریکارڈ کے نام کا نہیں۔AT END: جب آپ آخری دستیاب ریکارڈ کو پڑھنے کی کوشش کرتے ہیں تو چلانے کے لیے ہدایات بتاتا ہے۔ عام طور پر، آپ پرچم متغیر (جیسےWS-EOF) کو"Y"پر سیٹ کرتے ہیں۔END-READ: پڑھے ہوئے بیان کو واضح طور پر ختم کرتا ہے۔
3. تحریری ڈیٹا: تحریری بیان
فائل میں ڈیٹا داخل کرنے کے لیے، ہم WRITE اسٹیٹمنٹ استعمال کرتے ہیں۔
[!انتباہ] COBOL میں، آپ ایک فائل (
READ SALES-FILE) پڑھتے ہیں، لیکن آپ ایک ریکارڈ (WRITE SALES-RECORD) لکھتے ہیں۔WRITE SALES-FILEلکھنا ایک عام نحوی غلطی ہے جو تالیف کو روکے گی۔
MOVE 1001 TO EMP-ID.
MOVE "MARIO ROSSI" TO EMP-NAME.
WRITE SALES-RECORD.WRITE سٹیٹمنٹ پر عمل درآمد کرنے سے پہلے، FD ریکارڈ ڈھانچہ کے ماتحت فیلڈز (اس صورت میں، SALES-RECORD) کو میموری میں پاپولڈ کرنا ضروری ہے۔
4. فائلیں بند کرنا: بند کا بیان
پروسیسنگ مکمل ہونے پر، سسٹم کے وسائل کو جاری کرنے کے لیے ہر کھلی فائل کو بند کر دینا چاہیے اور اس بات کو یقینی بنانا چاہیے کہ تمام ڈیٹا ڈسک پر لکھا جائے:
CLOSE SALES-FILE.نوٹ کریں کہ CLOSE بیان منطقی فائل کے نام کو اپنی دلیل کے طور پر لیتا ہے، نہ کہ ریکارڈ کا نام۔
اسے آزمائیں۔
ان پٹ موڈ میں سیلز فائل کھول کر، پہلا ریکارڈ پڑھ کر، اور فائل کے اختتام تک پہنچنے پر WS-EOF کنٹرول متغیر کو 'Y' پر سیٹ کر کے طریقہ کار کی تقسیم کو مکمل کریں۔ آخر میں، رکنے سے پہلے فائل کو بند کرنا یاد رکھیں۔
اشارہ دکھائیں۔
ترتیب سے لکھیں: ان پٹ سیلز فائل کھولیں۔ پھر آخر میں سیلز فائل پڑھیں 'Y' کو WS-EOF END-READ میں منتقل کریں۔ پھر سیلز فائل بند کریں۔ اور آخر میں سٹاپ رن.
3 کوششوں کے بعد حل دستیاب ہے۔
SALES-FILE کو آؤٹ پٹ موڈ میں کھول کر طریقہ کار کی تقسیم کو مکمل کریں۔ قدر 1001 کو SALES-ID اور 250.50 کو SALES-AMOUNT میں منتقل کریں، پھر فائل میں SALES-RECORD لکھیں۔ آخر میں، پروگرام کو روکنے سے پہلے فائل کو بند کریں.
اشارہ دکھائیں۔
فائل کو اوپن آؤٹ پٹ سیلز فائل کے ساتھ کھولیں، سیلز آئی ڈی اور سیلز رقم کو ویلیو تفویض کرنے کے لیے MOVE کا استعمال کریں، WRITE SALES-RECORD کو انجام دیں۔ (ریکارڈ لکھنا، فائل نہیں!)، بند سیلز فائل کے ساتھ بند کریں۔ اور STOP RUN کے ساتھ ختم کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔