פרק 6 - חטיבת הביצוע (PROCEDURE DIVISION)

ב. הוראת READ

 

לאחר שפתחנו קובץ כקלט, ניתן לבצע בו הוראת READ. הוראה זו מעבירה נתונים מיחידת הקלט, אל שטח-אחסון הקלט, שהוגדר בקטע הקבצים של חטיבת הנתובים.

 

 מבנה הוראת READ

.(הוראות) AT END  (שם-קובץ) READ 

 

שם הקובץ, המופיע בהוראת READ, כבר מופיע בשלושה מקומות קודמים בתכנית:

 
     
  1. בהצהרת SELECT, המצביעה על שם הקובץ ויחידת הקלט/פלט, אליה שייך קובץ זה. אם, לדוגמה, מכשיר הקלט הוא קורא דיסקטים, תעביר הוראת-READ נתונים מרשומת קלט אשר על הדיסקט אל שטח נתוני הקלט אשר בזיכרון המחשב.

  2. קטע FD , המתאר את הקובץ.

  3. הוראת OPEN, המאפשרת גישה לקובץ.

 

תפקידה העיקרי של הוראת READ הינו להעביר רשומה אחת של נתונים אל האחסון; כלומר, בכל פעם שמתבצעת הוראת READ, נקראת רשומה אחת . לפקודת READ גם מספר תפקידים נוספים.  

OPEN, גם הוראה זו מבצעת מספר בדיקות. היא בודקת את אורכה של כל רשומת קלט, כדי להבטיח שהוא מתאים לאורך שצויין בחטיבת הנתונים. אם קיים חוסר התאמה - ייחשב הדבר כשגיאה בעלת האיפיון "אורך רשומה בלתי מתאים", וביצוע התכנית יופסק. הוראת READ תשתמש גם בהצהרה CONTAINS BLOCK, אם צויינה, כדי לבדוק את התאמת החלוקה לגושים.  על אף העובדה, שמטרתה העיקרית של הוראת  READ הינה להעביר נתונים, הרי פעולות בדיקה אלה הינן חיוניות לביצוע התכנית.

החלק AT END בהוראת READ בודק, אם יש נתונים נוספים. בצירוף עם הוראת READ, מורה למחשב מה עליו לעשות, במקרה שאין נתוני קלט נוספים. בדרך כלל, תיכתב הוראת READ כך:

MOVE 1 TO EOF AT END (שם-קובץ) READ   

 

 דוגמא

.READ FILE-1 AT END MOVE 1 TO EOF

בכל המחשבים קיים בקובץ סימון לגבי סוף הקובץ. סימון זה הוא שגורם לביצוע התנאי AT END .  יש לציין תנאי AT END בכל הוראת READ. כלומר, יש לציין למחשב, מה צריך לעשות כאשר נגמרים הנתונים. יש מקרים, בהם ניתן להשמיט את הוראת AT END , מקרים אלה הינם  מקרים מיוחדים, והם דנים בקבצים המאוחסנים בתקליטים מגנטיים       (DISK).

נתבונן בקטע הבא מחטיבת הנתונים:

FD   FILE-1                                                       

LABEL RECORDS ARE OMITTED,        

RECORD CONTAINS 20 CHARACTERS,

BLOCK CONTAINS 10 RECORDS,        

DATA RECORD IS REC.                         

01 REC.                                                           

02    NAME    PIC X(15).                           

02    AMT-OF-TRANS    PIC 9(5).             

נניח כי מתבצעת ההוראה: 

READ FILE-1 AT END MOVE 1 TO EOF.

15 התווים הראשונים של הנתונים מהסרט יושמו באחסון השדה, הנקרא NAME.

5 התווים הבאים ימוקמו בשדה, הנקרא TRANS-OF-AMT. הסדר בו מצויינות ההצהרות ב- DIVISION DATA הוא בעל השיבות רבה . הנתונים מוכנסים אל השדות לפי הסדר, בו מופיעים שמותיהם. פקודת READ תבצע גם פעולות בדיקה. אורך הגוש על הסרט ייבדק, אם הוא מכיל 200 תווים, או 10 רשומות, ברגע בו תתבצע קריאה של גוש. כל אי התאמה תגרום לשגיאת קלט/פלט מהסוג "אורך רשומה בלתי מתאים", אשר תגרום הפסקת הביצוע.

באופך דומה, בעת קריאת נתונים מדיסקט יושמו הטורים הראשונים של הרשומה בשדה הראשון, המצויין בהטיבת הנתונים. הבדיקה שתתבצע תהיה מורכבת פהות, מאחר שרשומות דיסקט, המוקלדות באופן חיצוני על מכונת הקלדה, אינן מאורגנות בגושים.  

קודם | תחילת הדף | הבא

 

נושאים

פרק 3 - חטיבת הזיהוי                               (IDENTIFICATION DIVISION)
פרק 6 - חטיבת הביצוע                               (PROCEDURE DIVISION)
פרק 14 - הוראת DISPLAY ו-ACCEPT

.איתן 2002. כל הזכויות שמורות למערכת המידע איתן ©