פרק 6 - חטיבת הביצוע (PROCEDURE DIVISION) |
ד. הוראת STOP RUN ו CLOSE
|
נמשיך
ונשתמש בדוגמא, אשר הופיעה בפרק הקודם.
השגרה
CALC-RTN
תתבצע, עד שיתקיים השוויון EOF
= 1
, כלומר, עד שאין יותר רשומות קלט. בנקודה זו
יחזור הביצוע להוראה, שאחרי הוראת PERFORM, ביחידה הראשית. מאחר ועיבדנו את כל
הרשומות, אנו רוצים כעת לבצע את פעולות סיום-התכנית
(END OF JOB). פעולות אלה כוללות
בדרך כלל שחרור של הקבצים בהם טיפלנו,
והפסקת העיבוד.
קיימות
שתי הוראות, המהוות חלק הכרחי בכל שגרת סיום-תכנית.
עלינו לסגור (CLOSE) את כל הקבצים, כדי לציין, שאין הם
דדושים לנו יותר לעיבוד; ועלינו להורות
למחשב להפסיק את מהלך התכנית (STOP).
הוראת
CLOSE
לכל
קובץ, שאנו משתמשים בו בתכנית, עלינו לגשת
באמצעות הוראת OPEN,
לפני שנוכל לכתוב עליו או לקרוא ממנו. הוראת
CLOSE דרושה בסיום הביצוע, לאחר שעובדו כל
הרשומות, וזאת כדי לשחרר את
הקבצים.
אנו כותבים:
לכל
הקבצים, שנפתחו במהלך התכנית, יש לבצע הוראת
סגירה בתום העיבוד. בדומה ל-OPEN, תבצע גם
הוראת CLOSE מספר פעולות נוספות. כאשר יוצרים,
לדוגמה, רשומות על סרט מגנטי, תיצור הוראת
CLOSE רשומת סיום קובץ, ותגלגל חזרה (REWIND) את הסרט למצבו המקורי. שים לב, כי
הוראת
CLOSE, שלא כמו הוראת OPEN. אינה מציינת אילו קבצים הם קובצי קלט
ואילו קובצי פלט. לדוגמה, כדי
לגשת לקבצים, אנו אומרים:
.OPEN
INPUT FILE-1, OUTPUT FILE-2
|
אולם, כדי לשחרר אותם, אומרים:
חיוני
להבחין בין קובצי קלט ופלט לפני שמתחילים
בעיבוד, אולם אין לכך משמעות עם סיום העיבוד.
כמו בהוראת OPEN, שני קטעי הקידוד הבאים הינם בעלי
משמעות זהה:
CLOSE
FILE-1, FILE-2, FILE-3.
ו
CLOSE
FILE-1.
CLOSE
FILE-2.
.CLOSE
FILE-3
|
אם אין סוגרים את הקבצים השונים בנקודות
שונות במהלך התכנית, נחשבת השיטה השנייה
בלתי-יעילה.
הוראת
STOP
RUN
הוראת
STOP
RUN מורה למחשב לסיים את עבודתו.
OPEN
INPUT FILE-1, OUTPUT FILE-2.
READ
FILE-1 AT END MOVE 1 TO EOF.
PERFORM
CALC-RTN UNTIL EOF=1.
CLOSE
FILE-1,FILE-2.
.STOP RUN
|
ההוראות ב-CALC-RTN יכללו:
-
הוראות
העיבוד לרשומה.
-
הוראת
READ לקריאת הרשומה הבאה.
-
תנאי
AT
END, המורה למחשב להציב 1 ב-EOF.
|
CALC-RTN.
…
.READ
FILE-1 AT END MOVE 1 TO EOF
|
אנו
מניחים, כי ב-CALC-RTN ברצוננו לעבד נתונים בדרך כלשהי,
וליצור רשומות-פלט..
עתה, כאשר אנו יודעים לפתוח (OPEN) קובץ ולקרוא (READ) ממנו, נצטרך לאחסן נתונים בשטח
הפלט; כך שכאשר נכתוב פקודת -
WRITE ייכתב מידע כל שהוא בקובץ הפלט.
קודם | תחילת הדף | הבא
|