[संगीत खेल] आरओबी BOWDEN: हाय. मैं रोब हूँ, और चलो आशा है कि इस समाधान तुम डाल में मदद करता है वसूली के लिए सड़क पर. तो चलो शुरू हो जाओ. हम तुरंत हम कर रहे हैं कि देखने अभी हम कर रहे हैं कि सुनिश्चित करने के लिए सही ढंग से वसूल लेंगे उपयोग कर. तो उपयोग में अभी कुछ होना चाहिए डॉट स्लैश को ठीक तरह. अब हम उम्मीद खोलने के लिए जा रहे हैं कार्ड कच्चे फ़ाइल डॉट. हम प्रयोग कर रहे हैं कि यहाँ देख लगातार कच्चे अंडरस्कोर फ़ाइल नाम, हम हैश है यहाँ जो कार्ड कच्चे डॉट के रूप में परिभाषित किया. ठीक है. इसलिए हम यह सुनिश्चित करने की जरूरत है कि सफलतापूर्वक खोला क्योंकि अगर यह , तो हम उपयोगकर्ता को सचेत करना चाहिए नहीं था. लेकिन यह किया है यह सोचते हैं कि हम अब कर रहे हैं आकार JPEG के एक बफर घोषित करने के लिए जा रहा नाम लंबाई फ़ाइल. तो इस बफर होने जा रहा है कि हम में sprintf जा रहे हैं. तो JPEG फ़ाइल नाम की लंबाई क्या है? यहाँ तक, हम यह देखते हैं कि आठ के रूप में परिभाषित हैश. तो क्यों आठ? खैर किसी दिए गए फ़ाइल नाम दिया जाएगा शून्य शून्य शून्य की तरह कुछ. JPG और फिर हम एक बैकस्लैश शून्य की जरूरत है. तो हम कर सकते हैं कि एक बफर की जरूरत आठ वर्ण की दुकान. अब हम है कि एक काउंटर है जा रहे हैं का ट्रैक रखने के लिए जा रहा संख्या JPEGs हमने पाया. और अंत में, हम करने के लिए जा रहे हैं एक शुरू में शून्य है जो JPEG फ़ाइल वर्तमान में होने जा रहा है जो हम करने के लिए लिख रहे हैं कि खुला फाइल. अब हम जा रहे हैं एक अतिरिक्त बफर. यह हमारे sprintf के रूप में ही नहीं है इस बफर से एक है जहां बफर हम डेटा में पढ़ रहे हैं कि कार्ड कच्चे डॉट से. तो बफर का होने जा रहा है अहस्ताक्षरित घर का काम, जो आप कर सकते हैं मूल रूप से बस हमें बाइट्स का इलाज है, और यह बात है आकार ब्लॉक आकार का होने जा रहा जहां, हम आपको बता के रूप में, ब्लॉक आकार 512 है. इसलिए JPEGs आप सब कुछ का इलाज कर सकते हैं 512 बाइट्स के ब्लॉक के रूप में. अब हम पाश के लिए जा रहे हैं पूरे फाइल के ऊपर. हम च हमारे बफर में पढ़ने के लिए जा रहे हैं एक बाइट ब्लॉक आकार टाइम्स से कार्ड कच्चे फ़ाइल डॉट. अब F लौटने क्या पढ़ा है? यह आइटम्स की संख्या देता है इसे सफलतापूर्वक पढ़ा कि. यह तो, 512 बाइट्स पढ़ने के लिए प्रबंधित तो अगर हम इस एक था कि क्या देखना चाहते हैं JPEG या यह एक JPEG फ़ाइल के लिए लिखते हैं. और यह 512 बाइट्स वापस नहीं किया, तो फिर फ़ाइल या तो समाप्त हो गया है हम y के बाहर तोड़ दूँगा जो मामले पाश, या त्रुटि के कुछ प्रकार के होते हैं हम भी बाहर तोड़ दूँगा, जो मामले में Y पाश, लेकिन हम रिपोर्ट करने के लिए चाहता हूँ कि कुछ गलत हो गया. ठीक है. इसलिए हम सफलतापूर्वक पढ़ा यह सोचते हैं कि 512 बाइट्स में, हम पहली बार जाँच करना चाहते हैं बनाने के लिए कि इन बाइट्स कि हम बस में पढ़ा एक JPEG शुरू करते हैं. इसलिए अगर हमारे बफर के जेपीईजी हेडर है. अब जेपीईजी हेडर यह क्या कर रहा है? के लग रहे हैं. यहाँ तक, हम इस समारोह है कि देखना एक बैल लौटने, और उस बैल - अच्छी तरह से यहाँ, हम देखने के लिए जाँच कर रहे हैं हैडर शून्य यह निरंतर बराबर होती है और हैडर एक यह निरंतर बराबर होती है और हैडर दो, यह निरंतर बराबर होती है हैडर तीन इस या इस के बराबर होती है इन सभी स्थिरांक हैं जहां लगातार बस यहीं से परिभाषित हैश और हैं हम कल्पना में तुमसे कहा था कि क्या वास्तव में एक JPEG के साथ शुरू होता है. और इसलिए इस समारोह में सिर्फ जा रहा है इस बफर का प्रतिनिधित्व करता है अगर सच वापसी एक नए जेपीईजी की शुरुआत और झूठी अन्यथा. ठीक है. यह एक नया जेपीईजी का प्रतिनिधित्व करता है तो अगर, तो हम पहली बार देखने के लिए जाँच करना चाहते हैं JPEG फ़ाइल, अशक्त करने के बराबर नहीं है जो मामले में हम इसे बंद कर दें. और तो क्यों हम जांच की जरूरत है यह रिक्त नहीं है अगर देखा? को वैसे बहुत पहले जेपीईजी कि हम हम पहले से ही नहीं मिलेगा एक खुला JPEG फ़ाइल. और हां, तो हम फिर, कि बंद करने की कोशिश हम काफी कुछ सही नहीं कर रहे हैं. लेकिन हर बाद जेपीईजी कि हम खोलने, हम बंद करना चाहते हैं पिछली फाईल. तो अब हम हम के रूप में sprintf का उपयोग करने के लिए जा रहे हैं हम प्रयोग कर रहे हैं, जहां पहले कहा बफर JPEG फ़ाइल नाम. और हम JPEG फ़ाइल का उपयोग करने के लिए जा रहे हैं हमारे प्रारूप के रूप में प्रारूप नाम है. और वह क्या है? यहाँ तक, हम यह प्रतिशत शून्य है कि देखना 3D.JPEG जहां शून्य तीन बस हम तीन पूर्णांकों का उपयोग करेंगे कहते हैं कि इस के लिए शून्य के साथ मोटा. तो यह है कि हम शून्य शून्य मिलेगा कैसे है इतने पर one.JPEG और शून्य 10.JPEG और. हम sprintf का उपयोग करने के लिए जा रहे हैं. और हम डालने रहे हैं कि पूर्णांक स्ट्रिंग सुन्न JPEGs है में मूल रूप से शून्य है, जो बरामद किए. तो पहले फ़ाइल जा रहा है खोला शून्य शून्य शून्य डॉट जेपीईजी हो. और फिर हम तो यह incrementing रहे हम खोलने के अगले फाइल शून्य शून्य हो जाएगा एक डॉट JPEG और हम यह वेतन वृद्धि करेंगे फिर तो यह शून्य शून्य दो डॉट रहूँगा इतने पर JPEG और. ठीक है. तो अब JPEG फ़ाइल के अंदर नाम है, हम का नाम है हम चाहते हैं कि फ़ाइल. हम च लेखन के लिए उस फ़ाइल को खोल सकते हैं. ठीक है. और एक बार फिर, हम करने के लिए जांच की जरूरत सुनिश्चित करें कि सफलतापूर्वक फ़ाइल यह नहीं, तो किया था, क्योंकि अगर खोला कुछ त्रुटि थी. तो अब हम अतीत मिल गया है इस एक JPEG हिस्सा है. और यहाँ, हम हम जा रहे हैं देखते हैं जेपीईजी करने के लिए लिखने के लिए. लेकिन हम पहले कहते हैं जो इस जांच JPEG फ़ाइल बराबर अशक्त नहीं करता है. हम क्यों कि जरूरत है? खैर JPEG फ़ाइल बातिल के बराबर होती है जब हम फिलहाल एक खुला जेपीईजी है. क्या कार्ड डॉट कच्चे शुरू होता है बाइट्स का एक गुच्छा के साथ कि एक JPEG का प्रतिनिधित्व नहीं करते? तो फिर हम करना चाहते करने जा रहे हैं उन बाइट्स पर छोड़. हम यह जांच नहीं करते हैं, तो हम कर रहे हैं एक बंद करने के लिए लिखने जा रहा के पहले 512 बाइट्स फ़ाइल जो अच्छा नहीं है कार्ड. ठीक है. तो फिर, हम एक खुली फ़ाइल है संभालने हम उस फ़ाइल को लिखने के लिए जा रहे हैं हम अपने बफर में है कि 512 बाइट्स. और हम एक बार फिर से बनाने के लिए जाँच कर रहे हैं सुनिश्चित करें कि सफलतापूर्वक 512 बाइट्स यदि वे नहीं थे क्योंकि लिखा गया सफलतापूर्वक लिखा, तो कुछ गलत हो गया था. हम चाहते हैं कि प्रिंट, हमारे फाइलें बंद कर देंगे कुछ गलत हो गया था, और वापसी. मान लिया जाये कि सब कुछ तो सही ढंग से चला जाता है हम समापन पाशन रखेंगे पुरानी फाइल, नई फ़ाइल खोलने, लेखन इसलिए नई फ़ाइल के लिए डेटा, और अंत में, इस च पढ़ा जब तक पर शून्य देता है जो साधन फ़ाइल किया है कि. तो अब कार्ड पढ़ने खत्म हो गया है कि, हम हम एफ बंद करने के लिए जा रहे हैं कि देखने हम खुला था, लेकिन लगता है कि पिछले फ़ाइल हम जाँच कर रहे हैं अगर JPEG फ़ाइल बराबर नहीं अशक्त करता है. खैर F करीब वजह के रूप में समझ में आता है हम हम बंद कर रहे हैं, फाइल खोल रहे हैं पिछले फ़ाइल, लेकिन बहुत पिछले हम खोला है कि फाइल को बंद कर दिया जाता है कभी नहीं. इसलिए कि यह क्या कर रहा है है. लेकिन क्यों हम अशक्त के लिए जांच की जरूरत है? खैर क्या हुआ अगर कार्ड डॉट कच्चे नहीं किया इसके अंदर एक भी जेपीईजी है? उस मामले में, हम होगा एक फाइल कभी नहीं खोला. हम एक फ़ाइल खोलने कभी नहीं और अगर, हम चाहिए उस फ़ाइल को बंद करने का प्रयास नहीं. इसलिए कि यह चेक कर रहा है. जैसा मैंने पहले कहा अब यहाँ, हम कर सकते थे कि y पाश या तो अगर बाहर तोड़ दिया है कार्ड अगर वहाँ समाप्त हो गया है या कार्ड से पढ़ कुछ त्रुटि. तो यह था कि वहाँ देखने के लिए जाँच कर रहा है में, कार्ड से पढ़ने में त्रुटि जो भी मामला है, हम वहाँ कहूँगा एक त्रुटि पढ़ रहा था. हम उपयोगकर्ता लगता नहीं करना चाहती सब कुछ सफलतापूर्वक चला गया. और हम त्रुटि के लिए एक वापस कर देंगे. अंत में, हम एफ हमारे कच्चे फाइल को बंद कर देंगे, हमारे कार्ड संकेत मिलता है कि कच्चे डॉट सब कुछ ठीक है और वापसी के लिए चला गया शून्य और यह बात है. मेरा नाम रोब है और इस पुनर्प्राप्त था. [संगीत खेल]