
Write ו-WriteLine כותבות את הטקסט.Close ו-Dispose סוגרים את הקובץ ומשחררים את המשאב שנתפס ממערכת ההפעלה. מערכת ההפעלה מונעת כתיבה לקובץ פתוח בידי תוכנית אחרת, ולכן יש לסגור אותו.Flush דוחף את המידע לקובץ לפני הסגירה.הטקסט המלא של הדקות הראשונות בהרצאה «קבצים - Files - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
ומה שאנחנו רוצים לעשות זה קודם כל לכתוב לקובץ טקסט. לפני שאני אתחיל לבצע את הקוד שכותב לקובץ טקסט ואחר כך כמובן קורא ממנו, בואו קודם כל נבין משהו לגבי קבצים שעוד לא דיברנו עליו.
יש לנו את הקובץ הזה שאנחנו יכולים דרך אגב להחזיר אותו ושהוא לא יהיה read-only. בואו נטפל גם בתיקייה הזאת, נוריד אותה מה read-only ואת הקובץ שבתוכה אנחנו רואים שהוא כבר ירד מה read-only אבל בואו ננסה לכתוב כמה דברים בעצם אני רוצה קודם כל לכתוב קובץ ולכן אני אפטר ממנו לגמרי בסדר אז מה שרציתי לציין בנוגע לקבצים זה שאפשר
להסתכל על כל הקבצים בעולם ולחלק אותם לשתי קטגוריות בלבד סטטגוריה אחת זה קבצים שנחשבים קבצי טקסט. מהי ההגדרה של קובץ טקסט? ההגדרה של קובץ טקסט זה לא קובץ שמסתיים ב-txt ולא קובץ שמסתיים ב-doc כמו קובץ word לדוגמה.
ההגדרה של קובץ טקסט אומרת שזה קובץ שכל המידע בתוכו כולו זה סך הכל תווים שאנחנו כותבים או שמישהו כותב. תווים.
וזה אומר שמישהו יכול לפתוח את הקובץ ולקרוא את כולו לגמרי. מה הקטגוריה השנייה? הקטגוריה השנייה זה קובץ שלא כל המידע בו הוא תווים, ולכן תוכנה צריכה לדעת איך לפרש את המידע בו בכדי לבצע משהו עם הקובץ.
אז כאן אנחנו רואים שיש לנו את ה-myfile2.txt הזה, והוא קובץ טקסטואלי לגמרי, כי אנחנו מקודם כתבנו בו את המכור הזה ל-low all, ואלה תווים כמובן.
הייתי הולך ומשנה את הסיומת הזאת לסיומת a,b,c,d,e עדיין הקובץ הזה היה נחשב קובץ טקסטואלי מפני שאנחנו יכולים לגשת ולפתוח אותו בעזרת notepad++ לדוגמה שזאת תוכנה מעולה שמומלצת אצל כל אחד במחשב שהיא מצליחה לפתוח לכם קבצים טקסטואליים אבל היא מיוחדת למתכנתים היא לפי הסיומת של
הקובץ היא יודעת איזה שפת תכנות הקובץ הזה בנוי ואז היא צובעת לכם את כל המילים השמורות בשפה המתאימה היא לא קומפיילר היא לא מסוגלת להריץ את זה אבל יש בה פה תמיכה בכל השפות בייסיקלי כמעט שקיימות אז כרגע היא לא מזהה את הסיומת בתור קובץ ולכן לא מציגה צבעים מיוחדים אבל היא עדיין מצליחה לפתוח לנו את הקובץ הזה לקריאה כקובץ טקסט כמובן שאנחנו
יכולים לפתוח את זה על ידי נוטפד פשוט והנה יש לנו את הקובץ אז כמו שאמרנו מקודם, זה ששינינו את הסיומת לא משנה כמובן את התוכן של הקובץ.
הסיומת נועדה אך ורק בכדי שמערכת ההפעלה תדע איך לפתוח את הקובץ על ידי דאבל קליק עליו. זה כל מה שזה אומר. אז אנחנו רואים שהמייפייל 2 זה קובץ טקסטואלי, אבל אם היינו הולכים ומסתכלים על קבצים אחרים, לדוגמה את הקובץ Apple.jpg, הקובץ הזה הוא לא קובץ טקסטואלי כי הוא לא מכיל בתוכו
מידע של תווים בלבד שניתן לקרוא אותם. מה יש בו? כמובן שיש בו תמונה, והוא מכיל פיקסלים של תמונה ועוד כל מיני נתונים לגבי המימדים של התמונה אולי והפורמט שלה, ולכן הקובץ הזה הוא לא טקסטואלי.
אז מה הוא? הקטגוריה השנייה של קבצים זה קבצים בינאריים, ובייסיקלי ההגדרה של קובץ בינארי היא פשוטה ואומרת כל קובץ שהוא לא טקסטואלי לחלוטין.
זה יכול להיות תמונה, זה יכול להיות סאונד, זה יכול להיות וידאו, זה יכול להיות קובץ אקסקיושן, זה יכול להיות קובץ dll שאנחנו נראה בהמשך איך בונים.
כל קובץ שהוא לא טקסטואלי טהור יכול להיחשב בינארי מפני שהתוכנה עצמה צריכה להיכנס ולדעת בדיוק מה הפורמט של הקובץ בכדי לבצע פעולות של קריאה, שימוש בו, כתיבה אליו וכולי.
כמובן שקובץ יכול להיות משולב, בינארי וטקסטואלי ביחד לדוגמה וורד אבל הקובץ הזה של וורד גם הוא נחשב קובץ בינארי ולא קובץ טקסטואלי אם הייתי פותח עכשיו וורד וכותב בוורד הלו אול ושומר אותו בוא נשמור אותו באותה התקייה שלנו נלך לקונה הנשיא נלך לטסט נלך ל-a ונשמור את הלו אול נסגור את
הקובץ נכנס ל-a ואנחנו יכולים להסתכל ולראות שזה קובץ רגיל אם היינו פותחים אותו על ידי notepad שימו לב שיש המון דברים בתוך הקובץ שבכלל לא ניתן לקרוא אותם מה זה כל הג'יבריש הזה איפשהו בתוך כל הבלאגן הזה בטוח שקיימת המחרוזת Hello All בואו ננסה למצוא אותה אפילו הוא לא מצליח למצוא אותה אחלה מה בעצם וורד עשה
וורד בשביל לעבוד פתח קובץ בינארי לחלוטין ושמר בו מלא מלא מלא דברים לכדי שהוא כמסמך וורד יוכל לעבוד. אולי שמרנו תמונות בתוכו, אולי שמרנו וידאו בתוך קובץ וורד, כל הדברים האלה לא יכולים להיות טקסטואליים.
אז אפשר להגיד שוורד, אפילו שהוא שומר מידע טקסטואלי בתוכו ומציג מידע טקסטואלי, הוא קובץ בינארי לחלוטין, כי לא כל המידע שמרכיב אותו הוא מידע טקסטואלי.
אנחנו הולכים בהמשך להתעסק גם עם קבצים בינאריים, אז קודם כל מה שעשינו פה זה הסברנו את ההבדל בין שתי הקטגוריות הנפוצות של קבצים, קבצי טקסט וקבצים בינאריים, והדבר הראשון שאני רוצה לעשות זה פעולות על קובץ טקסט.
אז המונח הראשון שאנחנו צריכים ללמוד זה מונח שנקרא סטרים. סטרים זה בייסיקלי קו תקשורת בין שתי נקודות שדרכו יכול לזרום מידע.
עכשיו שימו לב שבהגדרה הזאת שהגדרתי כרגע לא אמרתי שסטרים זה קו תקשורת בין המחשב או התוכנה שלנו לבין קובץ. סטרים אומר יש נקודה א', יש נקודה ב', דרך שתי הנקודות האלה אני קיים קו תקשורת ודרכי אתם יכולים להזרים מידע שהמידע יכול להיות טקסטואלי, הוא יכול להיות בינארי, הוא יכול להיות בייסיקלי שני הדברים האלה.
אבל מה הם שתי הנקודות? נקודה אחת יכולה להיות הזיכרון רם שלנו כאובייקט שחי לנו ברם, שתכף נראה את זה, ונקודה שנייה יכולה להיות קובץ.
זה יהיה סטרים בין התוכנית שלנו לבין קובץ. נקודה שנייה יכולה להיות, או אפשרות שנייה יכולה להיות בין הרם, בין נקודה ברם של המחשב שלנו לבין נקודה ברם אחרת של המחשב שלנו.
נקודה או אפשרות שלישית יכולה להיות בין הרם של המחשב שלנו לבין הפרינטר. נקודה אחרת יכולה להיות בין הרם של שני מחשבים שונים.
וכך אנחנו רואים שיש המון אופציות שסטרים יכול להצביע עליהן, ולכן יש המון מחלקות שכולן יורשות ממחלקת הבסיס סטרים. סטרים זאת מחלקת בסיס שאם ניכנס אליה בעזרת F12 אנחנו נראה שהיא מחלקה אבסטרקטית והיא בעצם מחלקה שהיא הבסיס של עץ הורשה של כל הסטרימים שיכולים להיות.
אנחנו יכולים לפתוח אותה ולהתחיל לקרוא ממנה מידע אפילו שלא סיימנו לקרוא את המידע לגמרי. בדיוק כמו שלדוגמא אתם פותחים סרטון ביוטיוב ותוך כדי זה שאתם רואים את הסרטון עדיין לא כל הסרטון ירד אליכם למחשב.
אז ככה אנחנו יכולים לפתוח סטרים לנקודה אחרת, לקרוא מידע בלי שכל המידע הגיע לגמרי. אבל יש סוגים שונים של סטרימים ופה אנחנו הולכים לראות כל מיני סוגים בדיוק כמו שדיברנו עליהם.
לדוגמה, אנחנו רוצים לכתוב לקבצי טקסט, אז יש לנו StreamWriter. StreamWriter זאת מחלקה שכמובן יורשת את סטרים, לא חייב להיות בצורה ישירה, אבל יורשת את סטרים, והיא מכילה את האפשרות לכתוב לתוך קובץ טקסטואלי.
בואו רגע נראה את המחלקה עצמה, נראה שהיא יורשת את טקסט רייטר, טקסט רייטר יורשת את מרשל בי רף אובג'קט אז בואו אני אתקן מה שאמרתי היא לא יורשת את סטרים היא מכילה בתוכה סטרים יש בתוכה איזשהו בייס סטרים שהבייס סטרים הזה מסוגל לכתוב לתוך קובץ אבל זה פחות מעניין אותנו מבחינת מבניות מה
שיותר מעניין אותנו זה מה היא יכולה לעשות תמיד התפקוד הוא עדיף לנו על המבנה ותפקוד זה יותר משהו שמעניין אותנו מאשר המבנה הנה הסטרים שדיברנו עליו שנמצא בתוכה כבייס סטרים ומה שמעניין אותנו זה פחות איך היא בנויה אלא יותר מה היא יודעת לעשות תמיד תמיד זה דברים שיותר מעניינים אותנו אוקיי אז כל מה שאנחנו רוצים לעשות בכדי לכתוב לתוך קובץ זה לפתוח את
הסטרים הזה שנקרא סטרים רייטר בוא ניקח רייטר ואז הקונסטרקטור שלו זה אומר לי או שתביא לי סטרים שכבר קיים לך ומצביע לך לאנשהו או שתביא לי נתיב.
בואו נפתח נתיב c test a myfile.txt בואו נסתכל ונראה שב-a אין לנו שום קובץ ואז אם אין קובץ אז ייווצר לנו אחד חדש אם קיים אז הוא יידרס הוא יימחק אם אנחנו לא רוצים שהוא יידרס ורק יתווסף אליו יש יש לנו פה אפשרות לשלוח true ולומר שאנחנו רוצים to append the data, כלומר להוסיף לסוף הקובץ שכבר קיים.
בואו נישאר עם ה-true. ועכשיו אנחנו יכולים לגשת writer.oright או right line. בואו נתחיל עם right, נמשיך עם right line, ואם הייתי כותב כאן this is a there, הייתי יכול לכתוב second line, וזה היה נכון, ולא third line, מפני שזה נכתב בשורה הראשונה וגם זה נכתב
בשורה הראשונה, פה לא ירדנו שורה רק פה ירדנו שורה ולכן הטקסט הזה יהיה שורה שנייה אחרי שסיימנו לכתוב חובה עלינו לסגור את הקובץ אנחנו יכולים לפגור אותו עם קלוז ואנחנו יכולים לפגור אותו עם דיספוז שני המקרים האלה במקרה הזה הם זהים ודיספוז משחרר כמובן את כל המשאבים וסוגר את הקובץ
ספציפית לגבי סטרים רייטר גם קלוז קורא בתוכו לדיספוז אז אתם יכולים או את זה או את זה ומה שזה אומר זה שזה גורם לקובץ להיסגר סופית.
עכשיו, בואו נבין משהו מעניין לגבי קבצים. קובץ זה משהו שאנחנו צריכים לקבל אותו או לקבל אישור אליו ממערכת ההפעלה. הרי כשאנחנו כותבים תוכנית אנחנו לא היחידים שקיימים במחשב ורצים ואין שום דבר אחר במחשב.
קודם כל קיימת מערכת הפעלה והיא זאת שמנהלת את המחשב עצמו, את החומרה של המחשב ואת כל התוכנות שרצות על המחשב. כאשר התוכנה שלנו רצה, נניח היוזר בא ולוחץ עליה Wclick על קובץ אקסקיושן, אז מי שבעצם מריץ את התוכנה זאת מערכת ההפעלה.
היוזר רק אומר למערכת ההפעלה בואי תריצי לי את התוכנה הזאת. מערכת ההפעלה ברגע שהיא מריצה תוכנית היא נותנת לתוכנית מרחב זיכרון לפעולה, זאת הסיבה שתמיד אתם יכולים לפתוח int x ולהכניס לתוכו מידע, ומערכת ההפעלה נותנת אפשרויות להשתמש במשאבי המערכת.
לדוגמה במעבד המחשב, לדוגמה בקבצים שנמצאים על המחשב. אז אם אנחנו רוצים לכתוב לקובץ, כמו שעשינו במקרה הזה, אנחנו בעצם מבקשים אישור ממערכת ההפעלה האם אנחנו יכולים לכתוב לקובץ.
מערכת ההפעלה מסתכלת ואומרת, רגע, בואו נראה, אולי מישהו אחר כבר תפס את הקובץ הזה ואתם לא יכולים לכתוב אליו?