ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 5 · 2లో పాఠం 2కోర్సులో 10/10~15 min
మాడ్యూల్ పాఠాలు (2/2)

ఫైల్ I/O ఆపరేషన్స్

DATA DIVISIONలో ఫైల్ అనుబంధించబడి మరియు ప్రకటించబడిన తర్వాత, మేము దానిని PROCEDURE DIVISION లోపల మార్చవచ్చు. COBOLలో, ఫైల్‌ల జీవితచక్రాన్ని నిర్వహించడం ఒక ప్రామాణికమైన, అత్యవసరమైన ప్రవాహాన్ని అనుసరిస్తుంది: తెరవండి, కార్యకలాపాలను నిర్వహించండి (చదవండి లేదా వ్రాయండి) మరియు మూసివేయండి.


1. ఫైల్‌లను తెరవడం: ఓపెన్ స్టేట్‌మెంట్

మీరు ఫైల్ నుండి చదవడానికి లేదా వ్రాయడానికి ముందు, తగిన యాక్సెస్ మోడ్‌ను పేర్కొనడం ద్వారా దాన్ని తెరవాలి:

COBOL
       OPEN INPUT SALES-FILE.

ప్రధాన రీతులు:

  • INPUT: ఫైల్ చదవడానికి మాత్రమే మోడ్‌లో తెరవబడింది. ఫైల్ తప్పనిసరిగా డిస్క్‌లో ఉండాలి, లేకపోతే ప్రోగ్రామ్ విఫలమవుతుంది.
  • OUTPUT: ఫైల్ రైట్ మోడ్‌లో తెరవబడింది. ఫైల్ ఇప్పటికే ఉన్నట్లయితే, దాని మునుపటి కంటెంట్ తొలగించబడుతుంది (ఓవర్‌రైట్). అది ఉనికిలో లేకుంటే, అది సృష్టించబడుతుంది.
  • EXTEND: డేటాను జోడించడానికి ఫైల్ తెరవబడింది. ఇప్పటికే ఉన్న ఫైల్ చివరి నుండి కొత్త రికార్డులు వ్రాయబడతాయి.
  • I-O: ఫైల్ చదవడం మరియు వ్రాయడం రెండింటి కోసం తెరవబడింది (ఎక్కువగా సాపేక్ష లేదా ఇండెక్స్డ్ యాక్సెస్ ఫైల్‌ల కోసం ఉపయోగించబడుతుంది, లీనియర్ సీక్వెన్షియల్ ఫైల్‌లు కాదు).

2. రీడింగ్ డేటా: ది రీడ్ స్టేట్‌మెంట్

సీక్వెన్షియల్ ఫైల్ నుండి రికార్డ్‌ను చదవడానికి, మేము READ స్టేట్‌మెంట్‌ని ఉపయోగిస్తాము. ఫైల్ ఎన్ని రికార్డ్‌లను కలిగి ఉందో మాకు ముందుగా తెలియదు కాబట్టి, మేము ఎల్లప్పుడూ AT END నిబంధనను ఉపయోగించి ఫైల్ ముగింపు (EOF) స్థితిని నిర్వహించాలి:

COBOL
       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 వ్రాయడం అనేది సంకలనాన్ని నిరోధించే సాధారణ వాక్యనిర్మాణ లోపం.

COBOL
       MOVE 1001 TO EMP-ID.
       MOVE "MARIO ROSSI" TO EMP-NAME.
       WRITE SALES-RECORD.

WRITE స్టేట్‌మెంట్‌ను అమలు చేయడానికి ముందు, FD రికార్డ్ స్ట్రక్చర్ యొక్క సబార్డినేట్ ఫీల్డ్‌లు (ఈ సందర్భంలో, SALES-RECORD) తప్పనిసరిగా మెమరీలో ఉండాలి.


4. ఫైళ్లను మూసివేయడం: క్లోజ్ స్టేట్‌మెంట్

ప్రాసెసింగ్ పూర్తయినప్పుడు, సిస్టమ్ వనరులను విడుదల చేయడానికి మరియు మొత్తం డేటా డిస్క్‌కు వ్రాయబడిందని నిర్ధారించుకోవడానికి ప్రతి ఓపెన్ ఫైల్ తప్పనిసరిగా మూసివేయబడాలి:

COBOL
       CLOSE SALES-FILE.

CLOSE స్టేట్‌మెంట్ లాజికల్ ఫైల్ పేరును దాని ఆర్గ్యుమెంట్‌గా తీసుకుంటుంది, రికార్డ్ పేరు కాదు.


దీన్ని ప్రయత్నించండి

వ్యాయామం#cobol.m5.l2.e1
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

ఇన్‌పుట్ మోడ్‌లో సేల్స్-ఫైల్‌ని తెరిచి, మొదటి రికార్డ్‌ను చదవడం ద్వారా మరియు ఫైల్ ముగింపుకు చేరుకున్నప్పుడు WS-EOF నియంత్రణ వేరియబుల్‌ను 'Y'కి సెట్ చేయడం ద్వారా ప్రొసీడర్ డివిజన్‌ని పూర్తి చేయండి. చివరగా, ఆపే ముందు ఫైల్‌ను మూసివేయాలని గుర్తుంచుకోండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

క్రమంలో వ్రాయండి: ఇన్‌పుట్ సేల్స్-ఫైల్ తెరవండి. ఆపై సేల్స్-ఫైల్ ఎట్ ఎండ్ 'Y'ని WS-EOF ముగింపు-రీడ్‌కి తరలించండి ఆపై సేల్స్-ఫైల్‌ను మూసివేయండి. మరియు చివరకు రన్ ఆపండి.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం#cobol.m5.l2.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

అవుట్‌పుట్ మోడ్‌లో సేల్స్-ఫైల్ తెరవడం ద్వారా ప్రొసీడర్ డివిజన్‌ని పూర్తి చేయండి. విలువ 1001ని SALES-IDకి మరియు 250.50ని SALES-AMOUNTకి తరలించి, ఆపై సేల్స్-రికార్డ్‌ని ఫైల్‌కి వ్రాయండి. చివరగా, ప్రోగ్రామ్‌ను ఆపే ముందు ఫైల్‌ను మూసివేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

ఓపెన్ అవుట్‌పుట్ సేల్స్-ఫైల్‌తో ఫైల్‌ని తెరవండి., సేల్స్-ఐడి మరియు సేల్స్-మొత్తానికి విలువలను కేటాయించడానికి మూవ్ ఉపయోగించండి, రైట్ సేల్స్-రికార్డ్ అమలు చేయండి. (రికార్డ్ రాయడం, ఫైల్ కాదు!), క్లోజ్ సేల్స్-ఫైల్‌తో మూసివేయండి. మరియు STOP RUNతో ముగించండి.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది