» נושאי לימוד
» נושאי לימוד
יום ראשון 22 בדצמבר 2024
קבצים
דף ראשי  פרק 4: נושאים מתקדמים בפסקל  קבצים גרסה להדפסה

קבצים

 

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

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

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

                                                          

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

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

נניח כי נתונה התוכנית הבאה המגדירה קובץ:

 

program  FILE;

var

   F1:file of integer;

begin

  ·                   

  ·          

end.

 

בהגדרת הקובץ פגשנו בשם קובץ ולאחריו סוג הקובץ.במקרה זה הקובץ מיועד לשמור ערכים שלמים בלבד.

ניתן היה לרשום:

 

;F1:file of real

 

ואז הקובץ היה מיועד לשמור ערכים ממשים בלבד.

או:

 

; F1:file of char

 

כאשר הקובץ מיועד לשמור ערכים תווים בלבד.

 

אופן הגדרת הקובץ:

;סוג המשתנים file of :שם הקובץ

 

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

הפסקל משתמש בשירותי  ה-DOS לצורך שימוש בדיסק.לכן צריך לספק ל-DOS את השם שיופיע על הדיסק.שם שנראה כאשר נקיש DIR ע"מ לראות איזה קבצים יש על הדיסק.

ההוראה assign מאפשרת ל-DOS לרשום את הקובץ על הדיסק.

 

program  FILE;

var

     F1:file of integer;

begin

      assign(F1,'AAA.DAT');

         ·                   

         ·          

         ·          

end.

 

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

 

('שם הקובץ על הדיסק',שם הקובץ בתוכנית)assign

 

ניתן היה כמובן, לרשום כל שם אחר במקום AAA.DAT כמו:

 

;('assign(F1,'F1

 

כלומר,אפילו אותו שם.רק צריך לזכור ש-DOS לא מקבל יותר מ-8 תווים בשם הקובץ ושלושה תווים כתוספת אחרי הנקודה.כלומר,האורך המקסימלי  של שם הקובץ לשימוש ה-DOS הוא:

XXXXXXXX.XXX

 

בהמשך התוכנית, בכל פעם שיירשם הקובץ F1,באופן אוטומטי הפסקל יאמר ל-DOS את השם המכוון אליו.

 

השלב הראשון לשימוש בקובץ הוא הצורך ליצור קובץ כך שנוכל לכתוב אליו נתונים.לצורך הכנת קובץ לכתיבה נשתמש בהוראת rewrite כלומר,כתוב מחדש.

 

נניח כי רוצים לכתוב לקובץ F1,לכן נרשום:

 

program  FILE;

var

     F1:file of integer;

begin

    assign(F1,'AAA.DAT');

    rewrite(F1);       

       ·                   

       ·          

       ·          

end.

 

ע"י כך שרשמנו את ההוראה rewrite ובסוגריים את הקובץ (המתקשר לשם הקובץ בתוכנית ולא לשם הנמסר ל-DOS ),פתחנו את הקובץ והכנו אותו לכתיבה.

אם הקובץ לא קיים, ה-DOS  ידאג לפתיחת קובץ חדש.

אם הקובץ כבר קיים ,הקובץ הקיים יימחק ויוכן שוב לכתיבה.

הכנת קובץ לכתיבה:

                                               ;(שם הקובץ בתוכנית)rewrite

 

לצורך רישום נתונים לקובץ זה,נשתמש בהוראת write בלבד המוכרת לנו:

 

program  FILE;

var

     F1:file of integer;

begin

      assign(F1,'AAA.DAT');

      rewrite(F1);

      write(F1,I,I,I);       

         ·                   

         ·          

         ·          

end.

 

בקטע תוכנית זו,רשמנו בקובץ F1 שלושה נתונים המאוחסנים

במשתנה I. תחילה רושמים את שם הקובץ ולאחריו פסיק

והמשתנים שיישמרו בקובץ עם פסיקים מפרידים.

כתיבה לקובץ המאחסן סוג משתנה אחד:

                                  ;(...,משתנה,משתנה,שם קובץ בתוכנית)write

 

סיימנו את הכתיבה לקובץ ועתה הגיע זמן סגירתו של הקובץ:

 

program  FILE;

var

     F1:file of integer;

begin

      assign(F1,'AAA.DAT');

      rewrite(F1);

      write(F1,I,I,I);

      close(F1);      

end.

 

ההוראה close סוגרת את הקובץ. 

שם הקובץ נרשם בין הסוגריים.כל קובץ שניפתח חייב להסגר לפני סיום התוכנית.

 

סגירת קובץ:

                                                       ;(שם הקובץ בתוכנית)close

 

דוגמא:

כתוב תוכנית הרושמת לקובץ את כל המספרים בין 1 ל- 100.

 

פיתרון:

 

 

 להורדת הדוגמא לחץ כאן

 

נביט לתוך הקובץ כדי להבין את המנגנון הפנימי המבצע את הכתיבה.

בדיסק הקובץ נשמר משתנה אחר משתנה במקום הפנוי הראשון שנמצא.

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

 

כדי שנוכל לקרוא שוב מהקובץ יש להעמיד את המצביע בתחילת הקובץ ולשם כך קיימת ההוראה reset.

ההוראה reset תשמש את התוכנית בכל פעם שנרצה להציב את המצביע על תחילת הקובץ.

 

 22-03-04 / 13:19  עודכן ,  02-09-03 / 18:02  נוצר ע"י ליזי פרגו'ן  בתאריך 
 שילוב מילות יחס - הקודםהבא - פעולות עם קבצים 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 9