PracticU

Create File

בלי כתוביותעם כתוביות
PracticU › קורס C למתקדמים - עבודה מול חומרה Win32 › Create File
מילון מושגים:
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
C# - שפת תכנות מונחית עצמים של מיקרוסופט, המשמשת בעיקר לפיתוח יישומים על פלטפורמת .NET.
API - ממשק תכנותי שמגדיר כיצד תוכנה אחת פונה לאחרת ומחליפה איתה נתונים ופעולות.
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.

Create File
זו הרצאה על פתיחה וניהול של קובץ עם הפונקציה CreateFile ב-Win32: מה כל פרמטר עושה, איך בוחרים הרשאות ושיתוף, ואיך יוצרים קובץ חדש בשם קבוע.
השלבים העיקריים
1. פרויקט Win32 Console: בוחרים Visual C++ ו-Win32 ולא C#, כי הקוד נכתב ב-C++ ישירות מול ה-API.
2. CreateFile: הפונקציה פותחת ערוץ תקשורת מול הקובץ ומחזירה Handle. היא יכולה לפתוח גם תיקייה, דיסק, ערוץ תקשורת ו-named pipe, ולכן השם כללי.
3. Desired access: קובעים אם רוצים לקרוא, לכתוב או לעשות את שניהם. ההרצאה בוחרת File All Access כדי לאפשר הכל.
4. Share mode: קובעים אילו פעולות מותר לאחרים לבצע במקביל על הקובץ, כמו קריאה, כתיבה או מחיקה. ההרצאה מאפשרת לאחרים רק קריאה.
5. Security attributes: בשלב הזה משאירים את ברירת המחדל ולא מגדירים הרשאות מיוחדות.
6. Creation disposition: Create Always יוצר תמיד קובץ חדש. Create New נכשל אם הקובץ קיים. Open Existing נכשל אם הוא לא קיים. Open Always פותח אם קיים ויוצר אם לא.
7. Flags and attributes: מאפיינים כמו קריאה בלבד, מוסתר, או ארכיון. המרצה מציין שאם נבחר Normal הוא לא משתלב עם דגלים אחרים.
8. בדיקה: הקובץ מופיע בתיקיית ה-Debug, ליד קובץ ה-exe.
שימו לב
המרצה מדגים שכשמגדירים את הקובץ כקריאה בלבד, הוא לא נפתח לכתיבה. לכן חשוב לבדוק את המאפיינים לפני הפתיחה.
השיעור הבא בקורס: Write File

פרקי ההרצאה: Create File

  1. 00:00

    פתיחת פרויקט C++ ופונקציית CreateFile

  2. 02:01

    Handle לקובץ במקום שם הקובץ

  3. 02:36

    פרמטרים של CreateFile: שם הקובץ

  4. 03:18

    שם הקובץ בדוגמה: test01.txt

  5. 04:51

    Desired Access: קריאה וכתיבה

  6. 05:31

    Share mode: שיתוף הקובץ בין תהליכים

  7. 08:11

    Security Attributes וירושת הרשאות

  8. 08:49

    הגדרת Creation Disposition: Create Always

תמלול ההרצאה: Create File

