1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [সঙ্গীত বাজাচ্ছি] 3 00:00:13,350 --> 00:00:14,080 >> Rob Bowden: হাই. 4 00:00:14,080 --> 00:00:17,550 আমি রব, এবং এর যাক আশা করি যে এই সমাধান আপনি লাগাতে সাহায্য করে 5 00:00:17,550 --> 00:00:19,600 পুনরুদ্ধারের রাস্তা. 6 00:00:19,600 --> 00:00:22,700 সুতরাং আসুন শুরু করা যাক. 7 00:00:22,700 --> 00:00:25,660 >> আমরা অবিলম্বে আমরা যে দেখুন শুধু আমরা এসেছি নিশ্চিত যে 8 00:00:25,660 --> 00:00:27,170 সঠিকভাবে উদ্ধার ব্যবহার. 9 00:00:27,170 --> 00:00:31,490 তাই ব্যবহার শুধু কিছু হওয়া উচিত ডট স্ল্যাশ পুনরুদ্ধার মত. 10 00:00:31,490 --> 00:00:35,500 >> এখন আমরা আশা খুলতে যাচ্ছেন কার্ড কাঁচা ফাইল বিন্দু. 11 00:00:35,500 --> 00:00:39,740 আমরা আমরা ব্যবহার করছেন যে এখানে দেখুন ধ্রুব কাঁচা আন্ডারস্কোর ফাইলের নাম, 12 00:00:39,740 --> 00:00:44,200 আমরা হ্যাশ আছে এখানে যা কার্ড কাঁচা বিন্দু হিসাবে সংজ্ঞায়িত. 13 00:00:44,200 --> 00:00:45,030 ঠিক আছে. 14 00:00:45,030 --> 00:00:48,210 >> তাই আমরা নিশ্চিত যে করা প্রয়োজন যে সফলভাবে খোলা কারণ যদি এটা 15 00:00:48,210 --> 00:00:51,150 তারপর আমরা ব্যবহারকারীকে সতর্ক করা উচিত হয়নি. 16 00:00:51,150 --> 00:00:56,770 কিন্তু তা যে অভিমানী, আমরা এখন করছি সাইজ কোন JPEG একটি বাফার ঘোষণা করা যাচ্ছে 17 00:00:56,770 --> 00:00:58,170 নামের দ্বারা দায়ের. 18 00:00:58,170 --> 00:01:02,060 তাই এই বাফার হতে যাচ্ছে যে আমরা মধ্যে sprintf চলুন. 19 00:01:02,060 --> 00:01:04,360 >> সুতরাং কোন JPEG ফাইল নাম দৈর্ঘ্য কত? 20 00:01:04,360 --> 00:01:08,490 এখানে আপ, আমরা এটা দেখতে যে আট হিসাবে সংজ্ঞায়িত হ্যাশ. 21 00:01:08,490 --> 00:01:10,670 সুতরাং কেন আটটি? 22 00:01:10,670 --> 00:01:15,150 ভাল একটি প্রদত্ত ফাইল নামকরণ করা হবে শূন্য শূন্য শূন্য মত কিছু. 23 00:01:15,150 --> 00:01:19,460 JPG, এবং তারপর আমরা একটি ব্যাকস্ল্যাশ শূন্য প্রয়োজন. 24 00:01:19,460 --> 00:01:22,720 সুতরাং আমরা যে যা করতে পারেন একটি বাফার প্রয়োজন আট অক্ষর সঞ্চয়. 25 00:01:22,720 --> 00:01:25,190 এখন আমরা যে একটি পাল্টা আছে চলুন ট্র্যাক রাখতে যাচ্ছে 26 00:01:25,190 --> 00:01:27,780 নম্বর JPEGs আমরা খুঁজে পাওয়া যায়নি. 27 00:01:27,780 --> 00:01:31,590 >> এবং পরিশেষে, আমরা আছে চলুন একটি প্রাথমিকভাবে নাল যা JPEG ফাইল 28 00:01:31,590 --> 00:01:35,920 বর্তমানে হতে যাচ্ছে যা আমরা করতে লেখার যে ফাইল খুলুন. 29 00:01:35,920 --> 00:01:37,540 এখন আমরা আছে চলুন একটি অতিরিক্ত বাফার. 30 00:01:37,540 --> 00:01:41,350 এটি আমাদের sprintf হিসাবে একই নয় এই বাফার হয় যেখানে বাফার 31 00:01:41,350 --> 00:01:45,020 আমরা তথ্য মধ্যে পড়ি যে কার্ড কাঁচা বিন্দু থেকে. 32 00:01:45,020 --> 00:01:48,900 >> তাই বাফার হতে যাচ্ছে স্বাক্ষরবিহীন অক্ষর, যা আপনি করতে পারেন 33 00:01:48,900 --> 00:01:53,560 মূলত শুধু আমাদের বাইট আচরণ, এবং এটি সাইজ ব্লক আকারের হতে যাচ্ছে 34 00:01:53,560 --> 00:01:57,950 যেখানে, আমরা আপনাকে বলে যে, ব্লক সাইজ 512 করে. 35 00:01:57,950 --> 00:02:03,070 সুতরাং JPEGs আপনি সবকিছু বিবেচনা করতে পারেন 512 বাইট ব্লক হিসেবে. 36 00:02:03,070 --> 00:02:05,890 >> এখন আমরা লুপ চলুন সম্পূর্ণ ফাইল উপর. 37 00:02:05,890 --> 00:02:12,980 আমরা চ আমাদের বাফারের মধ্যে পড়তে যাচ্ছেন একটি একক বাইট ব্লক সাইজ বার থেকে 38 00:02:12,980 --> 00:02:14,710 কার্ড কাঁচা ফাইল বিন্দু. 39 00:02:14,710 --> 00:02:16,630 এখন চ ফিরে কি পড়তে পারে? 40 00:02:16,630 --> 00:02:20,050 এটি আইটেম সংখ্যা ফেরৎ এটি সফলভাবে পড়া. 41 00:02:20,050 --> 00:02:27,310 এটি তারপর, 512 বাইট পড়া পরিচালিত সুতরাং যদি আমরা এই একটি ছিল কিনা দেখতে চাই 42 00:02:27,310 --> 00:02:29,700 কোন JPEG বা এটি একটি JPEG ফাইল লিখতে. 43 00:02:29,700 --> 00:02:34,450 এবং এটা 512 বাইট ফিরে না যদি, তারপর ফাইলটি হয় শেষ হয়ে গেছে 44 00:02:34,450 --> 00:02:37,870 আমরা Y আউট বিরতি পাবেন যে ক্ষেত্রে লুপ, বা ত্রুটি কিছু বাছাই আছে 45 00:02:37,870 --> 00:02:40,300 আমরা আউট বিরতি পাবেন যে ক্ষেত্রে Y লুপ, কিন্তু আমরা রিপোর্ট করতে চাইবেন 46 00:02:40,300 --> 00:02:41,990 যে কিছু ভুল হয়েছে. 47 00:02:41,990 --> 00:02:42,290 >> ঠিক আছে. 48 00:02:42,290 --> 00:02:47,630 সুতরাং আমরা সফলভাবে পড়া অভিমানী 512 বাইট, আমরা প্রথম পরীক্ষা করতে 49 00:02:47,630 --> 00:02:53,070 করা যে এই বাইট যে আমরা শুধু পড়া কোন JPEG শুরু. 50 00:02:53,070 --> 00:02:56,430 তাই যদি আমাদের বাফার এর কোন JPEG হেডার হয়. 51 00:02:56,430 --> 00:02:58,460 এখন কোন JPEG হেডার এটা কি করছে? 52 00:02:58,460 --> 00:03:00,120 এর চেহারা. 53 00:03:00,120 --> 00:03:05,270 >> এখানে আপ, আমরা এই ফাংশন যে দেখুন একটি ষাঁড় ফিরে, এবং যে ষাঁড় - 54 00:03:05,270 --> 00:03:08,820 ভাল এখানে, আমরা দেখতে চেক করছি, যদি হেডার শূন্য এই ধ্রুবক সমান এবং 55 00:03:08,820 --> 00:03:11,880 হেডার এক এই ধ্রুবক সমান এবং হেডার দুই, এই ধ্রুবক সমান 56 00:03:11,880 --> 00:03:15,640 হেডার তিন এই এই সমান সব এই ধ্রুবক যেখানে ধ্রুবক 57 00:03:15,640 --> 00:03:20,340 শুধু অধিকার এখানে সংজ্ঞায়িত হ্যাশ ও হয় আমরা বৈশিষ্ট আপনাকে বলেছে ঠিক কি 58 00:03:20,340 --> 00:03:22,700 কোন JPEG সঙ্গে যে শুরু. 59 00:03:22,700 --> 00:03:27,300 এবং তাই এই ফাংশন ঠিক যাচ্ছে এই বাফার প্রতিনিধিত্ব করে যদি সত্য ফিরে 60 00:03:27,300 --> 00:03:31,750 একটি নতুন কোন JPEG শুরু এবং মিথ্যা অন্যথায়. 61 00:03:31,750 --> 00:03:32,520 >> ঠিক আছে. 62 00:03:32,520 --> 00:03:38,490 এই একটি নতুন কোন JPEG প্রতিনিধিত্ব করে তাই যদি, তারপর আমরা প্রথম দেখতে পরীক্ষা করতে হলে 63 00:03:38,490 --> 00:03:42,030 JPEG ফাইল, নাল সমান নয় যে ক্ষেত্রে আমরা তা বন্ধ করুন. 64 00:03:42,030 --> 00:03:44,940 তাই কেন আমরা চেক প্রয়োজন এটি নাল না দেখতে? যাও 65 00:03:44,940 --> 00:03:48,980 ওয়েল প্রথম কোন JPEG যে আমরা আমরা ইতিমধ্যে থাকবে না খুঁজে 66 00:03:48,980 --> 00:03:50,440 একটি খোলা JPEG ফাইল. 67 00:03:50,440 --> 00:03:55,580 এবং তাই, আমরা তারপর, যে বন্ধ করতে চেষ্টা করুন আমরা মোটামুটি ঠিক কিছু করছেন না. 68 00:03:55,580 --> 00:03:59,090 >> কিন্তু প্রত্যেক পরবর্তী কোন JPEG যে আমরা খোলা, আমরা বন্ধ করতে চাই 69 00:03:59,090 --> 00:04:00,710 পূর্ববর্তী ফাইল. 70 00:04:00,710 --> 00:04:04,630 তাই এখন আমরা আমরা হিসাবে sprintf ব্যবহার চলুন আমরা ব্যবহার করছেন যেখানে আগে বলেন 71 00:04:04,630 --> 00:04:06,280 বাফার JPEG ফাইল নাম. 72 00:04:06,280 --> 00:04:09,870 এবং আমরা JPEG ফাইল ব্যবহার করতে যাচ্ছেন আমাদের ফরম্যাট হিসাবে ফরম্যাট নাম দিন. 73 00:04:09,870 --> 00:04:12,030 এবং যে কি হয়? 74 00:04:12,030 --> 00:04:18,450 এখানে আপ, আমরা এটা শতাংশ শূন্য যে দেখুন 3D.JPEG যেখানে শূন্য তিন মাত্র 75 00:04:18,450 --> 00:04:22,089 আমরা তিনটি ইন্টিজার ব্যবহার করব বলছেন যে এই জন্য শূন্য সঙ্গে padded. 76 00:04:22,089 --> 00:04:27,470 তাই এই আমরা শূন্য শূন্য হয়ে উঠবেন কিভাবে তাই one.JPEG এবং শূন্য 10.JPEG ও. 77 00:04:27,470 --> 00:04:29,060 >> আমরা sprintf ব্যবহার করতে যাচ্ছেন. 78 00:04:29,060 --> 00:04:33,760 এবং আমরা ঢোকাতে করছি পূর্ণসংখ্যা স্ট্রিং অসাড় JPEGs হয় মধ্যে 79 00:04:33,760 --> 00:04:36,380 মূলত শূন্য, যা উদ্ধার করা. 80 00:04:36,380 --> 00:04:39,950 সুতরাং প্রথম ফাইলটি যাচ্ছে খোলা শূন্য শূন্য শূন্য বিন্দু কোন JPEG হতে. 81 00:04:39,950 --> 00:04:43,330 এবং তারপর আমরা তাই এটি বৃদ্ধিশীল করছি আমরা খোলা পরবর্তী ফাইল শূন্য শূন্য হবে 82 00:04:43,330 --> 00:04:46,830 এক বিন্দু কোন JPEG এবং আমরা তা বাড়ায় করব আবার তাই এটি শূন্য শূন্য দুটি বিন্দু হবেন 83 00:04:46,830 --> 00:04:49,100 তাই কোন JPEG এবং. 84 00:04:49,100 --> 00:04:49,850 >> ঠিক আছে. 85 00:04:49,850 --> 00:04:53,210 তাই এখন JPEG ফাইল এর ভিতর নাম দিন, আমরা তার নাম আছে 86 00:04:53,210 --> 00:04:54,990 আমরা চাই যে ফাইল. 87 00:04:54,990 --> 00:04:58,640 আমরা চ লেখার জন্য যে ফাইল খুলতে পারে. 88 00:04:58,640 --> 00:04:59,170 ঠিক আছে. 89 00:04:59,170 --> 00:05:02,820 এবং আবার, আমরা করতে পরীক্ষা প্রয়োজন নিশ্চিত করুন যে সফলভাবে ফাইল 90 00:05:02,820 --> 00:05:08,460 তা না, তারপর না হলে যেহেতু খোলা কিছু ত্রুটি ছিল. 91 00:05:08,460 --> 00:05:13,100 >> তাই এখন আমরা অতীতের অর্জিত করেছি এই কোন JPEG অংশ. 92 00:05:13,100 --> 00:05:16,390 এবং এখানে, আমরা আমরা চলুন দেখুন কোন JPEG লিখতে. 93 00:05:16,390 --> 00:05:20,980 কিন্তু আমরা প্রথমে যা বলেছেন এই চেক আছে JPEG ফাইল সমান নাল না যদি. 94 00:05:20,980 --> 00:05:22,490 কেন আমরা যে প্রয়োজন? 95 00:05:22,490 --> 00:05:28,020 ওয়েল JPEG ফাইল নাল সমান যখন আমরা বর্তমানে একটি খোলা কোন JPEG আছে. 96 00:05:28,020 --> 00:05:31,870 >> কী কার্ড ডট কাঁচা শুরু হয় বাইট একটি গুচ্ছ সঙ্গে যে 97 00:05:31,870 --> 00:05:33,510 কোন JPEG প্রতিনিধিত্ব করে না? 98 00:05:33,510 --> 00:05:36,240 তারপর আমরা চাই চলুন যারা বাইট উপর লাফালাফি করা. 99 00:05:36,240 --> 00:05:39,600 আমরা এই চেক না থাকে, তাহলে আমরা করছি একটি অনুদ্ঘাটিত লিখুন যাচ্ছে 100 00:05:39,600 --> 00:05:45,540 প্রথম 512 বাইট ফাইল ভাল হয় না, যা কার্ড. 101 00:05:45,540 --> 00:05:46,030 ঠিক আছে. 102 00:05:46,030 --> 00:05:51,330 >> আমি তখন, আমরা একটি খোলা ফাইল আছে অভিমানী আমরা যে ফাইলে লিখতে যাচ্ছেন 103 00:05:51,330 --> 00:05:53,290 আমরা আমাদের বাফার মধ্যে আছে 512 বাইট. 104 00:05:53,290 --> 00:05:57,390 এবং আমরা আবার করা চেক করছি নিশ্চিত করুন যে সফলভাবে 512 বাইট 105 00:05:57,390 --> 00:06:01,140 তারা ছিল না কারণ যদি লেখা হয় সফলভাবে লিখিত তারপর কিছু 106 00:06:01,140 --> 00:06:02,080 ভুল হয়েছে. 107 00:06:02,080 --> 00:06:06,540 আমরা যে প্রিন্ট, আমাদের ফাইল বন্ধ করব কিছু ভুল হয়েছে, এবং বিনিময়ে. 108 00:06:06,540 --> 00:06:10,940 Assuming সবকিছু, তারপর সঠিকভাবে যায় আমরা বন্ধ looping যাব 109 00:06:10,940 --> 00:06:15,060 পুরোনো ফাইল, নতুন ফাইল খোলার, লিখিত তাই নতুন ফাইলে তথ্য, এবং 110 00:06:15,060 --> 00:06:20,990 অবশেষে, এই চ পড়া পর্যন্ত শূন্য ফেরৎ যা উপায় 111 00:06:20,990 --> 00:06:23,280 ফাইল সম্পন্ন করা হয় যে. 112 00:06:23,280 --> 00:06:28,490 >> তাই এখন কার্ড পড়া শেষ হয় যে, আমরা আমরা চ বন্ধ করতে যাচ্ছেন যে দেখুন 113 00:06:28,490 --> 00:06:33,250 আমরা খোলা ছিল, কিন্তু যে গত ফাইল আমরা চেক করছি যদি কোন JPEG ফাইল 114 00:06:33,250 --> 00:06:34,900 সমান নয় নাল আছে. 115 00:06:34,900 --> 00:06:39,520 ওয়েল চ ঘনিষ্ঠ কারণ হিসেবে জ্ঞান করে তোলে আমরা আমরা বন্ধ করছি, ফাইল খোলার করছেন 116 00:06:39,520 --> 00:06:43,870 আগের ফাইল, কিন্তু শেষ আমরা খোলা ফাইল বন্ধ করে পরার না. 117 00:06:43,870 --> 00:06:45,580 সুতরাং যে এই কাজ হয় কি. 118 00:06:45,580 --> 00:06:47,720 >> কিন্তু কেন আমরা নাল জন্য চেক করা প্রয়োজন? 119 00:06:47,720 --> 00:06:53,130 আচ্ছা কি যদি কার্ড ডট কাঁচা না এটা ভিতরে একটি একক কোন JPEG আছে? 120 00:06:53,130 --> 00:06:56,640 সেই ক্ষেত্রে, আমরা হবে একটি ফাইল খোলা না. 121 00:06:56,640 --> 00:07:00,230 আমরা একটি ফাইল খুলতে না এবং যদি, আমরা উচিত যে ফাইল বন্ধ করার চেষ্টা করবেন. 122 00:07:00,230 --> 00:07:03,000 সুতরাং যে এই চেক করছে কি. 123 00:07:03,000 --> 00:07:07,880 >> আমি আগে বলেন হিসেবে এখন এখানে,, আমরা পারা যে Y লুপ হয় যদি খুঁজে ভঙ্গ করেছেন 124 00:07:07,880 --> 00:07:13,520 কার্ড আছে যদি শেষ বা হয়েছে কার্ড থেকে পড়া কিছু ত্রুটি. 125 00:07:13,520 --> 00:07:16,680 তাই এই ছিল কিনা দেখতে পরীক্ষা করা হয় ইন, কার্ড থেকে পড়া একটি ত্রুটি 126 00:07:16,680 --> 00:07:19,400 যে ক্ষেত্রে, আমরা সেখানে বলবো একটি ত্রুটি পড়া ছিল. 127 00:07:19,400 --> 00:07:22,130 আমরা ব্যবহারকারীর মনে করতে চাই না সবকিছু সফলভাবে গিয়েছিলাম. 128 00:07:22,130 --> 00:07:24,750 এবং আমরা ত্রুটির জন্য এক ফিরে আসবেন. 129 00:07:24,750 --> 00:07:29,580 >> পরিশেষে, আমরা চ আমাদের কাঁচা ফাইল বন্ধ করব, আমাদের কার্ড যে ইঙ্গিত, কাঁচা বিন্দু 130 00:07:29,580 --> 00:07:34,070 সবকিছু ভাল এবং বিনিময়ে গিয়েছিলাম শূন্য এবং যে এটি. 131 00:07:34,070 --> 00:07:36,130 >> আমার নাম রব এবং এই উদ্ধার করে. 132 00:07:36,130 --> 00:07:42,102 >> [সঙ্গীত বাজাচ্ছি]