[সঙ্গীত বাজাচ্ছি] Rob Bowden: হাই. আমি রব, এবং এর যাক আশা করি যে এই সমাধান আপনি লাগাতে সাহায্য করে পুনরুদ্ধারের রাস্তা. সুতরাং আসুন শুরু করা যাক. আমরা অবিলম্বে আমরা যে দেখুন শুধু আমরা এসেছি নিশ্চিত যে সঠিকভাবে উদ্ধার ব্যবহার. তাই ব্যবহার শুধু কিছু হওয়া উচিত ডট স্ল্যাশ পুনরুদ্ধার মত. এখন আমরা আশা খুলতে যাচ্ছেন কার্ড কাঁচা ফাইল বিন্দু. আমরা আমরা ব্যবহার করছেন যে এখানে দেখুন ধ্রুব কাঁচা আন্ডারস্কোর ফাইলের নাম, আমরা হ্যাশ আছে এখানে যা কার্ড কাঁচা বিন্দু হিসাবে সংজ্ঞায়িত. ঠিক আছে. তাই আমরা নিশ্চিত যে করা প্রয়োজন যে সফলভাবে খোলা কারণ যদি এটা তারপর আমরা ব্যবহারকারীকে সতর্ক করা উচিত হয়নি. কিন্তু তা যে অভিমানী, আমরা এখন করছি সাইজ কোন JPEG একটি বাফার ঘোষণা করা যাচ্ছে নামের দ্বারা দায়ের. তাই এই বাফার হতে যাচ্ছে যে আমরা মধ্যে sprintf চলুন. সুতরাং কোন JPEG ফাইল নাম দৈর্ঘ্য কত? এখানে আপ, আমরা এটা দেখতে যে আট হিসাবে সংজ্ঞায়িত হ্যাশ. সুতরাং কেন আটটি? ভাল একটি প্রদত্ত ফাইল নামকরণ করা হবে শূন্য শূন্য শূন্য মত কিছু. JPG, এবং তারপর আমরা একটি ব্যাকস্ল্যাশ শূন্য প্রয়োজন. সুতরাং আমরা যে যা করতে পারেন একটি বাফার প্রয়োজন আট অক্ষর সঞ্চয়. এখন আমরা যে একটি পাল্টা আছে চলুন ট্র্যাক রাখতে যাচ্ছে নম্বর JPEGs আমরা খুঁজে পাওয়া যায়নি. এবং পরিশেষে, আমরা আছে চলুন একটি প্রাথমিকভাবে নাল যা JPEG ফাইল বর্তমানে হতে যাচ্ছে যা আমরা করতে লেখার যে ফাইল খুলুন. এখন আমরা আছে চলুন একটি অতিরিক্ত বাফার. এটি আমাদের sprintf হিসাবে একই নয় এই বাফার হয় যেখানে বাফার আমরা তথ্য মধ্যে পড়ি যে কার্ড কাঁচা বিন্দু থেকে. তাই বাফার হতে যাচ্ছে স্বাক্ষরবিহীন অক্ষর, যা আপনি করতে পারেন মূলত শুধু আমাদের বাইট আচরণ, এবং এটি সাইজ ব্লক আকারের হতে যাচ্ছে যেখানে, আমরা আপনাকে বলে যে, ব্লক সাইজ 512 করে. সুতরাং JPEGs আপনি সবকিছু বিবেচনা করতে পারেন 512 বাইট ব্লক হিসেবে. এখন আমরা লুপ চলুন সম্পূর্ণ ফাইল উপর. আমরা চ আমাদের বাফারের মধ্যে পড়তে যাচ্ছেন একটি একক বাইট ব্লক সাইজ বার থেকে কার্ড কাঁচা ফাইল বিন্দু. এখন চ ফিরে কি পড়তে পারে? এটি আইটেম সংখ্যা ফেরৎ এটি সফলভাবে পড়া. এটি তারপর, 512 বাইট পড়া পরিচালিত সুতরাং যদি আমরা এই একটি ছিল কিনা দেখতে চাই কোন JPEG বা এটি একটি JPEG ফাইল লিখতে. এবং এটা 512 বাইট ফিরে না যদি, তারপর ফাইলটি হয় শেষ হয়ে গেছে আমরা Y আউট বিরতি পাবেন যে ক্ষেত্রে লুপ, বা ত্রুটি কিছু বাছাই আছে আমরা আউট বিরতি পাবেন যে ক্ষেত্রে Y লুপ, কিন্তু আমরা রিপোর্ট করতে চাইবেন যে কিছু ভুল হয়েছে. ঠিক আছে. সুতরাং আমরা সফলভাবে পড়া অভিমানী 512 বাইট, আমরা প্রথম পরীক্ষা করতে করা যে এই বাইট যে আমরা শুধু পড়া কোন JPEG শুরু. তাই যদি আমাদের বাফার এর কোন JPEG হেডার হয়. এখন কোন JPEG হেডার এটা কি করছে? এর চেহারা. এখানে আপ, আমরা এই ফাংশন যে দেখুন একটি ষাঁড় ফিরে, এবং যে ষাঁড় - ভাল এখানে, আমরা দেখতে চেক করছি, যদি হেডার শূন্য এই ধ্রুবক সমান এবং হেডার এক এই ধ্রুবক সমান এবং হেডার দুই, এই ধ্রুবক সমান হেডার তিন এই এই সমান সব এই ধ্রুবক যেখানে ধ্রুবক শুধু অধিকার এখানে সংজ্ঞায়িত হ্যাশ ও হয় আমরা বৈশিষ্ট আপনাকে বলেছে ঠিক কি কোন JPEG সঙ্গে যে শুরু. এবং তাই এই ফাংশন ঠিক যাচ্ছে এই বাফার প্রতিনিধিত্ব করে যদি সত্য ফিরে একটি নতুন কোন JPEG শুরু এবং মিথ্যা অন্যথায়. ঠিক আছে. এই একটি নতুন কোন JPEG প্রতিনিধিত্ব করে তাই যদি, তারপর আমরা প্রথম দেখতে পরীক্ষা করতে হলে JPEG ফাইল, নাল সমান নয় যে ক্ষেত্রে আমরা তা বন্ধ করুন. তাই কেন আমরা চেক প্রয়োজন এটি নাল না দেখতে? যাও ওয়েল প্রথম কোন JPEG যে আমরা আমরা ইতিমধ্যে থাকবে না খুঁজে একটি খোলা JPEG ফাইল. এবং তাই, আমরা তারপর, যে বন্ধ করতে চেষ্টা করুন আমরা মোটামুটি ঠিক কিছু করছেন না. কিন্তু প্রত্যেক পরবর্তী কোন JPEG যে আমরা খোলা, আমরা বন্ধ করতে চাই পূর্ববর্তী ফাইল. তাই এখন আমরা আমরা হিসাবে sprintf ব্যবহার চলুন আমরা ব্যবহার করছেন যেখানে আগে বলেন বাফার JPEG ফাইল নাম. এবং আমরা JPEG ফাইল ব্যবহার করতে যাচ্ছেন আমাদের ফরম্যাট হিসাবে ফরম্যাট নাম দিন. এবং যে কি হয়? এখানে আপ, আমরা এটা শতাংশ শূন্য যে দেখুন 3D.JPEG যেখানে শূন্য তিন মাত্র আমরা তিনটি ইন্টিজার ব্যবহার করব বলছেন যে এই জন্য শূন্য সঙ্গে padded. তাই এই আমরা শূন্য শূন্য হয়ে উঠবেন কিভাবে তাই one.JPEG এবং শূন্য 10.JPEG ও. আমরা sprintf ব্যবহার করতে যাচ্ছেন. এবং আমরা ঢোকাতে করছি পূর্ণসংখ্যা স্ট্রিং অসাড় JPEGs হয় মধ্যে মূলত শূন্য, যা উদ্ধার করা. সুতরাং প্রথম ফাইলটি যাচ্ছে খোলা শূন্য শূন্য শূন্য বিন্দু কোন JPEG হতে. এবং তারপর আমরা তাই এটি বৃদ্ধিশীল করছি আমরা খোলা পরবর্তী ফাইল শূন্য শূন্য হবে এক বিন্দু কোন JPEG এবং আমরা তা বাড়ায় করব আবার তাই এটি শূন্য শূন্য দুটি বিন্দু হবেন তাই কোন JPEG এবং. ঠিক আছে. তাই এখন JPEG ফাইল এর ভিতর নাম দিন, আমরা তার নাম আছে আমরা চাই যে ফাইল. আমরা চ লেখার জন্য যে ফাইল খুলতে পারে. ঠিক আছে. এবং আবার, আমরা করতে পরীক্ষা প্রয়োজন নিশ্চিত করুন যে সফলভাবে ফাইল তা না, তারপর না হলে যেহেতু খোলা কিছু ত্রুটি ছিল. তাই এখন আমরা অতীতের অর্জিত করেছি এই কোন JPEG অংশ. এবং এখানে, আমরা আমরা চলুন দেখুন কোন JPEG লিখতে. কিন্তু আমরা প্রথমে যা বলেছেন এই চেক আছে JPEG ফাইল সমান নাল না যদি. কেন আমরা যে প্রয়োজন? ওয়েল JPEG ফাইল নাল সমান যখন আমরা বর্তমানে একটি খোলা কোন JPEG আছে. কী কার্ড ডট কাঁচা শুরু হয় বাইট একটি গুচ্ছ সঙ্গে যে কোন JPEG প্রতিনিধিত্ব করে না? তারপর আমরা চাই চলুন যারা বাইট উপর লাফালাফি করা. আমরা এই চেক না থাকে, তাহলে আমরা করছি একটি অনুদ্ঘাটিত লিখুন যাচ্ছে প্রথম 512 বাইট ফাইল ভাল হয় না, যা কার্ড. ঠিক আছে. আমি তখন, আমরা একটি খোলা ফাইল আছে অভিমানী আমরা যে ফাইলে লিখতে যাচ্ছেন আমরা আমাদের বাফার মধ্যে আছে 512 বাইট. এবং আমরা আবার করা চেক করছি নিশ্চিত করুন যে সফলভাবে 512 বাইট তারা ছিল না কারণ যদি লেখা হয় সফলভাবে লিখিত তারপর কিছু ভুল হয়েছে. আমরা যে প্রিন্ট, আমাদের ফাইল বন্ধ করব কিছু ভুল হয়েছে, এবং বিনিময়ে. Assuming সবকিছু, তারপর সঠিকভাবে যায় আমরা বন্ধ looping যাব পুরোনো ফাইল, নতুন ফাইল খোলার, লিখিত তাই নতুন ফাইলে তথ্য, এবং অবশেষে, এই চ পড়া পর্যন্ত শূন্য ফেরৎ যা উপায় ফাইল সম্পন্ন করা হয় যে. তাই এখন কার্ড পড়া শেষ হয় যে, আমরা আমরা চ বন্ধ করতে যাচ্ছেন যে দেখুন আমরা খোলা ছিল, কিন্তু যে গত ফাইল আমরা চেক করছি যদি কোন JPEG ফাইল সমান নয় নাল আছে. ওয়েল চ ঘনিষ্ঠ কারণ হিসেবে জ্ঞান করে তোলে আমরা আমরা বন্ধ করছি, ফাইল খোলার করছেন আগের ফাইল, কিন্তু শেষ আমরা খোলা ফাইল বন্ধ করে পরার না. সুতরাং যে এই কাজ হয় কি. কিন্তু কেন আমরা নাল জন্য চেক করা প্রয়োজন? আচ্ছা কি যদি কার্ড ডট কাঁচা না এটা ভিতরে একটি একক কোন JPEG আছে? সেই ক্ষেত্রে, আমরা হবে একটি ফাইল খোলা না. আমরা একটি ফাইল খুলতে না এবং যদি, আমরা উচিত যে ফাইল বন্ধ করার চেষ্টা করবেন. সুতরাং যে এই চেক করছে কি. আমি আগে বলেন হিসেবে এখন এখানে,, আমরা পারা যে Y লুপ হয় যদি খুঁজে ভঙ্গ করেছেন কার্ড আছে যদি শেষ বা হয়েছে কার্ড থেকে পড়া কিছু ত্রুটি. তাই এই ছিল কিনা দেখতে পরীক্ষা করা হয় ইন, কার্ড থেকে পড়া একটি ত্রুটি যে ক্ষেত্রে, আমরা সেখানে বলবো একটি ত্রুটি পড়া ছিল. আমরা ব্যবহারকারীর মনে করতে চাই না সবকিছু সফলভাবে গিয়েছিলাম. এবং আমরা ত্রুটির জন্য এক ফিরে আসবেন. পরিশেষে, আমরা চ আমাদের কাঁচা ফাইল বন্ধ করব, আমাদের কার্ড যে ইঙ্গিত, কাঁচা বিন্দু সবকিছু ভাল এবং বিনিময়ে গিয়েছিলাম শূন্য এবং যে এটি. আমার নাম রব এবং এই উদ্ধার করে. [সঙ্গীত বাজাচ্ছি]