
הטקסט המלא של הדקות הראשונות בהרצאה «Create File» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
טוב אז אנחנו רוצים היום לכתוב לכובד בואו נפתח visual studio ב-c++ create project נחכה לו לא csharp other languages c++ win32 זה יהיה right נהיה אחת right file בוא נגיד לו נלך לאפליקיישן סטינגס כי אני נתתי לו שם writefile זה שם הפרויקט
בוא נעשה עם cancel ולא writefile writefile sample יפה ואוקיי ואפליקיישן סטינג קונסול אפליקיישן פרי קומפייד פיניש נחכה שיעלה וואלה מצוין אז אני רוצה לכתוב לכובד על מנת לכתוב לכובד כדי לכתוב לכובד יש פונקציה שנקראת writefile או הוא לא מכיר אותה אז בוא נראה קונטרול רווח הוא לא
מכיר אותה כן זאתי פונקציה של windows בוא נוסיף עכבר ימני וopen document ופה בסוף או אפילו ניקח את זה לגרור עם עכבר ימני copy ולהוסיף פה את windows.h ctrl s ctrl f4 למטה וקונטרול שיפט רווח חודו או הנה הוא מכיר יפה אז ראית על כותרת לקורת אבל ואני רוצה הנדל של כובד.
היא אומרת, אוקיי, אבל לאיזה כובד? עכשיו, כמובן, כמו בשפת C וגם ב-C-Sharp ובעוד פלטפורמות, אי אפשר לכתוב לכובד עבור שם של כובד, אפשר לכתוב לכובד עבור מזהה של פתיחה לכובד, של ערוץ תקשורת לכובד, של כובד שכבר פתחנו.
אז בואו קודם כל נפתח את הכובד. נגיד לו create file, פי איי פייל גם פותחת ערוץ תקשורת לכובד וגם אם אין כובד מייצרת כובד יפה ופה הפרמטר הראשון הוא lp-final מה השם של הכובד פה רואים שזה long pointer לקונסטנט y-string כי אנחנו ב-y הכל פה ב-y אז נעבוד ב-y אפשר כמובן לעבוד ב-a ואז זה יותר פשוט מה את מעדיפה ב-y או בלי y
אני רוצה בלי כלום שהוא יבחר קונטרול שיפרה לך אנחנו צריכים את הפייל ניים אז טקסט והפייל ניים אז בואו נגיד לו שזה יהיה טסט 01.txt זה הפרמטר הראשון הפרמטר השני זה ה-desired access בואו פה אני כבר לא זוכר מה באמת צריך להגיד לו אז בואו נלך לקריאייט פייל קליק זה f1 כאילו שיעלה יופי נפתח לנו פה ו-create file, וזה נקרא to open the file,
file stream, directory, physical disk, volume, console buffer, tape drive, communications, resource, mail slot, or named pipe.
הוא, קרייט פייל, פותח את כל הדברים האלה, לא רק קובץ. השם של הפייל מתאים, זה לא רק לקובץ, זה גם לתיקייה, זה גם לדיסק, זה גם לווליום, זה גם לקונסול, גם לטייל דרייב, לקומוניקיישן דריסוס, למייל סלו, שגם שיטת תקשורת, ניימט פייב, גם שיטת תקשורת.
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.
טוב, זה לא מעניין אותי כרגע. ו-create file, יפה. אז מה שאני רוצה, יפה, זה הפרמטר הראשון, הפרמטר השני, desired access.
אני יכול לעשות קליק או ללכת לפה. ואז זה design access to the object which can be read, write, or both. זה בסך הכל מה שאנחנו רוצים. ובסופו של דבר מתרגזים ה-application can query files. אפשר לתקשר עם הקובץ, אבל זה לא מעניין. בואו פשוט נעשה פה באמת קליק design access קליק.
זה לא עוזר, אנחנו רוצים לקבל... או, for more information see the file security and access rights. קליק על זה, זה נראה מעניין. או, אז יש file, add file, בואו נראה.
אני רוצה בסך הכל read וwrite וכאלה, אז מה אנחנו רוצים, וואלה יש בו הרבה הרבה מאוד. שנייה, תראה לי שיש בו את פייל אול אקסיס ננסה לקחת את זה אז נלך לכאן ונגיד לו פייל קו תחתון אול קונטרול רווח מצוין בואו נמשיך עכשיו השארד מוד שארד מוד אז הוא שואל בעצם במקרה שיוזר אחר רוצה גם הוא לעשות קריאייט פייל
או לא יוזר אחר במקרה שהאפליקציה אחרת או אפילו או אפילו שורה אחת אחרי זה אולי נרצה לפתוח עוד הנדל עבור אותו קובץ השאלה היא האם אנחנו מאפשרים חלוקה של הגישה לקובץ אז איזה מין סוגי חלוקה אנחנו מאפשרים זה מה שהוא שואל אז נעשה back ונלך לshared mode ופה או, הנה, ככה אפשר לגלול אותו, אה, אפשר גם, שאלה אם אפשר להגיד לו קליק ואז לגלול.
או, הנה, אפשר, יפה. אז יש share delete, זאת אומרת, אם שני יוזרים פותחים ב-delete mode, אז אנחנו מאפשרים לשניהם במקביל לעשות delete.
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
cannot open the object if they read כן עם processים אחרים השאלה היא לא מה עבורי עבורי כבר ביקשתי full access אבל אם מישהו אחר מבקש מה אני מרשה לו אם הוא מבקש delete אני מרשה לו אם הוא מבקש לקרוא אני מרשה לו אם הוא מבקש לכתוב אני מרשה לו יפה אז האמת היא שמצידי אני לא מרשה לאף אחד לעשות שום דבר אם הייתי רוצה
כרגע אני רוצה לכתוב לקובץ אז טוב האמת היא שבעצם אני כותב לקובץ מה אכפת לי שמישהו אחר יקרא אבל שמישהו אחר יכתוב זה כבר בלתי נסבל אז פייל של read אני כן רוצה לתת את זה מובן אז פייל פייל שייר ריד כן אנחנו ניתן לאחרים קונטרול רווח, פייל שייר ריד אנחנו ניתן לאחרים בואו נשמור יפה ולגבי סקיוריטי נגיד לו אפס אין פה אני לא רוצה כן כשאני יוצר קובץ אני יכול להגיד בעצם אני
יכול להגיד את כל הפרופרטיז האלה כולל הסקיוריטי אני יכול לתאר את כל הדבר הזה אם אני שם לו אפס אז אין הרשאות על הקובץ זה מעניין תכף יהיה לראות באמת שהקובץ מזל איזה הרשאות יש שם מה זה אומר שאין שם עכשיו זה יורש זה יורש זה בסך הכל ירושה בגדול אני חושב שאין לכה אין לתקייה הזאת הרשאות וזה מה שאומר זה מה שזה אומר שאין לה שיורשת
טוב תכף אנחנו נראה אני בעצמי לא בטוח קונטרול שיפט רווח יפה קריאיישן דיספוזישן מה זה קריאיישן דיספוזישן בואו נעשה בק אין לנו בק בואו נעשה קליק קריאיישן דיספוזישן יפה קריאיישן זה מאוד פשוט וחשוב היום ניצור את הכובש תמיד כאילו אתה קורא לקריאיט פייל.
כשקורא לקריאיט פייל למה אתה מתכוון? אתה מתכוון ליצור את הכובד תמיד או בוא נקרא create a new file always חד וחלק. מה זה create new? create a new file.
דה פונקצ'ן פייל זה בספציפית פייל, אם הכובד כבר קיים אז הפונקציה תיכשל. open always תפתח תמיד, אל תיצור. אם הכובד לא קיים אז הפונקציה תיכשל. Open Existing פותח את הקובץ, The function phase is not, אם הוא עוד לא קיים הפונקציה נכשלת.
אז מה ההבדל לבין זה? Open Allways is a file that is not, בקיצור בהזדמנות אחרת נראה, כאילו אותנו מעניין כרגע ליצור את הקובץ תמיד מחדש.
נכון? אני כל פעם ייצור את הקובץ, אני מצפה ליצור אותו מחדש, זה מה שאני מצפה. אז Create Always, זה הכי פשוט, הכי פשוט, הכי ראשון. Create Always, יפה מאוד. מה עוד יש לנו?