C فائلیں I/O: فائل بنائیں ، کھولیں ، پڑھیں ، لکھیں اور بند کریں۔

سی فائل مینجمنٹ۔

ایک فائل کو مستقل ڈیٹا کی ایک بڑی مقدار کو ذخیرہ کرنے کے لیے استعمال کیا جا سکتا ہے۔ بہت سی دوسری زبانوں کی طرح 'C' درج ذیل فائل مینجمنٹ افعال فراہم کرتا ہے ،

  1. فائل کی تخلیق۔
  2. ایک فائل کھول رہا ہے۔
  3. فائل پڑھنا۔
  4. ایک فائل پر لکھنا۔
  5. ایک فائل بند کرنا۔

درج ذیل سب سے اہم فائل مینجمنٹ افعال ہیں جو 'C' میں دستیاب ہیں

فنکشن مقصد
fopen () فائل بنانا یا موجودہ فائل کھولنا۔
fclose () ایک فائل بند کرنا۔
fprintf () فائل میں ڈیٹا کا بلاک لکھنا۔
fscanf () فائل سے بلاک ڈیٹا پڑھنا۔
getc () ایک فائل سے ایک حرف پڑھتا ہے۔
putc () فائل میں ایک ہی حرف لکھتا ہے۔
getw () ایک فائل سے ایک عدد پڑھتا ہے۔
putw () ایک فائل میں ایک عدد لکھنا
fseek () کسی مخصوص مقام پر فائل پوائنٹر کی پوزیشن سیٹ کرتا ہے۔
فوٹیل () فائل پوائنٹر کی موجودہ پوزیشن لوٹاتا ہے۔
ریوائنڈ () فائل کے آغاز میں فائل پوائنٹر سیٹ کرتا ہے۔

اس سبق میں ، آپ سیکھیں گے-

فائل بنانے کا طریقہ

جب بھی آپ کسی فائل کے ساتھ کام کرنا چاہتے ہیں ، پہلا قدم ایک فائل بنانا ہے۔ ایک فائل میموری میں جگہ کے سوا کچھ نہیں ہے جہاں ڈیٹا محفوظ ہوتا ہے۔

'C' پروگرام میں فائل بنانے کے لیے مندرجہ ذیل نحو استعمال کیا جاتا ہے ، | _+_ |

مندرجہ بالا نحو میں ، فائل ایک ڈیٹا ڈھانچہ ہے جو معیاری لائبریری میں بیان کیا گیا ہے۔

fopen ایک معیاری فنکشن ہے جو فائل کھولنے کے لیے استعمال ہوتا ہے۔

  • اگر فائل سسٹم پر موجود نہیں ہے ، تو اسے بنایا جاتا ہے اور پھر کھولا جاتا ہے۔
  • اگر فائل پہلے ہی سسٹم پر موجود ہے ، تو اس فنکشن کا استعمال کرتے ہوئے اسے براہ راست کھولا جاتا ہے۔

fp ایک فائل پوائنٹر ہے جو ٹائپ فائل کی طرف اشارہ کرتا ہے۔

جب بھی آپ فائل کھولتے یا بناتے ہیں ، آپ کو یہ بتانا ہوگا کہ آپ فائل کے ساتھ کیا کرنے جا رہے ہیں۔ 'سی' پروگرامنگ میں ایک فائل بنائی جا سکتی ہے یا پڑھنے/لکھنے کے مقاصد کے لیے کھولی جا سکتی ہے۔ ایک وضع یہ بتانے کے لیے استعمال کی جاتی ہے کہ آیا آپ مندرجہ ذیل مقاصد میں سے کسی کے لیے فائل کھولنا چاہتے ہیں۔ ذیل میں 'C' پروگرامنگ میں مختلف اقسام کے موڈ ہیں جو کہ فائل کے ساتھ کام کرتے وقت استعمال کیے جا سکتے ہیں۔

