1 עבודה עם קבצי טקסט  סוגי קבצים  קובץ טקסט  קובץ בינארי  פתיחה וסגירה של קובץ  פונקציות לקריאה ולכתיבת תו  פונקציות לקריאה ולכתיבת שורה  פונקציות.

Slides:



Advertisements
Similar presentations
קבצים קרן כליף.
Advertisements

Files 1 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015.
מבוא למדעי המחשב לתעשייה וניהול
Text File Input and Output. Overview Text File Buffered I/O Functions fopen Function Demo of File Write and Read.
מבוא כללי למדעי המחשב תרגול 1. כתיבת התוכנה כתיבת התוכנית עצמה נעשית ע " י כתיבת קובץ טקסט רגיל אשר תוכנו מקיים את כללי שפת C כתיבת התוכנית עצמה נעשית.
מערכות הפעלה תרגול 7 – ק/פ ותקשורת תהליכים ב-Linux.
1 מבוא למדעי המחשב משתנים. 2  סוגי משתנים בשפת C  ההבדלים בין סוגי המשתנים השונים.
תכנות תרגול 9 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
1 מבוא למדעי המחשב תרגול מספר 2. 2 בשיעור הקודם... הגדרות שפת מחשב, שפה עילית, קומפיילר, תוכנית בשפת C, קובץ הרצה קובץ (טקסט) המכיל תוכנית בשפת C (hello.c)
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
תוכנה 1 - חזרה שולי לב יהודי 2 Arrays and Strings מערך - אוסף משתנים בעלי שם משותף. הפנייה לכל איבר נעשית ע ” י אינדקס. ב -C מערך מוגדר.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
A. Frank File Organization Stream Model מודל תזרים Thanks to Adi Gutman and Noa Cohen.
חלון הפקודות מיועד לבצע פעולה אחת בכל פעם. כיצד אפשר לבצע רשימת פקודות או אפליקציות מורכבות ?
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
מבוא למדעי המחשב מחרוזות, מצביעים וכתובות
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מנפה שגיאות - DEBUGGER מבוא למדעי המחשב (234114) רועי מלמד
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תרגול 2 העברת פרמטרים לתוכניות ב -C קלט ופלט ב -C I/O redirection זיכרון דינמי מצביעים מערכים גישות לא חוקיות לזיכרון.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
תרגול 10: הכרות עם ++C ++C כ- C משופר
1 מבוא למדעי המחשב ארגומנטים לתוכנית בזמן ריצה קבצים הקדם מעבד Preprocessor טיפוסים סדורים Enumerated Types Typedef.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
תכנות תרגול 4 שבוע : לולאות for לולאות for for (counter=1 ;counter
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
Last time on Clang משתנה: "פתק" המשמש את המחשב לשמירת מידע. לכל משתנה יש שם וטיפוס כללים לשמות משתנים –חייבים להכיל רק אותיות, מספרים ו '_' –חייבים להתחיל.
תוכנה 1 - תרגול שיעור 10 Pointers (2) שולי לב יהודי
מבוא למדעי המחשב שפת c
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Text to speech In Mobile Phones איתי לוי. הקדמה שימוש בהודעות טקסט על המכשירים הסלולארים היא דרך תקשורת מאוד פופולארית בימינו אשר משתמשים בה למטרות רבות,
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 8 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא.
תכנות תרגול 1 שבוע : צור קשר מתרגל – ליעם רודיטי, ביה " ס למדעי המחשב. מתרגל – ליעם רודיטי, ביה " ס למדעי המחשב. דואר אלקטרוני :
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
File IO and command line input CSE 2451 Rong Shi.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
C Programming Lecture 12 : File Processing
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
מבנים קרן כליף. ביחידה זו נלמד :  מהו מבנה (struct)  איתחול מבנה  השמת מבנים  השוואת מבנים  העברת מבנה לפונקציה  מבנה בתוך מבנה  מערך של מבנים.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
מחרוזות – הטיפוס String
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב לתעשייה וניהול
Chapter 4 File Processing
תירגול 14: מבני נתונים דינאמיים
תרגול 3 קלט פלט בסיסי תקשורת בין תהליכים
מבנים קרן כליף.
שיעור שישי: מחרוזות, מצביעים
מבוא כללי למדעי המחשב פונקציות
תרגול מס' 5: IO (קלט-פלט) זרמי קלט וזרמי פלט ((Input & Output Streams,
ניתוח מערכות מידע תכנות ב C#
מבוא כללי למדעי המחשב תרגול 4
מערכים של מצביעים הקצאה דינאמית
Shell Scripts בסביבת UNIX
תכנות מכוון עצמים ו- C++ יחידה 02 העמסת פונקציות, ערכי ברירת מחדל, enum, קימפול מותנה קרן כליף.
Computer Architecture and Assembly Language
Presentation transcript:

1 עבודה עם קבצי טקסט  סוגי קבצים  קובץ טקסט  קובץ בינארי  פתיחה וסגירה של קובץ  פונקציות לקריאה ולכתיבת תו  פונקציות לקריאה ולכתיבת שורה  פונקציות לקריאה לכתיבה מובנית

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

3 המבנה FILE ההמבנה מוגדר בקובץ stdio.hומכיל מידע אודות קובץ. המבנה הוא : typedef struct { shortevel; unsignedflags; charfd; מספר הזיהוי של הקובץ במערכת ההפעלה unsigned charhold; shortbsize; unsigned char*buffer, *curp;החוצץ דרכו נעשית הפעולה ומצביע למיקום הנוכחי בקובץ unsignedistemp; sorttoken; }FILE;על מנת שנוכל לפנות לקובץ עלינו להגדיר משתנה מסוג זה

4 פתיחת קובץ fopen ללפני התחלת השימוש בקובץ, לכל מטרה שהיא, חייבים לפתוח את הקובץ. הפתיחה עושה את הקובץ לזמין. הפונקציה כלולה בספריה stdio.h. ההאבטיפוס של הפונקציה לפתיחת קובץ : FILE *fopen(const char *filename, const char *mode); ככלומר הפונקציה מחזירה מצביע לטיפוס FILE,שהוא מבנה אשר מוצהר עליו ב-stdio.h.בשדות השונים של הטיפוס נעשה שימוש ע”י פונקציות שונות המתייחסות לקבצים. קריאה לפונקציה יוצרת מופע של המבנה ומחזירה מצביע למבנה זה. תתבנית הפונקציה : FOPEN(file_path, mode);

5 פתיחת קובץ - fopen - המשך ההסבר התבנית : ההפונקציה מחזירה מצביע לנתון מסוג FILE.אם הפונקציה נכשלת בפתיחת הקובץ, מוחזר הערך NULL. ההארגומנט filepathהוא שם הקובץ שרוצים לפתוח, כולל המסלול. אפשר לכתוב מחרוזת כלואה בין גרשיים או מצביע למחרוזת המאוחסנת בזיכרון. שם הקובץ נקבע בהתאם לכללי מערכת ההפעלה ההארגומנט Modeמציין את סוג הגישה לקובץ (טקסט או בינארי) ואת האופן שבו רוצים לפתחו את הקובץ (קריאה, כתיבה או קריאה וגם כתיבה). עעל מנת לפנות לקובץ עלינו להגדיר משתנה מסוג FILE,לדוגמא FILE *fp;

6 דדוגמא לשימוש בפונקציה לפתיחת קובץ : fopen (“C:\MyBooks\Autoexec.bat”, “r”); ההכונן הוא Cהתיקייה היא MyBooksושם הקובץ הוא Autoexec.bat ההקובץ נפתח למטרת קריאה (r).אפשר לפתוח קובץ כקובץ קלט (Input)או כקובץ פלט (Output)או כקובץ קלט ופלט (Append). אאני מעדיף לבצע את אותה פעולה בדרך הבאה : char file_name [] = “C:\MyBooks\Autoexec.bat”; char mode[] = “r”; fopen(file_name, mode);

7 הערכים שהארגומנט mode יכול לקבל rr -לפתיחת קובץ טקסט לקריאה. אם הקובץ לא קיים מוחזר הערך null ww -לפתיחת קובץ טקסט לכתיבה. אם הקובץ לא קיים, הוא נוצר, אם הקובץ קיים הוא נדרס. aa -לפתיחת קובץ טקסט להוספה (Append).אם הקובץ לא קיים, הוא נוצר. אם הקובץ קיים יתווספו הנתונים בסוף הקובץ. rrb-לפתיחת קובץ בינארילקריאה. אם הקובץ לא קיים מוחזר הערך null wwb -לפתיחת קובץ בינארי לכתיבה. אם הקובץ לא קיים, הוא נוצר, אם הקובץ קיים הוא נדרס. aab -פתיחת קובץ בינארי להוספה. כמו “a”/ ++r -פתיחת קובץ טקסט לקריאה ולכתיבה, השאר כמו r. ++w -פתיחת קובץ טקסט לקריאה ולכתיבה, השאר כמו w.

8 הערכים שהארגומנט mode יכול לקבל - המשך ++a -פתיחת קובץ טקסט לקריאה ולהוספה, השאר כמו a. ++rb -פתיחת קובץ בינארי לקריאה ולכתיבה, השאר כמו rb ++wb -פתיחת קובץ בינארי לקריאה ולכתיבה, השאר כמו wb ++ab -פתיחת קובץ בינארי לקריאה ולהוספה, השאר כמו ab

9 דוגמאות לשגיאות בעת פתיחת קובץ ההתייחסות לשם קובץ שאינו קיים בהוראת קריאה מהקובץ נניסיון לפתוח קובץ כאשר הכונן אינו מוכן (לדוגמא דלת פתוחה). נניסיון לפתוח קובץ כאשר התיקייה או הכונן אינם קיימים. נניסיון לפתוח קובץ מסוג שגוי, לדוגמא ניסיון לפתוח קובץ בינארי בתור קובץ טקסט. נניסיון לפתוח קובץ לכתיבה כאשר התקליטון מוגן. אאין למשתמש הרשאה לפתיחת הקובץ ברשת.

10 בדיקת הצלחה או כישלון בפתיחת קובץ ההפונקציה () fopenמחזירה ערך המציין אם פתיחת הקובץ הצליחה או נכשלה. עלינו לבדוק את הערך המוחזר. אאם פתיחת הקובץ נכשלה מוחזר הערך NULL. אאם פתיחת הקובץ הצליחה מוחזר הערך 1. דדוגמא לבדיקת הצלחת פתיחת הקובץ : fp_input = fopen(input_file_name, “rt”); if (fp_input == NULL) { fprintf(stderr, “Error during opening the file”); exit(1); }

11 סגירת קובץ fclose ללאחר סיום השימוש בקובץ, חייבים לסגור את הקובץ. הסגירה עושה את הקובץ ללא זמין. הפונקציה כלולה בספריה stdio.h. ההאבטיפוס של הפונקציה לסגירת קובץ : FILE *fclose(const char *filename); ככלומר הפונקציה מחזירה מצביע לטיפוס FILE,שהוא מבנה אשר מוצהר עליו ב-stdio.h.תבנית הפונקציה לסגירת קובץ : FCLOSE (FILE *fp); דדוגמא לשימוש בפונקציה לסגירת קובץ : fclose (fp); ההפונקציה מחזירה EOFאם סגירת הקובץ נכשלה.

12 קובץ טקסט Text file קקובץ זה הנוצר ע”י שפת Cיכול להיקרא ע”י כל תוכנה המסוגלת לקרוא קובץ טקסט. ההקובץ הוא למעשה רצף של שורות המופרדות ע”י התווים r\ו-n\ (סוף שורה ושורה חדשה). האורך המרבי של שורה הוא 255 תווים ההשורה מסתיימת בתו אחד או יותר המאותתים על “סוף שורה” בקובץ על דיסק וזאת בהתאם למערכת ההפעלה. במערכות הפעלה Dosו-Windowsתו “סוף שורה” הוא שילוב של CR-LF,כלומר r\ + n\. בבכתיבת מחרוזת לקובץ טקסט, מוחלף התו ‘0\’ מסוף המחרוזת בתו “סוף שורה”. בקריאה מקובץ טקסט מוסף התו ‘0\’ בסוף המחרוזת. בבכתיבה לקובץ מוחלף התו שורה חדשה ‘n\’בתו “סוף שורה”. בבקריאה מקובץ מוחלף התו “סוף שורה” לתו ‘n\’.

13 פונקציה לכתיבת תו () Fputc ההפונקציה כותבת תו אחד לקובץ ש-fpמצביע עליו. לאחר הכתיבה יקודם סמן הקובץ למיקום הבא. הפונקציה כלולה בספריה stdio.h. ההאבטיפוס של הפונקציה לכתיבת תו לקובץ : FILE *fputc(int ch, FILE *fp); ככלומר הפונקציה מחזירה מצביע לטיפוס FILE,שהוא מבנה אשר מוצהר עליו ב-stdio.h. תתבנית הפונקציה : FPUTC(variable_name, FILE *fp); דדוגמא לשימוש בפונקציה לכתיבת תו לקובץ: fputc(msg[I], fp); אאם הכתיבה נכשלת או שמגיעים לסוף הקובץ, תחזיר הפונקציה EOF

14 פונקציה לקריאת תו Fgetc() ההפונקציה ניגשת לקובץ ש-fpמצביע עליו וקוראת תו אחד ומחזירה אותו. לאחר הקריאה יקודם סמן הקובץ לתו הבא. ההאבטיפוס של הפונקציה לקריאת תו מקובץ : FILE *fgetc(FILE *); ככלומר הפונקציה מחזירה מצביע לטיפוס FILE,שהוא מבנה אשר מוצהר עליו ב-stdio.h. תתבנית הפונקציה : fgetc(FILE *fp); דדוגמא לשימוש בפונקציה לקריאת תו מקובץ : msg[I] = fgetc(fp); אאם הקריאה נכשלת או שמגיעים לסוף הקובץ, תחזיר הפונקציה EOF.

15 פונקציה לכתיבת שורה () fputs ההפונקציה כותבת לקובץ את המחרוזת שבמשתנה (line)ללא NULLמסיים. ההפונקציה איננה מוסיפה n, CR \או LFבסוף השורה. ההפונקציה מחזירה EOFאם נכשלה או את התו האחרון אם הצליחה ההאבטיפוס של הפונקציה לכתיבת שורה לקובץ : int fputs(const char *, FILE *); תתבנית הפונקציה : intFPUTS(char *line, FILE *fp); דדוגמא לשימוש בפונקציה לכתיבת שורה לקובץ : FILE *fp=fopen(“data.txt”, “wt”); fputs (f_name, fp);

16 פונקציה לקליטת מחרוזת (שורה) fgets ההפונקציה דומה לפונקציה ()getsבכך שהיא קוראת שורת טקסט מ- streamשל קלט. המתכנת יכול להגדיר את שם ה-streamהרצוי ואת מספר התווים המרבי שיקראו. ההפונקציה ניגשת לקובץ במקום ש-fpמצביע עליו וקוראת עד ל-Max (פחות 1) תווים או עד לסוף שורה (n, CR, LF\).הנתונים מאוחסנים במשתנה (line)כולל NULLמסיים. הקריאה לתוך מערך מסוג char. ההאבטיפוס : ;(char * fgets(char *str, int n, FILE *fp תבנית הפונקציה : char * fgets (char *line, int Max, FILE *fp); דוגמא לשימוש בפונקציה : ;(FILE *fp=fopen(“data.txt”, “rt” char buffer[100]; while(fgets(buffer, 100,fp)); ההקריאה מתבצעת ל-bufferעד סוף הקובץ. במקרה של שגיאה או סוף הקובץ, תחזיר הפונקציה NULL.

17 פונקציה לכתיבת פלט מובנה fprintf ההפונקציה כותבת לקובץ את כל מה שהוגדר במחרוזת הבקרה, כאשר תווי הבקרה המוגדרים בתו % מאפשרים לשלוט באופן כתיבת הנתונים. תבנית הפונקציה : int FPRINTF(FILE *fp, “מחרוזת בקרה”, var1…) דדוגמא : fprintf (fp, “\n%10d %8.2F %25s” a, b, c); יישנם 3 משתנים ולכן גם 3 תווי המרה. ההכתיבה מתבצעת משמאל לימין. למשתנה aמוקצים 10 תווים + רווח. למשתנה bמוקצים 8 תווים מתוכם 2 לאחר הנקודה העשרונית + רווח. למשתנה cמוקצים 25 תווים והוא יכתב כמחרוזת. השורה מסתיימת בתו שורה חדשה (n\). אאם הפונקציה מצליחה - יוחזר מספר התווים שנכתבו. אם הפונקציה נכשלה - יוחזר EOF.

18 פונקציה לקריאה קלט מובנה fscanf ההפונקציה () fscanfמשמשת לקריאת קלט מובנה מקובץ לתוך משתנים. תתבנית הפונקציה : int FSCANF(FILE *fp, “מחרוזת בקרה”, &var1…) ההפונקציה תחזיר את מספר הנתונים שנקלטו, הומרו ואוחסנו בהצלחה. אם הפונקציה נכשלת היא תחזיר EOF.

19 איתור סוף קובץ EOF ססוף קובץ אפשר לאתר בדרכים הבאות : ללבדוק אם התו התורן שנקרא הוא התו EOF.עלולה להיות בעיה בקבצים בינאריים כיוון שהתו EOFערכו הוא 1- והוא יכול להופיע באמצע הקובץ. דוגמא לשימוש : while ((c=fgetc(fp)!=EOF) { אפשר להמשיך לקרוא ולעבד את הקובץ } בבאמצעות הפונקציה () feof,אשר מחזירה 0 אם לא הגענו לסוף הקובץ או ערך שונה מ-0 אם הגענו לסוף הקובץ. תבנית הפונקציה : int feof(FILE *fp);