הטקסט המלא של הדקות הראשונות בהרצאה «Create File» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:05

    טוב אז אנחנו רוצים היום לכתוב לכובד בואו נפתח visual studio ב-c++ create project נחכה לו לא csharp other languages c++ win32 זה יהיה right נהיה אחת right file בוא נגיד לו נלך לאפליקיישן סטינגס כי אני נתתי לו שם writefile זה שם הפרויקט

  2. 01:00

    בוא נעשה עם cancel ולא writefile writefile sample יפה ואוקיי ואפליקיישן סטינג קונסול אפליקיישן פרי קומפייד פיניש נחכה שיעלה וואלה מצוין אז אני רוצה לכתוב לכובד על מנת לכתוב לכובד כדי לכתוב לכובד יש פונקציה שנקראת writefile או הוא לא מכיר אותה אז בוא נראה קונטרול רווח הוא לא

  3. 01:35

    מכיר אותה כן זאתי פונקציה של windows בוא נוסיף עכבר ימני וopen document ופה בסוף או אפילו ניקח את זה לגרור עם עכבר ימני copy ולהוסיף פה את windows.h ctrl s ctrl f4 למטה וקונטרול שיפט רווח חודו או הנה הוא מכיר יפה אז ראית על כותרת לקורת אבל ואני רוצה הנדל של כובד.

  4. 02:11

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

  5. 02:32

    אז בואו קודם כל נפתח את הכובד. נגיד לו create file, פי איי פייל גם פותחת ערוץ תקשורת לכובד וגם אם אין כובד מייצרת כובד יפה ופה הפרמטר הראשון הוא lp-final מה השם של הכובד פה רואים שזה long pointer לקונסטנט y-string כי אנחנו ב-y הכל פה ב-y אז נעבוד ב-y אפשר כמובן לעבוד ב-a ואז זה יותר פשוט מה את מעדיפה ב-y או בלי y

  6. 03:11

    אני רוצה בלי כלום שהוא יבחר קונטרול שיפרה לך אנחנו צריכים את הפייל ניים אז טקסט והפייל ניים אז בואו נגיד לו שזה יהיה טסט 01.txt זה הפרמטר הראשון הפרמטר השני זה ה-desired access בואו פה אני כבר לא זוכר מה באמת צריך להגיד לו אז בואו נלך לקריאייט פייל קליק זה f1 כאילו שיעלה יופי נפתח לנו פה ו-create file, וזה נקרא to open the file,

  7. 03:50

    file stream, directory, physical disk, volume, console buffer, tape drive, communications, resource, mail slot, or named pipe.

  8. 04:02

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

  9. 04:27

    The function returns a handle that can be used to access the object to perform this operation as a transacted operation. Use the create for a transacted function.

  10. 04:38

    טוב, זה לא מעניין אותי כרגע. ו-create file, יפה. אז מה שאני רוצה, יפה, זה הפרמטר הראשון, הפרמטר השני, desired access.

  11. 04:46

    אני יכול לעשות קליק או ללכת לפה. ואז זה design access to the object which can be read, write, or both. זה בסך הכל מה שאנחנו רוצים. ובסופו של דבר מתרגזים ה-application can query files. אפשר לתקשר עם הקובץ, אבל זה לא מעניין. בואו פשוט נעשה פה באמת קליק design access קליק.

  12. 05:07

    זה לא עוזר, אנחנו רוצים לקבל... או, for more information see the file security and access rights. קליק על זה, זה נראה מעניין. או, אז יש file, add file, בואו נראה.

  13. 05:20

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

  14. 05:56

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

  15. 06:32

    או, הנה, אפשר, יפה. אז יש share delete, זאת אומרת, אם שני יוזרים פותחים ב-delete mode, אז אנחנו מאפשרים לשניהם במקביל לעשות delete.

  16. 06:42

    Enable subsequent open operations on an object to request delete access. shared read, שני פתיחות במקביל, זה קלאסי, אם שניים פותחים read אין שום בעיה הבעיה אם אחד באמת עושה write או delete אין היגיון ב-share delete זאת אומרת שאני מרשה למישהו אחר לעשות delete בזמן שאני עובד עם הקובץ enable subsequent open object to request delete access otherwise other process

  17. 07:16

    cannot open the object if they read כן עם processים אחרים השאלה היא לא מה עבורי עבורי כבר ביקשתי full access אבל אם מישהו אחר מבקש מה אני מרשה לו אם הוא מבקש delete אני מרשה לו אם הוא מבקש לקרוא אני מרשה לו אם הוא מבקש לכתוב אני מרשה לו יפה אז האמת היא שמצידי אני לא מרשה לאף אחד לעשות שום דבר אם הייתי רוצה

  18. 07:44

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

  19. 08:15

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

  20. 08:40

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

  21. 09:04

    כשקורא לקריאיט פייל למה אתה מתכוון? אתה מתכוון ליצור את הכובד תמיד או בוא נקרא create a new file always חד וחלק. מה זה create new? create a new file.

  22. 09:19

    דה פונקצ'ן פייל זה בספציפית פייל, אם הכובד כבר קיים אז הפונקציה תיכשל. open always תפתח תמיד, אל תיצור. אם הכובד לא קיים אז הפונקציה תיכשל. Open Existing פותח את הקובץ, The function phase is not, אם הוא עוד לא קיים הפונקציה נכשלת.

  23. 09:43

    אז מה ההבדל לבין זה? Open Allways is a file that is not, בקיצור בהזדמנות אחרת נראה, כאילו אותנו מעניין כרגע ליצור את הקובץ תמיד מחדש.

  24. 09:53

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

לקורס המלא: קורס C למתקדמים אונליין

ההרצאה הקודמת: Audio - Recording waveIn

ההרצאה הבאה: Write File

הרצאות קשורות מקורסים אחרים

  • Create Service
  • create new volume
  • Importing File
  • Configuration File

קורסים נוספים במסלול

  • קורס WinForms - תוכנות רגילות בווינדוס
  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • פרויקט מעשי ב-#C - תוכנת צייר
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס תכנות מתקדם - #Advanced .NET C