 بسم اللہ اخمان الرحیم، آج ہم موڈیول 22 کو دیسکس کریں گے موڈیول 22 ہے کوپنگ ملٹپل فائلز using Windows API اس کے اندر ہم دیکھیں گے کہ آپ کس طرح سے console API Windows کی console API use کرتے ہوئے فائلز کو سکرین کے اوپر دیسپلے کر سکتے ہیں ان فکر جب آپ فائل کو سکرین کے اوپر دیسپلے کر رہے ہیں تو آپ اس کو کنسول کے اوپر کوپی کر رہے ہیں تو ان فکر جو وہ سکرین کے اوپر دیسپلے ہو جائے گی اس کے لیے ہم نے ایک utility function منایا با option کے نام سے یہ option کا function جو ہے یہ ہم آگے جاکی بھی use کریں گے یہ ایک variable list of parameters لے گا اور ان parameter list کو parse کرنے کے لیے use ہوگا بسکلی یعنی کہ آپ جب command prompt کے اوپر کسی ایک program کو parameter list specify کرتے ہیں تو اس کے اندر آپ کے پس کئی کسم کی options ہوتی ہیں اُن options کو یہ parse کرنے کے لیے یہ function in fact use ہو رہا ہے اور اگر اس کے اندر کوئی ایک option specify کرنے ہوتی ہے تو عام طور پر اس کے ساتھ آپ hyphen کی prompt لگاتے ہیں تو یہ اس hyphen کی prefix جو ہے اس کو identify کرے گا اور جو بھی possible option ہے ان میں سے چیک کرے گا آپ نے کسی option کو set کیا ہوئے کنکن options کو set کیا ہوئے اور ان کے according لیے الگ الگ flags کو set کر دے گا اور ان flags کو دیکھ کے آپ کے program کے اندر یہ پتہ لکھ سکے گا کہ کون کسی options use نے specify کی نہیں تو ایک یہ function بنائیں گے ہم اس function کی طرف چلتے ہیں اس function کے اندر آپ دیکھ سکتے ہیں کہ یہ option کا function ہے اس کی parameter list دیکھیں parameter list کے اندر last parameter وہاں پر ellipsis 3 dots ہم نے دیے میں یہ dots جو یہ specify کریں کہ اس کی parameter list ہے that is variable جو variable parameter list ہے تو ہم certain c کے library functions کو use کر کے اس list کو ہم retrieve کر سکتے ہیں وہاں کن سے function ہے VA start VA end اور VA arg VA arg جو ہے argument کو read کرنے کے لیے use ہوتا آپ اس function کے اندر دیکھ سکتے ہیں کہ ایک while کا loop لگا ہوا اس while کے loop کے اندر وہ argument کو اٹھاتا ہے اور اس کو check کرتا ہے options کے according لیے جو بھی آپ نے options specify کی نہیں ہے ان کے according لیے check کرے گا اور flags کو set کرے گا true کرے گا or false کرے گا یہاں پر آپ دیکھ سکتے ہیں کہ یہ hyphen کو یہاں پر check کر رہا اور جہاں کنی اس کو hyphen ملتا ہے اس کے according لی جو اس کے پاس flags available list کے اندر ان flags کی values کو set کرتے گا اور آپ کے پاس یہ flag کی value آجے گی اور اس کو آپ iterate کریں گے تب تک iterate کریں گے جب تک آپ last parameter تک نہیں پہن جاتے اور ان کو pass کرنے کی جب آپ سارا pass کر لیں گے تو آپ va end کا function use کریں گے اس کا مطلب ہے کہ آپ نے list جو ہے اس کو pass کر لیا اور یہ options جو ہے آپ کو پھر ایک variable return کرے گا i arg یہ i arg جو variable ہے اس کے اندر جتریں بھی آپ نے arguments pass کیا تھے ایک count کے according لی values جو ہے وہ set ہو جائیں گے اور already جو آپ نے flags pass کیے میں جو flags pass کیے میں وہ آپ کا ایک pointer ہے اور وہ جو pointer ہے اس کے اندر flags according لی set ہو جائیں گے جو جس جس کو hyphen کی option کے ساتھ اس نے pass کیا ہوگا اس کے flags set ہو جائیں گے جو نہیں اس کو options ملیں گے ان کے flags جو ہے وہ set نہیں ہوگے utility ہم نے منائی گا یہ utility جو ہے number of parameters لے گی through command prompt جس کے اندر کے آپ option specify کریں گے اور اس options کے لعا آپ file names specify کریں گے جو جو file names آپ نے specify کیا ہے یہ ان files کو open کرے گا اور open کر کے ان کے اندر جو contents اس کو console پے send کرنے کی کوشش کرے گا console پے output کرنے کی کوشش کریں گا اور اگر آپ نے کوئی files نہیں specify کیمی تو یہ standard input device اور standard output device کے بیچ میں جو بھی دیتا ہے اس دیتا کو اپس میں exchange کرے گا یعنی کہ standard input دیتا سے دیتا لے گا اور standard output کو دیتا send کر دے گا اس کے لعا report error کا بھی function جو ہم نے previously discuss کیا تھا اس کو یہ use کرے گا اگر ان case کسی کسم کا error آتا ہے یہ سارہ process کرنے میں تو report error سے وہ یہ show کر سکے گا کہ جی کیا error آیا for example ایک file ہے جو exist نہیں کرتی تو اس file کے لیے ایک error آئے گا وہ error report error کی مدہ سے user کو display ہو سکے گا اس function کی طرف چلتے ہیں سو سے پہلے آپ دیکھ سکتے ہیں کہ اپنے option کو call کرتا اور اس کو یہ ایک اس نے list پرواید کی گیا اور i first file میں کیا چیز return ہوگی جو first file number of files آپ نے parameter list میں specify کیا ہی میں ان میں سے جو first file ہے اس first file کا جو بھی index ہے وہ send ہوگی اس string کے اندر command line string کے اندر جو اس first file کی index بنتی ہے وہ i first file کے اندر پڑی ہوگی یہ یہاں پہ دیکھے گا کہ i first file کی جو index ہے اور argument count جویں وہ دونوں اگر same ہے تو اس کا مدلہ بہا argument list کے اندر آپ نے کوئی file نہیں specify کیوی اس کے اس میں وہ standard input اور standard output ان دونوں کو exchange کردے گا یعنی کہ cat file کا ایک function ہے وہ call کیا اور اس کو یہ دونوں files pass کردیں اس کا مدلہ standard input سے جو بھی data رسیب کر ہوگا وہ standard output کے اوپر وہ send کرنا شروع کردے گا اور ان case اگر وہاں پہ file سے exist کرتی ہیں تو یہاں پہ یہ create file کی مدل سے اس file کو open کرے گا generic read کیلئے اس نے open کیا اور وہ file existing open existing وہ اس کا مدلہ ہے کہ وہ file پہلے سے exist کرنے چاہیے ان case کسی کسم کا error آتا ہے invalid handle تو اس case میں report error کرے گا اگر error نہیں آتا تو وہ cat file کو call کرے گا اور اس کو standard output output کے لیے ہماری standard output a screenی use ہوگی screen کیوپر جو بھی output ہونے وہ output ہوگا اور ایسا کرنے کے بعد جب ساری جتنی بھی files یہ loop چل رہا ہے اس loop کے اندر تمام files کو وہ باری باری create کرے گا اور ان کو standard output کیوپر cat کرے گا then next کو create کرے گا اس کو standard output کیوپر cat کرے گا اس طرح یہ پورا loop چلے گا اور in the end جب یہ loop ختم ہوگا تو یہ ہر file کو ساست کلوز بھی کرتا رہے گا جو cat file کا function ہے یہ بڑا سمپل ہے آپ اس کو دو handles پاس کرتے ہیں ایک input file handle ایک output file handle ہے یہ کیا کرے گا input file handle کو read کرے گا جو بھی data اس نے read کیا actual اتنا data read ہوئے تو actually اتنا data ہی output file کیوپر write کرتے گا اس program کو لکھنے کے لیے as a project لکھنے کے لیے آپ کو بتایا ہے کہ آپ کو ایک تو options کا جو function ہے اس کی ضرورت پڑے گی پہلے report error کا function ہے وہ بھی ضرورت پڑے گی ان دونوں functions کیا آپ کو آگے کئی جگہ بھی ضرورت پڑے گی تو اس لیے آپ اس کا project بنائے تو project کے اندر آپ جو source file ہے وہ source file کے اندر ایک alakze file بنالیں options کیلئے اور ایک alakze file بنالیں report error کیلئے options کی file کے اندر آپ options کا function رکھنے اور report error کے اندر آپ report error کا function رکھنے اور یہ جو تیسری file ہے اس کے اندر آپ اپنی source code جو بھی source code ہے ابھی یہی جو آپ نے program لکھا ہے for example اس کی source code رکھیں اور ہیڈر فائل کے اندر بھی آپ کو number of files آئڈ کرنے پڑیں گے جس طرح سے ہم نے previously discuss کیا تھا everything.h یہ والی ہماری ہیڈر فائل ہے یہ ہر program کے اندر ہم use کریں گے کیونکہ اس کے اندر ساری prototypes exist کرتے ہیں windows.h کے اور دوسرے سارے تو آپ اس everything.h کو ادر ہیڈر فائل کے اندر آڈ کر لیں یہ everything.h اندر again کچھ اور ہیڈر فائل کو use کرتی ہیں یہ بھی آپ کو supplementary material کے ساتھ پروائیٹ کرتی جائیں گی تو یہ والی فائل environment.h اور sport.h یہ ساری فائل جو ہے یہ بھی آپ either include کر لیں اور include کرنے کے بعد اپنی source code لکھیں program کو compile کریں hopefully program جہاں بالکل سائی طریقی سے compile ہوگا اور command prompt کے اپنے اس program کو جاکے پھر run کرنا