فائل موڈ۔ تفصیل
rپڑھنے کے لیے ایک فائل کھولیں۔ اگر کوئی فائل پڑھنے کے موڈ میں ہے ، تو کوئی ڈیٹا حذف نہیں ہوتا ہے اگر فائل پہلے ہی سسٹم پر موجود ہو۔
میںلکھنے کے لیے ایک فائل کھولیں۔ اگر کوئی فائل لکھنے کے موڈ میں ہے ، تو اگر کوئی فائل موجود نہیں ہے تو ایک نئی فائل بنائی جاتی ہے۔ اگر فائل پہلے ہی کسی سسٹم پر موجود ہے تو فائل کے اندر موجود تمام ڈیٹا کو کاٹ دیا جاتا ہے اور اسے لکھنے کے لیے کھول دیا جاتا ہے۔
کو اپینڈ موڈ میں فائل کھولیں۔ اگر کوئی فائل اپینڈ موڈ میں ہے تو پھر فائل کھل جاتی ہے۔ فائل میں موجود مواد تبدیل نہیں ہوتا۔
r+ شروع سے پڑھنے اور لکھنے کے لیے کھلا۔
+ میںپڑھنے اور لکھنے کے لیے کھولیں ، ایک فائل کو اوور رائٹ کریں۔
a +پڑھنے اور لکھنے کے لیے کھولیں ، فائل میں شامل کریں۔

دیئے گئے نحو میں ، فائل کا نام اور موڈ کو ڈور کے طور پر متعین کیا گیا ہے لہذا انہیں ہمیشہ ڈبل کوٹس کے اندر بند ہونا چاہیے۔

مثال: | _+_ |

آؤٹ پٹ:

فائل اسی فولڈر میں بنائی گئی ہے جہاں آپ نے اپنا کوڈ محفوظ کیا ہے۔

آپ اس راستے کی وضاحت کرسکتے ہیں جہاں آپ اپنی فائل بنانا چاہتے ہیں | _+_ |

فائل کو بند کرنے کا طریقہ

جب بھی فائل پر آپریشن ختم ہوجائے تو کسی کو ہمیشہ فائل بند کرنی چاہیے۔ اس کا مطلب ہے کہ فائل کے مندرجات اور لنکس ختم ہو گئے ہیں۔ یہ فائل کو حادثاتی نقصان سے بچاتا ہے۔

'C' فائل بند کرنے کا آپریشن کرنے کے لیے fclose فنکشن مہیا کرتا ہے۔ fclose کا نحو اس طرح ہے ، | _+_ |

مثال: | _+_ |

fclose فنکشن فائل پوائنٹر کو بطور دلیل لیتا ہے۔ فائل پوائنٹر سے وابستہ فائل پھر fclose فنکشن کی مدد سے بند کر دی جاتی ہے۔ اگر 0 بند ہوتا ہے تو یہ 0 لوٹتا ہے اور EOF (فائل کا اختتام) اگر فائل بند ہونے کے دوران کوئی خرابی واقع ہوئی ہے۔

فائل کو بند کرنے کے بعد ، وہی فائل پوائنٹر دوسری فائلوں کے ساتھ بھی استعمال کیا جا سکتا ہے۔

'سی' پروگرامنگ میں ، پروگرام ختم ہونے پر فائلیں خود بخود بند ہوجاتی ہیں۔ fclose فنکشن لکھ کر فائل کو دستی طور پر بند کرنا ایک اچھی پروگرامنگ پریکٹس ہے۔

ایک فائل پر لکھنا

C میں ، جب آپ کسی فائل کو لکھتے ہیں تو ، نئی لائن کے حروف ' n' کو واضح طور پر شامل کرنا ضروری ہے۔

stdio لائبریری فائل کو لکھنے کے لیے ضروری افعال پیش کرتی ہے۔

  • fputc (char ، file_pointer) : یہ فائل میں ایک کردار لکھتا ہے جس کی طرف اشارہ file_pointer کرتا ہے۔
  • fputs (str ، file_pointer) : یہ فائل کی طرف اشارہ کرنے والی فائل پر ایک تار لکھتا ہے۔
  • fprintf (file_pointer ، str ، variable_lists) : یہ فائل پر ایک سٹرنگ پرنٹ کرتا ہے جس کی طرف اشارہ file_pointer کرتا ہے۔ سٹرنگ اختیاری طور پر فارمیٹ کی تفصیلات اور متغیر متغیرات کی فہرست شامل کر سکتی ہے۔

مندرجہ ذیل پروگرام سے پتہ چلتا ہے کہ فائل پر لکھنا کیسے انجام دیا جائے:

fputc () فنکشن:

FILE *fp; fp = fopen ('file_name', 'mode'); 

آؤٹ پٹ:

