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 >> روب 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 ہم F ہمارے بفر میں پڑھنے کے لئے جا رہے ہیں ایک بائٹ بلاک سائز دور سے 38 00:02:12,980 --> 00:02:14,710 کارڈ خام فائل ڈاٹ. 39 00:02:14,710 --> 00:02:16,630 اب F واپس کیا پڑھا ہے؟ 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 ہیڈر تین اس یا اس کے برابر ہے ان تمام constants ہیں جہاں مسلسل 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 فائل، شہوت انگیز null برابر نہیں ہے جس میں کیس ہم اسے بند. 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 ہم تین integers کے استعمال کریں گے کا کہنا ہے کہ اس کے لئے صفر کے ساتھ 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 اور پھر ہم تو یہ incrementing کر رہے ہیں ہم کھولنے اگلا فائل صفر صفر ہو جائے گا 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 ہم F لکھنے کے لئے اس فائل کو کھول سکتے ہیں. 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 فائل، شہوت انگیز null برابر جب ہم فی الحال ایک کھلی 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 سنبھالنے سب کچھ اس کے بعد، صحیح طریقے سے چلا جاتا ہے ہم بند looping کے رکھیں گے 109 00:06:10,940 --> 00:06:15,060 پرانی فائل، نئی فائل کو کھولنے، تحریری طور پر تو نئی فائل کے اعداد و شمار، اور 110 00:06:15,060 --> 00:06:20,990 آخر میں، یہ F پڑھنے تک صفر واپس جس کا مطلب ہے کہ 111 00:06:20,990 --> 00:06:23,280 فائل کیا جاتا ہے. 112 00:06:23,280 --> 00:06:28,490 >> تو اب کارڈ پڑھنے سے زیادہ ہے، ہم ہم F بند کرنے کے لئے جا رہے ہیں دیکھتے ہیں کہ 113 00:06:28,490 --> 00:06:33,250 ہم کھلے تھا، لیکن اس آخری فائل ہم جانچ پڑتال کر رہے ہیں JPEG فائل 114 00:06:33,250 --> 00:06:34,900 برابر نہیں، شہوت انگیز null کرتا ہے. 115 00:06:34,900 --> 00:06:39,520 ویسے F بند کیونکہ سمجھ میں آتا ہے ہم بند کر رہے ہیں، فائلوں کو کھولنے رہے ہیں 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 >> لیکن کیوں ہم شہوت انگیز null کے لئے چیک کرنے کی ضرورت ہے؟ 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 >> آخر میں، ہم F ہماری خام فائل بند کر دیں گے، ہمارے کارڈ پر دلالت کرنے کے لئے، خام ڈاٹ 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 >> [موسیقی بجانا]