[عزف الموسيقى] ROB BOWDEN: مرحبا. أنا روب، ودعونا نأمل أن هذا الحل يساعد وضع لكم على الطريق الى الانتعاش. لذلك دعونا نبدأ. ونحن نرى أن على الفور نحن فقط للتأكد من أننا باستخدام استرداد بشكل صحيح. وبالتالي فإن استخدام يجب أن يكون مجرد شيء مثل الخط المائل نقطة استعادة. الآن ونحن في طريقنا لفتح المتوقع بطاقة دوت الملف الخام. نرى هنا أن نستخدمه ل ثابت اسم الملف تسطير الخام، التي تصل هنا لدينا تجزئة يعرف بأنه بطاقة دوت الخام. موافق. لذلك نحن بحاجة للتأكد من أن هذا افتتح بنجاح لأنه إذا لم يكن، ثم علينا أن تحذير المستخدم. ولكن على افتراض أنه فعل، ونحن الآن سوف تعلن منطقة عازلة من حجم JPEG ملف طول الاسم. ولذلك فإن هذا سيكون المخزن المؤقت الذي ونحن في طريقنا إلى sprintf في. فما هو ملف JPEG طول الاسم؟ هنا، ونحن نرى أنه من تجزئة يعرف بأنه ثمانية. فلماذا ثمانية؟ كذلك سيتم تسمية ملف معين شيء من هذا القبيل صفر صفر صفر. JPG ومن ثم نحن بحاجة إلى مائل الصفر. لذلك نحن في حاجة الى العازلة التي يمكن أن تخزين ثمانية أحرف. الآن ونحن في طريقنا لديك عداد هذا سوف تتبع صور JPEG عدد جدنا. وأخيرا، ونحن في طريقنا لديها ملف JPEG الذي باطل البداية التي ستكون حاليا ملف مفتوح أننا الكتابة ل. الآن ونحن في طريقنا لديك وجود مخزن مؤقت إضافية. هذه ليست هي نفسها كما لدينا sprintf العازلة حيث هذا المخزن المؤقت هو واحد اننا في قراءة البيانات من بطاقة دوت الخام. لذلك المخزن المؤقت سيكون من حرف غير الموقعة، والتي يمكن في الأساس مجرد يعاملوننا بايت، وانها سيكون من حجم حجم الكتلة حيث، كما نقول لكم، حجم الكتلة هو 512. حتى ملفات JPEG يمكنك علاج كل شيء كما كتل من 512 بايت. الآن ونحن في طريقنا إلى حلقة على الملف بأكمله. ونحن في طريقنا إلى و قراءة في المخزن لدينا مرة واحدة بايت حجم كتلة من بطاقة دوت الملف الخام. الآن ماذا تقرأ و العودة؟ تقوم بإرجاع عدد من البنود أنه قرأ بنجاح. حتى إذا تمكنت من قراءة 512 بايت، ثم نريد أن نرى ما إذا كان هذا JPEG أو الكتابة إلى ملف JPEG. وإذا لم يقم بإرجاع 512 بايت، ثم انتهت إما في ملف هذه الحالة سنقوم الخروج من ذ حلقة، أو أن هناك نوعا من الخطأ في هذه الحالة سنقوم أيضا كسر من ذ حلقة، ولكننا سوف تريد أن يقدم تقريرا أن شيئا ما حدث من خطأ. موافق. حتى على افتراض أن نقرأ بنجاح في 512 بايت، نريد أن الاختيار الأول لجعل هذا هذه بايت أننا قرأت للتو في بدء JPEG. حتى إذا هو JPEG رأس عازلة لدينا. الآن ما هو عليه رأس JPEG تفعل؟ دعونا ننظر. هنا، ونحن نرى أن هذه هي وظيفة العودة الثور، والثور الذي - كذلك هنا، ونحن فحص لمعرفة ما إذا رأس الصفر يساوي هذا الثابت و رأس واحد يساوي هذا الثابت و رأس اثنين يساوي هذا الثابت، رأس ثلاثة يساوي هذا أو هذا ثابت حيث جميع هذه الثوابت هي مجرد بعثرة تعريف الحق هنا و على بالضبط ما قلنا لكم في المواصفات أن يبدأ مع JPEG. وحتى هذه الوظيفة هو مجرد الذهاب الى العودة الحقيقية إذا يمثل هذا المخزن المؤقت بداية JPEG جديدة وكاذبة خلاف ذلك. موافق. حتى إذا كان هذا لا يمثل JPEG جديدة، ثم نريد أولا للتحقق لمعرفة ما إذا ملف JPEG لا تساوي فارغة، في هذه الحالة نحن إغلاقه. وهكذا لماذا نحن بحاجة إلى التحقق لمعرفة ما اذا انها ليست فارغة؟ جيدا JPEG الأولى التي نحن تجد لن يكون لدينا بالفعل ملف JPEG مفتوحة. وهكذا، لو كنا في محاولة لإغلاق ذلك، ثم نحن لا نقوم بشيء صحيح تماما. ولكن كل JPEG اللاحقة التي نفتح، ونحن نريد ليغلق الملف السابق. وحتى الآن ونحن في طريقنا لاستخدام sprintf ونحن وقال قبل حيث نقوم باستخدام اسم الملف العازلة JPEG. ونحن في طريقنا إلى استخدام ملف JPEG اسم تنسيق كتنسيق لدينا. وما هو ذلك؟ هنا، ونحن نرى أنه من صفر في المئة 3D.JPEG حيث ثلاثة صفر فقط ويقول ان سنستخدم ثلاثة أعداد صحيحة لهذا مبطن مع الأصفار. لذلك هذا هو كيف أننا سنصل صفر صفر one.JPEG وصفر 10.JPEG وهلم جرا. نحن ذاهبون الى استخدام sprintf. وصحيح أننا إدراج في السلسلة ملفات JPEG خدر تعافى، والذي هو في الأصل صفر. لذلك فتحت الملف الأول هو الذهاب ليكون الصفر الصفر الصفر نقطة JPEG. ثم نحن تزايد بحيث و سوف نفتح الملف التالي يكون صفرا صفرا واحد نقطة JPEG وسنقوم زيادة ذلك مرة أخرى لذلك سوف يكون صفرا صفرا اثنين نقطة JPEG وهلم جرا. حسنا. وحتى الآن داخل ملف JPEG اسم، لدينا اسم الملف الذي نريد. و يمكننا فتح هذا الملف للكتابة. موافق. ومرة أخرى، نحن بحاجة إلى التحقق لجعل تأكد أن الملف بنجاح افتتح لأنه إذا لم يفعل ذلك، ثم كان هناك بعض الخطأ. حتى الآن نحن قد حصلت في الماضي هل هذا جزء JPEG. وهنا، ونحن نرى ونحن في طريقنا الكتابة إلى JPEG. ولكن علينا أولا هذا الاختيار الذي يقول إذا لا ملف JPEG غير فارغة متساوية. لماذا نحتاج ذلك؟ كذلك ملف JPEG يساوي فارغة عندما كنا لديك حاليا JPEG مفتوحة. ماذا لو يبدأ الخام بطاقة نقطة مع مجموعة من وحدات البايت التي لا تمثل JPEG؟ ثم نحن ذاهبون الى تريد تخطي تلك بايت. إذا لم يكن لدينا هذا الاختيار، ثم نحن أريد أن أكتب لفتحها ملف بايت الأولى من 512 البطاقة التي ليست جيدة. موافق. حتى على افتراض لدينا ملف مفتوح، ثم ونحن في طريقنا إلى الكتابة على هذا الملف 512 بايت أن لدينا في المخزن لدينا. ونحن فحص مرة أخرى لجعل تأكد أن وحدات البايت 512 بنجاح كانت مكتوبة لأنه إذا لم تكن مكتوبة بنجاح، ثم شيئا ذهب على نحو خاطئ. سنقوم بإغلاق ملفاتنا، أن طباعة حدث خطأ ما، والعودة. على افتراض كل شيء يذهب بشكل صحيح، ثم سنستمر في حلقات إغلاق الملف القديم، وفتح ملف جديد والكتابة البيانات إلى ملف جديد، وهكذا على حتى النهاية، هذا و قراءة بإرجاع صفر وهو ما يعني أن يتم ذلك الملف. حتى الآن أن القراءة بطاقة هو أكثر، ونحن نرى أننا في طريقنا للو إغلاق الملف الأخير الذي كان لدينا مفتوحة، ولكن نحن التحقق إذا ملف JPEG لا فارغة لا تساوي. كذلك وثيقة و المنطقي لأنه كما نحن فتح الملفات، ونحن إغلاق ملف السابقة، ولكن الأخيرة جدا الملف الذي فتحنا يحصل أبدا مغلقة. وهذا ما يقوم به هذا. ولكن لماذا نحن بحاجة إلى التحقق لاغية؟ جيدا ما إذا كانت بطاقة نقطة الخام لم لديها JPEG واحد داخل منه؟ في هذه الحالة، سيكون لدينا أبدا فتح ملف. وإذا لم نكن فتح ملف، يجب علينا لا تحاول إغلاق هذا الملف. وهذا ما يقوم به هذا الاختيار. الآن هنا، كما قلت من قبل، ونحن يمكن أن نشبت أن y حلقة إما إذا البطاقة قد انتهت أو إذا كان هناك خطأ في قراءة بعض من البطاقة. لذلك هذا هو التحقق لمعرفة ما إذا كان هناك خطأ في قراءة من بطاقة، في هذه الحالة، سوف نقول هناك كان خطأ القراءة. نحن لا نريد للمستخدم أن يفكر ذهب كل شيء بنجاح. وسوف نعود واحدة للخطأ. وأخيرا، فإننا سوف يغلق ملف و الخام لدينا، بطاقة لدينا دوت الخام، وتشير إلى أن كل شيء على ما يرام والعودة الصفر وهذا كل شيء. اسمي روب وكان هذا استرداد. [عزف الموسيقى]