مذکورہ پروگرام میں ایک ہی حرف لکھتا ہے۔ fputc_test.txt فائل جب تک کہ اگلی لائن کی علامت ' n' تک نہ پہنچ جائے جو اشارہ کرتا ہے کہ جملے کو کامیابی کے ساتھ لکھا گیا تھا۔ عمل یہ ہے کہ صف کے ہر حرف کو لے کر اسے فائل میں لکھیں۔

  1. مذکورہ پروگرام میں ، ہم نے fputc_test.txt نامی فائل کو لکھنے کے موڈ میں بنایا اور کھولا ہے اور اپنی سٹرنگ کا اعلان کیا ہے جو کہ فائل میں لکھی جائے گی۔
  2. ہم لوپ کا استعمال کرتے ہوئے کیریکٹر رائٹنگ آپریشن کرتے ہیں اور ہر ایک کیریکٹر کو اپنی فائل میں ڈالتے ہیں جب تک کہ ' n' کیریکٹر سامنے نہ آئے تب فائل fclose فنکشن کا استعمال کرتے ہوئے بند ہوجاتی ہے۔

fputs () فنکشن:

#include int main() { FILE *fp; fp = fopen ('data.txt', 'w'); } 

آؤٹ پٹ:

  1. مذکورہ پروگرام میں ، ہم نے fputs_test.txt نامی فائل کو لکھنے کے موڈ میں بنایا اور کھولا ہے۔
  2. جب ہم تین مختلف ڈور لکھ کر fputs () فنکشن کا استعمال کرتے ہوئے رائٹ آپریشن کرتے ہیں۔
  3. پھر فائل fclose فنکشن کا استعمال کرتے ہوئے بند ہے۔

fprintf () فنکشن:

#include int main() { FILE *fp; fp = fopen ('D://data.txt', 'w'); }

آؤٹ پٹ:

  1. مذکورہ پروگرام میں ہم نے fprintf_test.txt نامی ایک فائل بنائی ہے اور اسے لکھنے کے موڈ میں کھولا ہے۔
  2. اسٹرنگ لکھ کر fprintf () فنکشن کا استعمال کرتے ہوئے رائٹ آپریشن کیا جاتا ہے ، پھر فائل fclose فنکشن کا استعمال کرتے ہوئے بند ہوجاتی ہے۔

فائل سے ڈیٹا پڑھنا۔

فائل سے ڈیٹا پڑھنے کے لیے تین مختلف افعال ہیں۔

  • fgetc (file_pointer): یہ فائل کی طرف سے اشارہ کردہ فائل سے اگلے کردار کو لوٹاتا ہے۔ جب فائل کا اختتام ہو گیا ہے ، EOF واپس بھیج دیا گیا ہے۔
  • fgets (بفر ، این ، فائل_پوائنٹر): یہ فائل سے n-1 حروف پڑھتا ہے اور تار کو ایک بفر میں محفوظ کرتا ہے جس میں NULL حرف ' 0' کو آخری حرف کے طور پر شامل کیا جاتا ہے۔
  • fscanf (file_pointer ، convert_specifiers ، variable_adresses) : یہ ڈیٹا کی تجزیہ اور تجزیہ کے لیے استعمال ہوتا ہے۔ یہ فائل سے حروف پڑھتا ہے اور ان پٹ کو متغیر پوائنٹرز کی فہرست میں تبدیل کرتا ہے۔ ذہن میں رکھو کہ اسکینف کی طرح ، جب اسپیس یا نئی لائن کا سامنا ہوتا ہے تو fscanf ایک سٹرنگ پڑھنا بند کر دیتا ہے۔

مندرجہ ذیل پروگرام fputs_test.txt فائل سے fgets () ، fscanf () اور fgetc () افعال کا استعمال کرتے ہوئے پڑھنے کو ظاہر کرتا ہے: | _+_ |

نتیجہ:

