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

פתיחת קובץ

כדי שנוכל לבצע פעולת קלט/פלט כלשהיא על קובץ, דבר ראשון עלינו לפתוח אותו. כדי לפתוח קובץ נשתמש בפונקצית הספריה  open() באופן הבא:

open (filevar,filename)

הארגומנטים לפונקציה הם:
filevar - משתנה הקובץ שבעזרתו אנו רוצים לפנות לקובץ מתוך התוכנית (file handle)
filename - שם הקובץ אותו אנו רוצים לפתוח, כולל המסלול המלא אליו.

יש שלוש אפשרויות לפתיחת קובץ:

  1. קריאה בלבד (read only)
    פתיחת קובץ לקריאה היא ברירת המחדל, ואין צורך להוסיף דבר לפקודת   open(filevar,filename) 
  2. כתיבה בלבד (write only)
    כדי לפתוח קובץ לכתיבה, יש להוסיף את התו   >   לפני שם הקובץ אותו רוצים לפתוח. לדוגמא:
    open (FileHandle
    /*משתנה הקובץ שלנו, איתו נפנה לקובץ מתוך התוכנית*/
    ,">/log/newlog.txt"
    /*הקובץ אותו רוצים לפתוח, הסימן < מסמן שהקובץ יפתח לכתיבה*/
    );

  3. ! שים לב פתיחת קובץ קיים לכתיבה תמחוק את כל מה שהיה בו.


  4. הוספה בלבד (append only)
    כדי לפתוח קובץ להוספה, יש להוסיף את התו   >>   לפני שם הקובץ אותו רוצים לפתוח. לדוגמא:
    open (FileHandle2
    /*משתנה הקובץ שלנו, איתו נפנה לקובץ מתוך התוכנית*/
    ,">>/log/existinglog.txt"
    /*הקובץ אותו רוצים לפתוח, הסימן << מסמן שהקובץ יפתח להוספה, והמידע הקיים בו ישמר*/
    );

    כל מידע שיכתב לקובץ יתווסף לו החל מסופו של הקובץ הקיים. המידע הקיים לא ימחק.

! שים לב אין אפשרות לפתוח את אותו קובץ ליותר מסוג פעולה אחד. (לדוגמא - פתיחה גם לכתיבה וגם לקריאה)



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

  • ערך שאינו אפס אם הפתיחה הצליחה.
  • ערך אפס אם פתיחת הקובץ נכשלה.

בדיקה פשוטה תראה כך:

if (!open(FileHandle,">log.new")
/*פתיחת הקובץ ובדיקת ההצלחה*/
)
{
    print ("opening log.new for writing failed");
/*הדפסת הודעת הכישלון*/

}
else
{
    .....
/*בלוק הפקודות שנבצע במידה והפתיחה הצליחה*/

}

אחרי שפתחנו את הקובץ ווידאנו שהוא נפתח בהצלחה, נראה איך לפנות לקובץ.









להוספת תגובה, אנא התחברו לדרכונט.