פרק 5 - חטיבת הנתונים (DATA DIVISION) |
ז. השימוש בתווי מילוי FILLERS
|
נבחן את התכנון הבא של הרשומה
טורים 1-25 EMPLOYEE-NAME (שם
העובד) ,
טורים 26-30 אינם בשימוש
טורים 31-35 HOURS-WORKED (שעות
העבודה)
טורים 36-80 אינם בשימוש
|
טורים 26-30 ו-36-80 איבם מכילים כל נתון משמעותי. עם זאת, יש
לציין אותם כשדות בתיאור הרשומה. לו
היינו אומרים (בצורה בלתי נכונה):
01 TIME-CARD.
02 EMPLOYEE-NAME PIC A(25).
02 HOURS-WORKED PIC 9(5).
|
היה הדבר גורם לשתי שגיאות עיקריות:
|
-
המחשב היה מניח, כי השדה כ - HOURS-WORKED
בא מיד לאחרי השדה EMPLOYEE-NAME,
הואיל והוא השדה, המופיע מיד לאחריו. פקודת READ, במקרה
כזה, היתה ממקמת את טורים 30-26 באזוו האחסון, הנקרא
HOURS-WORKED.
-
משפט ה-PICTURE צריך להסתכם ב-80
תווים, יולא ב-30, כמו כאן. כאן הגדרנו 30 תווים בלבד.
|
כדי לציין שדה, שאין בו נתון בעל משמעות, ניתן ב-COBOL
להשתמש במלה השמורה FILLER, במקום ליצור שם משתנה
מיוחד. שדה -FILLER, בעל משפט PICTURE
מתאים, מציין שטח ברשומה, אשר איננו משתמשים בו כרגע. לא ניתן לגשת אל שדה
FILLER, המציין שדה שאין משתמשים בו, בחטיבת הביצוע.
המשפט .
MOVE FILLER TO OUT-AREA, למשל, הוא בלתי חוקי. אם כן, קטע
תיאור הרשומה מקודד, בדרך כלל, כך:
01 TIME-CARD.
02 EMPLOYEE-NAME PIC A(25).
02
FILLER
PIC X(5).
02 HOURS-WORKED PIC 9(5).
02
FILLER
PIC X(45).
|
לעולם אין להשתמש בשם רשומה או קובץ יותר מפעם אחת בהטיבת
הנתונים. אנו נראה, כי שם-נתון אחד יכול, אם קודד כראוי, לשמש להגדרת מספר
שדות.
ככלל, אנו מציינים שדה כמספרי (נומרי) באמצעות
PICTURE 9, כאשר יש לבצע בו פעולות חשבוניות. כאשר אנו מציינים
שדה בצורה זו, מותר לנתונים בשדה להיות מורכבים מספרות וסימן היובי או שלילי
בלבד. רווח, למשל, אינו תו חוקי בשדה מספרי. שדה, המוגדר כמספרי, יכיל, אם כן,
רק תווים מספריים חוקיים וסימן חיובי או שלילי. יצויין, כי שדה אלפאנומרי יכול להכיל כל
נתון שהוא, כולל מספרים. כך 123 בשדה בשם FLDA,
המתואר ע"י PICTURE XXX, הינו תוכן חוקי בהחלט. עם זאת,
לא ניתן להשתמש ב-FLDA, על פי הגדרה זו, בפעולות
חשבונ'ות. בפעולות חשבוניות ניתן להשתמש רק בשדות בעלי תצורה מספר'ת.
לסיכום, שדות שאנו עומדים לבצע בהם פעולות חשבוניות, - יש
לציין ב-PICTURE, המורכב מספרות 9. אם יש ספק באשר
לתוכן השדה, יש להגדירו כאלפאנומרי, מאהר ששדה כזה יכול להכיל כל תו.
קודם | תחילת הדף | הבא
|