fclose (file_pointer); 

  1. مذکورہ پروگرام میں ، ہم نے 'fprintf_test.txt' نامی فائل کھولی ہے جو کہ پہلے fprintf () فنکشن کا استعمال کرتے ہوئے لکھی گئی تھی ، اور اس میں 'Lear99 C with Guru99' سٹرنگ ہے۔ ہم اسے fgets () فنکشن کا استعمال کرتے ہوئے پڑھتے ہیں جو کہ لائن کے حساب سے پڑھتا ہے جہاں پوری لائن کو سنبھالنے کے لیے بفر کا سائز کافی ہونا چاہیے۔
  2. ہم فائل کو دوبارہ کھولتے ہیں تاکہ فائل کے آغاز میں پوائنٹر فائل کو ری سیٹ کریں۔ ہر لفظ کو الگ سے سنبھالنے کے لیے مختلف سٹرنگ متغیرات بنائیں۔ ان کے مندرجات کو دیکھنے کے لیے متغیرات کو پرنٹ کریں۔ fscanf () بنیادی طور پر کسی فائل سے ڈیٹا نکالنے اور تجزیہ کرنے کے لیے استعمال ہوتا ہے۔
  3. فائل کے آغاز پر پوائنٹر فائل کو دوبارہ ترتیب دینے کے لیے فائل کو دوبارہ کھولیں۔ ڈیٹا پڑھیں اور فائل کے کیریکٹر سے getc () فنکشن کا استعمال کرتے ہوئے اسے پرنٹ کریں یہاں تک کہ EOF بیان سامنے آئے۔
  4. مختلف قسموں کا استعمال کرتے ہوئے ریڈنگ آپریشن فائل انجام دینے کے بعد ، ہم نے fclose فنکشن کا استعمال کرتے ہوئے فائل کو دوبارہ بند کر دیا۔

انٹرایکٹو فائل getc اور putc کے ساتھ پڑھیں اور لکھیں۔

یہ سب سے آسان فائل آپریشن ہیں۔ Getc کا مطلب ہے get character ، اور putc کا مطلب ہے put character۔ یہ دونوں افعال ایک وقت میں صرف ایک حرف کو سنبھالنے کے لیے استعمال ہوتے ہیں۔

مندرجہ ذیل پروگرام 'C' پروگرامنگ میں فائل ہینڈلنگ افعال کو ظاہر کرتا ہے: | _+_ |

آؤٹ پٹ:

  1. مذکورہ پروگرام میں ہم نے ڈیمو نامی فائل کو رائٹ موڈ میں بنایا اور کھولا ہے۔
  2. ایک تحریری آپریشن انجام دینے کے بعد ، پھر فائل fclose فنکشن کا استعمال کرتے ہوئے بند کردی جاتی ہے۔
  3. ہم نے دوبارہ ایک فائل کھولی ہے جس میں اب ڈیٹا پڑھنے کے موڈ میں ہے۔ تھوڑی دیر تک لوپ عمل میں آئے گا جب تک کہ ای او ایف نہ مل جائے۔ ایک بار جب فائل کا اختتام پایا جاتا ہے تو آپریشن ختم ہوجائے گا اور پرنٹف فنکشن کا استعمال کرتے ہوئے ڈیٹا ڈسپلے کیا جائے گا۔
  4. ریڈنگ آپریشن کرنے کے بعد ایف سیلوز فنکشن کا استعمال کرتے ہوئے فائل دوبارہ بند ہو جاتی ہے۔

خلاصہ

  • فائل میموری میں ایک جگہ ہے جہاں ڈیٹا محفوظ ہوتا ہے۔
  • 'سی' پروگرامنگ ایک فائل سے نمٹنے کے لیے مختلف افعال مہیا کرتی ہے۔
  • فائلوں کے ساتھ ہیرا پھیری کے طریقہ کار کو فائل مینجمنٹ کہا جاتا ہے۔
  • فائل پر آپریشن کرنے سے پہلے اسے کھولنا ضروری ہے۔
  • فائل کو پڑھنے ، لکھنے یا اپینڈ موڈ میں کھولا جا سکتا ہے۔
  • Getc اور putc افعال کسی ایک حرف کو پڑھنے اور لکھنے کے لیے استعمال ہوتے ہیں۔
  • فنکشن fscanf () فائل سے ڈیٹا پڑھنے اور تجزیہ کرنے کی اجازت دیتا ہے۔
  • ہم پڑھ سکتے ہیں (استعمال کرتے ہوئے۔ getc فنکشن) ایک پوری فائل کو لوپ کرکے تمام فائل کو ڈھانپنے کے لیے جب تک EOF کا سامنا نہ ہو۔
  • ہم فنکشن کا استعمال کرکے فائل کا نام بنانے کے بعد اسے لکھ سکتے ہیں۔ fprintf () اور اس میں سٹرنگ ٹیکسٹ کے آخر میں نیو لائن کریکٹر ہونا ضروری ہے۔