[Powered by Google Translate] [טעקע איך / אָ] [דזשייסאַן הירסטשהאָרן, האַרוואַרד אוניווערסיטעט] [דאס איז קס50, CS50.TV] ווען מיר טראַכטן פון אַ טעקע, וואָס קומט צו מיינונג איז אַ מייקראָסאָפֿט וואָרט דאָקומענט, אַ געפֿינען בילד, אָדער אַ mp3 ליד, און מיר ינטעראַקט מיט יעדער פון די טייפּס פון טעקעס אין פאַרשידענע וועגן. פֿאַר בייַשפּיל, אין אַ וואָרט דאָקומענט מיר לייגן טעקסט בשעת מיט אַ געפֿינען בילד מיר זאל גערעטעניש אויס די עדזשאַז אָדער רעטאָוטש די פארבן. נאָך אונטער די קאַפּטער אַלע פון ​​די טעקעס אין אונדזער קאָמפּיוטער זענען גאָרנישט מער ווי אַ לאַנג סיקוואַנס פון זעראָס און אָנעס. עס ס אַרויף צו די ספּעציפיש אַפּלאַקיישאַן אַז ינעראַקץ מיט דער טעקע צו באַשליסן ווי צו פּראָצעס דעם לאַנג סיקוואַנס און פאָרשטעלן עס צו דעם באַניצער. אויף איין האַנט, אַ דאָקומענט קען קוקן אין נאָר איינער ביטע, אָדער 8 זעראָס און אָנעס, און אַרויסווייַזן אַ אַסקי כאַראַקטער אויף דעם עקראַן. אויף די אנדערע האַנט, אַ ביטמאַפּ בילד זאל קוקן אין 3 ביטעס, אָדער 24 זעראָס און אָנעס, און טייַטשן זיי ווי 3 העקסאַדעסימאַל נומערן וואָס פאָרשטעלן דעם וואַלועס פֿאַר רויט, גרין, און בלוי אין איין פּיקסעל פון אַ בילד. וועלכער זיי זאלן קוקן ווי אויף דיין פאַרשטעלן, אין זייער האַרץ, טעקעס זענען גאָרנישט מער ווי אַ סיקוואַנס פון זעראָס און אָנעס. אַזוי לאָזן ס ונטערטוקנ זיך אין און קוק אין ווי מיר פאקטיש מאַניפּולירן די זעראָס און אָנעס ווען עס קומט צו שרייבן צו און לייענען פון אַ טעקע. איך וועט אָנהייבן דורך ברייקינג עס אַראָפּ אין אַ פּשוט 3-טייל פּראָצעס. ווייַטער, איך וועט ונטערטוקנ זיך אין צוויי קאָד ביישפילן וואָס באַווייַזן די דרייַ טיילן. צום סוף, איך וועט באריכטן דעם פּראָצעס און עטלעכע פון ​​זייַן רובֿ וויכטיק פרטים. ווי מיט קיין טעקע וואָס זיצט אויף דיין דעסקטאַפּ, דער ערשטער זאַך צו טאָן איז צו עפענען עס. אין C מיר טאָן דאָס דורך דיקלערינג אַ טייַטל צו אַ פּרעדעפינעד סטרוקט אַז רעפּראַזענץ אַ טעקע אויף דיסק. אין דעם פֿונקציע רופן, מיר אויך באַשליסן צי מיר ווילן צו שרייַבן צו אָדער לייענען פון דער טעקע. ווייַטער, מיר טאָן די פאַקטיש לייענען און שרייבן. עס זענען אַ נומער פון ספּעשאַלייזד פאַנגקשאַנז מיר קענען נוצן אין דעם טייל, און כּמעט אַלע פון ​​זיי אָנהייבן מיט די בריוו ף, וואָס שטייט פֿאַר טעקע. לעצטע, קרויוויש צו די ביסל רויט רענטגענ אין די שפּיץ ווינקל פון דער טעקעס עפענען אויף דיין קאָמפּיוטער, מיר נאָענט די טעקע מיט אַ לעצט פונקציאָנירן רופן. איצט אַז מיר האָבן אַ גענעראַל געדאַנק פון וואָס מיר רע געגאנגען צו טאָן, לאָזן ס ונטערטוקנ זיך אין די קאָד. אין דעם וועגווייַזער, מיר האָבן צוויי C טעקעס און זייער קאָראַספּאַנדינג עקסעקוטאַבלע טעקעס. די שרייַבמאַשין פּראָגראַם נעמט איין באַפֿעל שורה אַרגומענט, דער נאָמען פון דעם דאָקומענט מיר ווילן צו מאַכן. אין דעם פאַל, מיר וועט רופן עס דאָק.טקסט. זאל ס 'לויפן די פּראָגראַם און אַרייַן אַ פּאָר פון שורות. הי. מייַן נאָמען איז דזשייסאַן. צום סוף, מיר וועט טיפּ "פאַרלאָזן." אויב מיר איצט רשימה אַלע פון ​​די טעקעס אין דעם וועגווייַזער, מיר זען אַז אַ נייַ דאָקומענט יגזיסץ גערופן דאָק.טקסט. אַז ס דער טעקע דעם פּראָגראַם נאָר באשאפן. און פון קורס, עס אויך איז גאָרנישט מער ווי אַ לאַנג סיקוואַנס פון זעראָס און אָנעס. אויב מיר עפענען דעם נייַ טעקע, מיר זען די 3 שורות פון קאָד מיר אריין אין אונדזער פּראָגראַם - הי. מייַ נאָמען איז דזשייסאַן. אבער וואָס ס 'פאקטיש געגאנגען אויף ווען טיפּעווריטער.ק לויפט? דער ערשטער שורה פון אינטערעס פֿאַר אונדז איז שורה 24. אין דעם שורה, מיר דערקלערן אונדזער טעקע טייַטל. די פֿונקציע וואָס קערט דעם טייַטל, פאָפּען, נעמט צוויי טענות. דער ערשטער איז די טעקע נאָמען אַרייַנגערעכנט דער טעקע געשפּרייט אויב צונעמען. צוריקרופן אַז אַ טעקע געשפּרייט טוט נישט השפּעה דער טעקע בייַ זייַן לאָואַסט מדרגה. מיר רע שטענדיק דילינג מיט אַ לאַנג סיקוואַנס פון זעראָס און אָנעס. אבער עס טוט השפּעה ווי טעקעס זענען ינטערפּראַטאַד און וואָס פּראָגראַמען זענען געניצט צו עפענען זיי. די רגע אַרגומענט צו פאָפּען איז אַ איין בריוו וואָס שטייט פֿאַר וואָס מיר פּלאַן צו טאָן נאָך מיר עפענען די טעקע. עס זענען דרייַ אָפּציעס פֿאַר דעם אַרגומענט - ד, ר, און יי מיר ווע אויסדערוויילט ד אין דעם פאַל ווייַל מיר ווילן צו שרייַבן צו דער טעקע. ר, ווי איר קענען מיסטאָמע טרעפן, איז פֿאַר לייענען צו דער טעקע. און אַ איז פֿאַר אַפּפּענדינג צו דער טעקע. בשעת ביידע ד און אַ זאל זייַן געניצט פֿאַר שרייבן צו טעקעס, ד וועט אָנהייבן שרייבן פון דער אָנהייב פון דער טעקע און פּאַטענטשאַלי אָווועררייט קיין דאַטן וואָס האָבן פריער געווען סטאָרד. דורך פעליקייַט, דער טעקע מיר עפענען, אויב עס טוט נישט שוין עקסיסטירן, איז באשאפן אין אונדזער פאָרשטעלן ארבעטן וועגווייַזער. אבער, אויב מיר ווילן צו צוטריט אָדער שאַפֿן אַ טעקע אין אַ אַנדערש אָרט, אין דער ערשטער אַרגומענט פון פאָפּען, מיר זאלן ספּעציפיצירן אַ טעקע דרך אין דערצו צו דער טעקע נאָמען. בשעת דער ערשטער טייל פון דעם פּראָצעס איז בלויז איין שורה פון קאָד לאַנג, עס ס שטענדיק גוט פיר צו אַרייַננעמען אנדערן שטעלן פון שורות אַז טשעק צו ענשור אַז דער טעקע איז הצלחה געעפנט אָדער באשאפן. אויב פאָפּען קערט נאַל, מיר וואָלט ניט וועלן צו פאָרגע פאָרויס מיט אונדזער פּראָגראַם, און דאָס זאל פּאַסירן אויב די אַפּערייטינג סיסטעם איז אויס פון זכּרון אָדער אויב מיר פּרובירן צו עפענען אַ טעקע אין אַ וועגווייַזער פֿאַר וואָס מיר האבן נישט האָבן די געהעריק פּערמישאַנז. חלק צוויי פון די פּראָצעס נעמט אָרט אין שרייַבמאַשין ס בשעת שלייף. מיר נוצן אַ קס50 ביבליאָטעק פונקציאָנירן צו באַקומען אַרייַנשרייַב פון דעם באַניצער, און אַסומינג זיי טאָן נישט וועלן צו פאַרלאָזן די פּראָגראַם, מיר נוצן די פֿונקציע פפּוץ צו נעמען די שטריקל און שרייַבן עס צו דער טעקע. פפּוץ איז בלויז איינער פון די פילע פאַנגקשאַנז מיר קען נוצן צו שרייַבן צו דער טעקע. אנדערע אַרייַננעמען פווריטע, פפּוטק, און אַפֿילו פפּרינטף. ראַגאַרדלאַס פון די באַזונדער פונקציאָנירן מיר סוף אַרויף ניצן, כאָטש, אַלע פון ​​זיי דאַרפֿן צו וויסן, דורך זייער טענות, בייַ מינדסטער צוויי זאכן - וואָס דאַרף צו זייַן געשריבן און ווו עס דאַרף צו זייַן געשריבן צו. אין אונדזער פאַל, אַרייַנשרייַב איז די שטריקל וואָס דאַרף צו זייַן געשריבן און פפּ איז די טייַטל אַז דערעקץ אונדז צו ווו מיר רע שרייבן. אין דעם פּראָגראַם, טייל צוויי פון די פּראָצעס איז אלא סטרייטפאָרווערד. מיר רע פשוט גענומען אַ שטריקל פון דעם באַניצער און אַדינג עס גלייַך צו אונדזער טעקע מיט קליין-צו-קיין אַרייַנשרייַב וואַלאַדיישאַן אָדער זיכערהייַט טשעקס. אָפֿט, אָבער, טייל צוויי וועט נעמען אַרויף דעם פאַרנעם פון דיין קאָד. צום סוף, טייל דרייַ איז אויף שורה 58, ווו מיר נאָענט די טעקע. דאָ מיר רופן פקלאָסע און פאָרן עס אונדזער אָריגינעל טעקע טייַטל. אין די סאַבסאַקוואַנט שורה, מיר צוריקקומען נול, סיגנאַלינג דער סוף פון אונדזער פּראָגראַם. און, יאָ, טייל דרייַ איז ווי פּשוט ווי אַז. זאל ס 'מאַך אויף צו לייענען פון טעקעס. צוריק אין אונדזער Directory מיר האָבן אַ טעקע גערופן פּרינטער.ק. זאל ס 'לויפן עס מיט דער טעקע מיר נאָר באשאפן - דאָק.טקסט. דעם פּראָגראַם, ווי דער נאָמען סאַגדזשעס, וועט פשוט דרוקן אויס די אינהאַלט פון דער טעקע דורכגעגאנגען צו עס. און עס מיר האָבן עס. די שורות פון קאָד מיר האט טייפּט פריער און געהאלפן אין דאָק.טקסט. הי. מייַן נאָמען איז דזשייסאַן. אויב מיר ונטערטוקנ זיך אין פּרינטער.ק, מיר זען אַז אַ פּלאַץ פון די קאָד קוקט ענלעך צו וואָס מיר נאָר געגאנגען דורך אין טיפּעווריטער.ק. טאקע שורה 22, ווו מיר געעפנט די טעקע, און שורה 39, ווו מיר פֿאַרמאַכט די טעקע, זענען ביידע כּמעט יידעניקאַל צו טיפּעווריטער.ק, ראַטעווען פֿאַר פאָפּען רגע אַרגומענט. דאס מאָל מיר רע לייענען פון אַ טעקע, אַזוי מיר האָבן אויסדערוויילט ר אַנשטאָט פון ד. אזוי, לאָזן ס פאָקוס אויף די רגע טייל פון דעם פּראָצעס. אין שורה 35, ווי דער רגע צושטאַנד אין אונדזער 4 שלייף, מיר מאַכן אַ רופן צו פגעץ, דער באַגלייטער פונקציאָנירן צו פפּוץ פון פריער. דאס מאָל מיר האָבן דרייַ טענות. דער ערשטער איז די טייַטל צו די מענגע פון ​​אותיות ווו די שטריקל וועט זייַן סטאָרד. די רגע איז די מאַקסימום נומער פון אותיות צו זייַן לייענען. און די דריט איז די טייַטל צו די טעקע מיט וואָס מיר רע ארבעטן. איר וועט באַמערקן אַז די פֿאַר שלייף ענדס ווען פגעץ קערט נאַל. עס זענען צוויי סיבה אַז דאָס זאל האָבן געטראפן. ערשטער, אַ טעות זאל האָבן פארגעקומען. רגע, און מער מסתּמא, דער סוף פון דער טעקע איז ריטשט און ניט מער אותיות זענען לייענען. אין פאַל איר ניטאָ וואַנדערינג, צוויי פאַנגקשאַנז טאָן עקסיסטירן וואָס לאָזן אונדז צו זאָגן וואָס סיבה איז די גרונט פֿאַר דעם באַזונדער נאַל טייַטל. און, נישט סאַפּרייזינגלי, זינט זיי האָבן צו טאָן מיט ארבעטן מיט טעקעס, ביידע די פערראָר פונקציאָנירן און די פעאָף פונקציאָנירן אָנהייבן מיט די בריוו F. צום סוף, איידער מיר פאַרענדיקן, איינער שנעל טאָן וועגן דעם סוף פון טעקע פונקציאָנירן, וואָס, ווי נאָר דערמאנט, איז געשריבן ווי פעאָף. אָפֿט איר וועט געפֿינען זיך ניצן בשעת און פֿאַר לופּס צו פּראַגרעסיוולי לייענען דיין וועג דורך טעקעס. אזוי, איר וועט דאַרפֿן אַ וועג צו סוף די לופּס נאָך איר דערגרייכן די סוף פון די טעקעס. פאַך פעאָף אויף דיין טעקע טייַטל און קאָנטראָלירונג צו זען אויב עס ס 'אמת וואָלט טאָן נאָר וואָס. אזוי, אַ בשעת שלייף מיט די צושטאַנד (! פעאָף (פפּ)) זאל ​​ויסקומען ווי אַ בישליימעס צונעמען לייזונג. אבער, זאָגן מיר האָבן איין שורה לינקס אין אונדזער טעקסט טעקע. מיר וועט אַרייַן אונדזער בשעת שלייף און אַלץ וועט אַרבעט אויס ווי פּלאַננעד. אויף דער ווייַטער קייַלעכיק דורך, אונדזער פּראָגראַם וועט טשעק צו זען אויב פעאָף פון פפּ איז אמת, אָבער - און דאָס איז די קריטיש פונט צו פֿאַרשטיין דאָ - עס וועט נישט זייַן אמת נאָר נאָך. אַז ס ווייַל דער ציל פון פעאָף איז נישט צו טשעק אויב דער ווייַטער רופן צו אַ לייענען פונקציאָנירן וועט שלאָגן דעם סוף פון דער טעקע, אָבער אלא צו קאָנטראָלירן צי אָדער נישט דער סוף פון דער טעקע האט שוין געווען ריטשט. אין דעם פאַל פון דעם בייַשפּיל, לייענען די לעצטע שורה פון אונדזער טעקע גייט בישליימעס סמודלי, אָבער דער פּראָגראַם טוט נישט נאָך וויסן אַז מיר ווע שלאָגן די סוף פון אונדזער טעקע. עס ס נישט ביז עס טוט איינער נאָך לייענען אַז עס קאָונטערס דער סוף פון דער טעקע. אזוי, אַ ריכטיק צושטאַנד וואָלט זייַן די פאלגענדע: פגעץ און זייַן דרייַ טענות - רעזולטאַט, גרייס פון רעזולטאַט, און פפּ - און אַלע פון ​​וואָס נישט גלייַך צו נאַל. דאס איז דער צוגאַנג מיר גענומען אין פּרינטער.ק, און אין דעם פאַל, נאָך די שלייף עקסאַץ, איר קען רופן פעאָף אָדער פערראָר צו מיטטיילן די באַניצער ווי צו דער ספּעציפיש ריזאַנינג פֿאַר עקסיטינג דעם שלייף. שרייבן צו און לייענען פון אַ טעקע איז, אין זייַן רובֿ גרונט, אַ פּשוט 3-טייל פּראָצעס. ערשטער, מיר עפענען די טעקע. רגע, מיר שטעלן עטלעכע זאכן אין אונדזער טעקע אָדער נעמען עטלעכע זאכן אויס פון אים. דריט, מיר נאָענט די טעקע. דער ערשטער און לעצטע טיילן זענען גרינג. די מיטל טייל איז ווו די טריקי שטאָפּן ליגט. און כאָטש ונטער דער קאַפּטער מיר רע שטענדיק דילינג מיט אַ לאַנג סיקוואַנס פון זעראָס און אָנעס, עס טוט העלפן ווען קאָודינג צו לייגן אַ שיכטע פון ​​אַבסטראַקציע אַז טורנס די סיקוואַנס אין עפּעס וואָס מער ענג ריזעמבאַלז וואָס מיר רע געניצט צו געזען. פֿאַר בייַשפּיל, אויב מיר רע ארבעטן מיט אַ 24-ביסל ביטמאַפּ טעקע, מיר וועט מסתּמא זייַן לייענען אָדער שרייבן דרייַ ביטעס אין אַ צייַט. אין וואָס פאַל, עס וואָלט מאַכן זינען צו דעפינירן און אַפּראָופּרייטלי נאָמען אַ סטרוקט וואָס איז 3 ביטעס גרויס. כאָטש ארבעטן מיט טעקעס מייַ ויסקומען קאָמפּליצירט, יוטאַלייזינג זיי אַלאַוז אונדז צו טאָן עפּעס באמת מערקווירדיק. מיר קענען טוישן די שטאַט פון די וועלט אַרויס אונדזער פּראָגראַם, מיר קענען מאַכן עפּעס וואָס לעבן ווייַטער פון דעם לעבן פון אונדזער פּראָגראַם, אָדער מיר קענען אַפֿילו טוישן עפּעס וואָס איז באשאפן פאר אונדזער פּראָגראַם אנגעהויבן פליסנדיק. ינטעראַקטינג מיט טעקעס איז אַ באמת שטאַרק טייל פון פּראָגראַממינג אין סי און איך בין יקסייטאַד צו זען וואָס איר ניטאָ געגאנגען צו מאַכן מיט אים אין די קאָד צו קומען. מייַן נאָמען איז דזשייסאַן הירסטשהאָרן. דאס איז קס50. [CS50.TV] [לאַוגהטער] אָוקיי. איינער נעמען. דאָ מיר גיין. ווען מיר טראַכטן פון אַ טעקע - >> טאַקע, וואַרטן. אנטשולדיגט. [לאַוגהטער] אָוקיי. היי דאָרט. ווען מיר טראַכטן פון אַ טעקע - ווען איר טראַכטן פון אַ טעקע - אָוקיי. זאָגן מיר ווען איר ניטאָ גרייט. אָה, גרויס. כאָטש לייענען פון אַ טעלאַפּראַמפּטער מייַ ויסקומען - ניט. מייַן שלעכט.