פרק 7 - הוראת MOVE.

ד. הצבה אלפאנומרית.

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

 הצבה אלפאנומרית פירושה:

  הצבה (MOVE) אלפאנומרית                            

  קבוע מספרי

     
  1.  העברה של שדה אלפאנומרי (שדה המכיל ספרות, רווחים ואותיות), המוגדר במשפט PICTURE באותיות X, לשדה אלפאנומרי אחר.

  2. העברה של קבוע אלפאנומרי לשדה אלפאנומרי.

  3. העברה של קבוע מספרי לשדה אלפאנומרי.

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

דוגמא 1

FLDA  PIC X(3)

תוכן: ABC

FLDB  PIC X(5)

תוכן: DEFGH

ההוראה: .MOVE  FLDA  TO  FLDB

לפי הכלל שלעיל, יועברו הנתונים משמאל לימין, כך ש:

א) האות A, שב-FLDA  מחליפה את האות D ב-FLDB .

ב) האות ,B שב-FLDA  מחליפה את האות E ב-FLDB.

ג) האות C, שב- FLDA מחליפה את האות F ב-FLDB.

התווים הימניים, שלא התמלאו, מוחלפים ברווחים. כך:

ד) האות G ב-FLDB מוחלפת ברווח.

ה) האות H ב-FLDB מוחלפת ברווח.

 ב-FLDB מתקבלת התוצאה ‘ABC  . כבמקרה הקודם, גם כאן לא נשמר שום חלק בשדה המקבל המקורי.

תוצאות זהות לנ"ל היינו מקבלים, לו נתבצעה,ההוראה .MOVE  ‘ABC’  TO  FLDB. החלפנו משתנה בקבוע שאינו מספרי, בעל תוכן זהה, והתוצאה זהה אף היא.

 

דוגמא 2

CDE  PICTURE  X(4)

 תוכן: NAME.

OUT-AREA  PICTURE  XXX

תוכן: תווי רווח

ההוראה: MOVE  CDE  TO  OUT-AREA.  

במקרה זה:

א) האות N שב- CDE מחליפה את תו-הרווח השמאלי ב-OUT-AREA

ב) האות  Aשב- CDE מחליפה את תו-הרווח ,האמצעי ב-OUT-AREA

ג) האות M שב-CDE מחליפה את תו'הרווח הימבי ב-OUT-AREA

 הביצוע נפסק בנקודה זו, הואיל והשדה המקבל התמלא. שוב, מתרחשת קטיעה, אך הפעם של התווים הימניים. אפשר למנוע זאת, כמו במקרה של הצבות מספריות, אם השדה המקבל גדול לפחות כמו השדה השולח. תוצאה זהה היתה מתקבלת, לו נתבצעה ההוראה:MOVE  'NAME'  TO  OUT-AREA .

 

דוגמא 3

FLDA  PIC  999

תוכן: 321

FLDB  PIC  XXXX

תוכן: DCBA  

הוראה: MOVE  FLDA  TO  FLDB   

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

א) הספרה 3 ב-  FLDAמחליפה את האות D ב-FLDB .

ב) הספרה 2 ב-  FLDAמחליפה את האות C ב-FLDB .

ג) הספרה 1 ב-  FLDAמחליפה את האות B ב-FLDB .

ד) תו רווח מחליף את האות A ב-  FLDB .

הבחנת בוודאי, כי הוראות MOVE אלפאנומריות מבצעות העברות נתונים משדה מספרי לשדה אלפאנומרי; אולם העברה הפוכה, של שדה אלפאנומרי לשדה מספרי, לא הוזכרה.

נניח כי נתון שדה FLDC, שמשפט ה- PICTURE שלו הוא באותיות - X, המכיל נתונים מספריים. האם אפשר להעביר את תוכנו אל תוך שדה מספרי? בדומה לכך, האם אפשר לבצע MOVE  '123'  TO  FLDD, אם FLDD מוגדר ע"י משפט PICTURE עם ספרות- 9?

במילים פשוטות, האם מותר להעביר שדות או קבועים אלפאנומריים לתוך שדות מקבלים מספריים?

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

פריטים מקובצים (GROUP ITEMS)

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

 דוגמא 

 02  DATE1.  

03   MONTH  PICTURE  99.        

03   YEAR  PICTURE  99.        

אם מעבירים את MONTH, או את YEAR, לשדה אחר, ההעברה תתבצע לפי כללי ההצבה המספרית. אבל אם ינסה המתכנת להעביר את DATE1 כולו לשדה אחר, תיחשב ההעברה אלפאנומרית. להלן מופיעה טבלה, המפרטת הוראות- MOVE שונות. סימן V מסמן, שההצבה חוקית. סימן X מסמן, שהיא אסורה. כפי שתוכל לראות, קיימים שישה סוגי שדות-שולחים: שדות שולחים מספריים, אלפאבתיים, או אלפאנומריים, שיכולים להיות קבועים או משתנים. משתנה מספרי מוצב בדיוק באותה דרך כמו קבוע מספרי. השדות המקבלים מתחלקים לארבעה סוגים בלבד: מספרי, אלפבתי, אלפאנומרי או פריט מקובץ. אלה הם שדות-נתונים משתנים. קבוע, או קבוע מיוחד, אינו יכול לשמש שדה מקבל. יש לשים לב, שכאשר מתבצעת הצבה מסוג אחד של שדה לסוג אחר, תתבצע ההעברה תמיד לפי סוגו של השדה המקבל, אם היא חוקית.

מקובץ

אלפאנומרי

אלפביתי

מספרי

שדה שולח

V

V

 X

 V

 מספרי

V

 V

 V

 X

 אלפביתי

 V

V

V

X

אלפאנומרי

V

V

 X

V

(אפסים)ZEROS

 V

V

V

X

(רווחים)SPACES

V

V

V

X

מקובץ

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

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

שאלות להערכה עצמית >>

 

נושאים

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

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