1 00:00:00,000 --> 00:00:00,996 2 00:00:00,996 --> 00:00:12,470 >> [موسیقی بجانا] 3 00:00:12,470 --> 00:00:13,210 >> روب Bowden: ہیلو. 4 00:00:13,210 --> 00:00:16,870 میں روب ہوں اور دو کے سائز اس مسئلہ کو. 5 00:00:16,870 --> 00:00:20,990 تو ہم کے طور پر copy.c کے ساتھ شروع کرنے کے لئے جا رہے ہیں ایک سانچے، لیکن ہم جا رہے ہیں 6 00:00:20,990 --> 00:00:23,340 بہت کچھ تبدیلیاں کرنے. 7 00:00:23,340 --> 00:00:27,570 >> اب ہمیں فوری طور پر کر رہے ہیں کو دیکھنے کے ایک اب ہم مزید کی جانچ پڑتال کر رہے ہیں جہاں میں تبدیلی 8 00:00:27,570 --> 00:00:31,560 ہمارے rxc اب 3 کے برابر ہے، لیکن نہیں کرتا ہم RC پڑتال کر رہے ہیں 4 کے برابر نہیں ہے. 9 00:00:31,560 --> 00:00:34,670 ہم بھی، شامل کرنے کے لئے چاہتے ہیں فائل میں اور باہر فائلوں کے علاوہ 10 00:00:34,670 --> 00:00:39,550 یہ ہونے جا رہا ہے جس کے دلائل، F ہم پیمائی کر رہے ہیں جس کے ذریعے عنصر. 11 00:00:39,550 --> 00:00:45,430 >> ہم اس بات کا یقین کر رہے ہیں تو ایک بار، ہم چاہتے ہیں سٹرنگ میں تبدیل کرنے کے اسکین F کا استعمال کرتے ہیں 12 00:00:45,430 --> 00:00:49,030 فلوٹ کی argv1. 13 00:00:49,030 --> 00:00:51,330 اور ہم نے ذخیرہ کرنے کے لئے جا رہے ہیں اس میں عنصر. 14 00:00:51,330 --> 00:00:55,180 یہ اضافی کردار اس بات کا یقین کر رہا ہے ہم اصل میں داخل ہونے نہیں کر رہے ہیں 15 00:00:55,180 --> 00:00:59,200 1.4 اے بی سی کی طرح کچھ کمانڈ لائن پر. 16 00:00:59,200 --> 00:01:02,960 >> اب ہم کچھ عرفی نام پیدا کرنے کے لئے جا رہے ہیں RV2 اور RV3 نہیں ہیں 17 00:01:02,960 --> 00:01:04,310 بہت مددگار ثابت کے نام. 18 00:01:04,310 --> 00:01:07,660 ہم، اس کے بجائے، فون کرنے کے لئے جا رہے ہیں ان فائل میں اور فائل کو. 19 00:01:07,660 --> 00:01:11,580 اب ہم اس بات کو یقینی بنانے کے لئے جا رہے ہیں ہماری عنصر اصل میں درست تھا. 20 00:01:11,580 --> 00:01:16,330 تو عنصر سے کم یا برابر ہے صفر یا اس سے زیادہ 100 سے زیادہ، اس کے بعد کے طور پر فی 21 00:01:16,330 --> 00:01:19,660 رپورٹ، ہم مسترد کر دینا چاہیے کہ عنصر. 22 00:01:19,660 --> 00:01:23,890 >> ہم اس بات کا یقین کر رہے ہیں تو اب یہ ہم کر سکتے ہیں، اچھا ہے ن فائل کو کھولنے، اور ہم بنانے کے لئے ہے 23 00:01:23,890 --> 00:01:25,950 اس کامیابی کے ساتھ کھولا گیا تھا اس بات کا یقین. 24 00:01:25,950 --> 00:01:28,630 یہ نہیں کیا تو، کہ، شہوت انگیز null واپس آ جائیں گے. 25 00:01:28,630 --> 00:01:30,390 ہم فائل کو کھولنے کے لئے جا رہے ہیں. 26 00:01:30,390 --> 00:01:33,420 اور پھر، ہم کرنے کے لئے کی جانچ کرنا چاہتے اس بات کا یقین ہے کہ یہ کامیابی کے ساتھ کھول دیا ہے. 27 00:01:33,420 --> 00:01:37,270 اور یہ کامیابی کے ساتھ تو، کھولنے نہیں کیا تو ہم بھی بند کرنے کے لئے اس بات کا یقین کرنے کی ضرورت ہے 28 00:01:37,270 --> 00:01:40,870 ن فائل ہے جس میں اصل میں کامیابی کے ساتھ کھولا، ورنہ ہم ایک 29 00:01:40,870 --> 00:01:42,600 میموری لیک. 30 00:01:42,600 --> 00:01:46,350 >> تو اب ہم بٹ نقشہ میں پڑھنے کے لئے جا رہے ہیں فائل ہیڈر اور بٹ نقشہ کی معلومات 31 00:01:46,350 --> 00:01:48,890 ن فائل سے ہیڈر. 32 00:01:48,890 --> 00:01:52,360 ہم اس بات کو یقینی بنانے کے لئے جا رہے ہیں ن فائل کو ایک درست بٹ نقشہ تھا. 33 00:01:52,360 --> 00:01:52,640 ٹھیک ہے. 34 00:01:52,640 --> 00:01:55,100 >> تو اب ہم شروع کرنے کے لئے جا رہے ہیں کچھ تبدیلیاں کرنے. 35 00:01:55,100 --> 00:01:58,840 ہم کو تبدیل کرنے جا رہے ہیں تو اس کی وجہ چیزیں، ہم سب سے پہلے یاد کرنا چاہتے ہیں 36 00:01:58,840 --> 00:02:01,510 ن فائل کے پرانے چوڑائی. 37 00:02:01,510 --> 00:02:05,160 ہم پرانے بھرتی کے یاد کرنا چاہتے ہیں اسی حساب کتاب کا استعمال کرتے ہوئے (ن) فائل 38 00:02:05,160 --> 00:02:06,990 copy.c. سے 39 00:02:06,990 --> 00:02:09,840 >> اور اب ہم کو تبدیل کرنے جا رہے ہیں بٹ نقشہ معلومات ہیڈر. 40 00:02:09,840 --> 00:02:13,630 اور اس طرح ہم چوڑائی دونوں ضرب کر رہے ہیں اور اس کے بعد پہلو کی طرف سے اونچائی 41 00:02:13,630 --> 00:02:15,750 کہ ہم سے پیمائی رہے ہیں. 42 00:02:15,750 --> 00:02:18,420 ہم تعین کرنے کے لئے جا رہے ہیں فائل کی طرف سے نئے بھرتی 43 00:02:18,420 --> 00:02:21,140 نئے چوڑائی کا استعمال کرتے ہوئے. 44 00:02:21,140 --> 00:02:27,330 اور ہم نئے تعین کرنے کے لئے جا رہے ہیں تعداد کا استعمال کرتے ہوئے تصویر کا سائز 45 00:02:27,330 --> 00:02:31,610 جا رہا ہے جس میں ایک قطار میں شراکت کہ قطار میں پکسلز کی تعداد 46 00:02:31,610 --> 00:02:35,960 بار ایک پکسل کے سائز کے علاوہ آخر میں بھرتی کی بائٹس کی تعداد 47 00:02:35,960 --> 00:02:40,310 کہ صف کے، اور وہ سب ضرب کہ ہم قطاروں کی تعداد کی طرف سے. 48 00:02:40,310 --> 00:02:43,800 تو اس بائٹس کی تعداد ہے ہم ہماری تصویر کے اعداد و شمار میں ہے. 49 00:02:43,800 --> 00:02:48,190 >> Bf.Bfsize اب بڑی تعداد ہونے جا رہا ہے کی ہماری تصویر بیٹا میں شراکت کے علاوہ 50 00:02:48,190 --> 00:02:49,350 ہمارے ہیڈر کا سائز. 51 00:02:49,350 --> 00:02:53,910 بٹ نقشہ فائل ہیڈر کے تو پلس سائز اور بٹ نقشہ معلومات ہیڈر کا سائز. 52 00:02:53,910 --> 00:02:54,510 ٹھیک ہے. 53 00:02:54,510 --> 00:02:56,440 تو یہ ہمارا ہیڈر کے لئے ہے. 54 00:02:56,440 --> 00:02:59,030 ہم فائل سر لکھیں اور کر سکتے ہیں ہمارے باہر معلومات ہیڈر 55 00:02:59,030 --> 00:03:01,590 فائل، اور ہم اچھے ہیں. 56 00:03:01,590 --> 00:03:03,800 >> اب یہ اصل میں شروع کرنے کا وقت ہے پکسل لکھنے 57 00:03:03,800 --> 00:03:05,120 باہر فائل کے اعداد و شمار. 58 00:03:05,120 --> 00:03:10,460 ہم سائز کے ایک بفر کا اعلان کرنے جا رہے ہیں پرانے چوڑائی آرجیبی تین گنا اضافہ، اور ہم ہیں 59 00:03:10,460 --> 00:03:13,790 نامی ایک متغیر کا اعلان کرنے کے لئے جا ہم جا رہے ہیں ہے، جو صف سنن، 60 00:03:13,790 --> 00:03:15,640 ابتدائی طور پر منفی 1 کے برابر مقرر کیا. 61 00:03:15,640 --> 00:03:19,090 ہم استعمال کرتے ہوئے جا رہے ہیں دیکھیں گے کہ یہ کیا کے ٹریک رکھنے کے لئے 62 00:03:19,090 --> 00:03:22,640 ہم اس وقت بھری ہوئی ہے قطار اس بفر میں. 63 00:03:22,640 --> 00:03:23,290 ٹھیک ہے. 64 00:03:23,290 --> 00:03:28,750 >> تو اب، سٹینڈرڈ ایڈیشن کے برعکس اس کی بجائے میں iterating کے 65 00:03:28,750 --> 00:03:32,900 فائل، ہم ایک پر iterate کرنے جا رہے ہیں باہر فائل میں صف اور اعداد و شمار 66 00:03:32,900 --> 00:03:38,130 ہم چاہتے ہیں میں فائل میں جس صف باہر فائل میں اس قطار میں جگہ. 67 00:03:38,130 --> 00:03:44,930 تو باہر تمام قطار پر iterating نئی اونچائی استعمال کرتے ہوئے فائل، ہم سب سے پہلے ہو 68 00:03:44,930 --> 00:03:48,890 پرانے میں صف کا تعین کرنے کے لئے جا ہم ہیں، جس میں استعمال کرنے کے لئے جا رہے ہیں، فائل 69 00:03:48,890 --> 00:03:53,560 اس موجودہ لینے کی طرف سے کیا جا رہا قطار پہلو کی طرف سے تقسیم کیا گیا. 70 00:03:53,560 --> 00:03:58,000 تو ہے کہ ہم قطار دینے جا رہا ہے ہم چاہتے ہیں کہ پرانے فائل میں. 71 00:03:58,000 --> 00:04:03,310 >> تو اب، اگر صف سنن برابر نہیں پرانے Y کرتا ہے، ہم صف میں پڑھنے کے لئے جا رہے ہیں 72 00:04:03,310 --> 00:04:05,940 ہم اپنے رائج صف بفر میں چاہتے ہیں. 73 00:04:05,940 --> 00:04:07,700 تو ہم کس طرح ایسا کرنے کے لئے جا رہے ہیں؟ 74 00:04:07,700 --> 00:04:11,650 سب سے پہلے، ہم نے اعداد و شمار کرنے جا رہے ہیں میں اس صف شروع ہوتی ہے پوزیشن 75 00:04:11,650 --> 00:04:13,100 اصل فائل. 76 00:04:13,100 --> 00:04:18,630 تو اس کی پوزیشن جا رہا ہے ہمارے ہیڈر کی تمام اور ماضی 77 00:04:18,630 --> 00:04:21,589 اب ماضی کی عمر Y قطار. 78 00:04:21,589 --> 00:04:23,880 >> اور تو کتنے بائٹس ایک قطار میں ہیں؟ 79 00:04:23,880 --> 00:04:28,740 ایک بار پھر، ٹرپل بار آرجیبی کے سائز کے پرانے چوڑائی کے علاوہ پرانے بھرتی، تو یہ ہے 80 00:04:28,740 --> 00:04:30,640 ایک قطار میں بائٹس کی تعداد. 81 00:04:30,640 --> 00:04:33,680 اور ہم ماضی کی عمر Y قطار چھوڑ کرنا چاہتے ہیں. 82 00:04:33,680 --> 00:04:37,580 تو ہم F حاصل کرنے کے لئے جا رہے ہیں اور ہم ہیں سے شروع کرنے کے لئے سیٹ حاصل کا استعمال کرتے ہوئے 83 00:04:37,580 --> 00:04:39,100 ایک فائل کے شروع. 84 00:04:39,100 --> 00:04:42,740 ہم اس عہدے کے کرنے کی کوشش F کرنے کے لئے جا رہے ہیں فائل میں، ہمیں ڈال 85 00:04:42,740 --> 00:04:46,500 ہم چاہتے ہیں صف کے آغاز ہمارے بفر میں پڑھنے کے لئے. 86 00:04:46,500 --> 00:04:48,510 >> ہم صف قائم کرنے کے لئے جا رہے ہیں پرانے Y برابر سنن. 87 00:04:48,510 --> 00:04:53,080 تو اب اگر ہم لوپ واپس اور ہم کرنا چاہتے ہیں ہمارے باہر فائل میں یہ ایک ہی قطار کو منتخب کریں، 88 00:04:53,080 --> 00:04:55,970 تو ہم پڑھنے کے لئے نہیں جا رہے ہیں اس میں ایک بار پھر بیکار. 89 00:04:55,970 --> 00:04:59,310 تو واقعی، قطار سنن ہے صرف ایک اصلاح. 90 00:04:59,310 --> 00:05:05,500 >> آخر میں، ہم میں پڑھنے کے لئے جا رہے ہیں موجودہ صف پرانے چوڑائی آرجیبی تین گنا اضافہ 91 00:05:05,500 --> 00:05:08,040 ہم اصل فائل سے چاہتے ہیں. 92 00:05:08,040 --> 00:05:12,270 تو اب رائج صف سے پکسلز پر مشتمل ہے ہم چاہتے ہیں کہ اصل فائل 93 00:05:12,270 --> 00:05:14,200 باہر فائل میں لکھنے کے. 94 00:05:14,200 --> 00:05:18,960 تو اب، صرف مندرجہ بالا کی طرح، کی بجائے پرانی فائل پر iterating، ہمیں ضرورت ہے 95 00:05:18,960 --> 00:05:22,560 یہ نئی فائلوں قطاروں پر iterate. 96 00:05:22,560 --> 00:05:27,450 ویسے یہاں، اس کی بجائے iterating کے تمام پرانے پکسلز کی ہے کہ رائج قطار میں، 97 00:05:27,450 --> 00:05:31,210 ہم تمام iterate کرنا چاہتے ہیں اس میں ہمارے نئے فائل میں پکسلز 98 00:05:31,210 --> 00:05:32,480 خاص طور پر قطار. 99 00:05:32,480 --> 00:05:34,140 >> کیوں ہم ایسا کرنا چاہتے ہیں؟ 100 00:05:34,140 --> 00:05:38,960 ہم نہیں ہیں کہ یہاں کیونکہ اصل میں ضروری کے تمام کا استعمال کرتے ہوئے 101 00:05:38,960 --> 00:05:41,020 اصل فائل میں پکسلز. 102 00:05:41,020 --> 00:05:46,630 ہم سکڑ کر رہے ہیں تو، ہم ہو سکتا ہے کیونکہ اصل پکسلز کو چھوڑ کرنا چاہتے ہیں. 103 00:05:46,630 --> 00:05:48,090 اور ہم کہ یہ دیکھ - 104 00:05:48,090 --> 00:05:49,690 ایکس فیکٹر کی طرف سے تقسیم - 105 00:05:49,690 --> 00:05:55,620 ہم Y کا کہنا ہے کہ جہاں مل کر یہاں عکس اعداد و شمار پہلو کی طرف سے تقسیم کیا گیا ہے کہ 106 00:05:55,620 --> 00:06:02,480 پرانے Y ویں قطار کے مساوی ہے اس نئی فائل میں Y-ویں قطار. 107 00:06:02,480 --> 00:06:05,880 >> اب ہم میں سے سب کے لکھنے کے لئے جا رہے ہیں پرانے صف سے ان پکسلز 108 00:06:05,880 --> 00:06:07,440 ہماری نئی قطار میں. 109 00:06:07,440 --> 00:06:10,890 ہم نے کیا ہے ایک بار، ہم کرنے کی ضرورت ہے صرف ہمارے قطار کے آخر میں بھرتی ڈال 110 00:06:10,890 --> 00:06:15,540 اور ہم واپس لوپ گے اور کے لئے جاری ہماری نئی فائل میں قطاروں کی سب. 111 00:06:15,540 --> 00:06:19,390 آخر میں، ہم اپنے پرانے بند کرنے کی ضرورت ہے ، فائل ہمارے نئے فائل کو بند، اور واپسی 112 00:06:19,390 --> 00:06:21,540 صفر سب کچھ ٹھیک چلا گیا. 113 00:06:21,540 --> 00:06:24,220 >> میرا نام روب ہے اور اس وقفہ تھا. 114 00:06:24,220 --> 00:06:29,184 >> [موسیقی بجانا]