Read Write File in C: पिछले Post में हमने C Language Code द्वारा एक नई Operating System Based File Open करने के विषय में विस्तार से जाना। इस Post में हम File में Data लिखने के लिए एक साधारण सा Program बना रहे हैं, जिसमें हम एक data.nam नाम की File को Writing Mode में Open करेंगे और इसमें एक नाम Store करेंगे। Program निम्नानुसार है:
// Program #include<stdio.h> main() { FILE *fp; char ch; clrscr(); printf("\n Input Name :"); fp = fopen("Data.nam", "w" ); while((ch = getc (stdin)) != EOF ) putc (ch, fp); fclose (fp); }
आइये पहले इस Program में Use हुए Functions को समझें। इस प्रोग्राम में दो नए Functions को Use किया गया है, जो कि निम्नानुसार हैं:
Read Write File in C – getc() Function
यह Function किसी Stream से Input प्राप्त करने का काम करता है। ये Stream FILE Pointer या फिर stdin (Keyboard) ही हो सकता है। इसका Syntax निम्नानुसार होता है:
ch = getc( FILE pointer or Stream );
Read Write File in C – putc() Function
यह Function getc() Function से प्राप्त characters को किसी FILE pointer द्वारा] किसी File में Store करता है या किसी stream ( stdout or stdprn ) पर show करता है। इसका Syntax निम्नानुसार होता है:
putc( ch, FILE pointer or Stream );
इस प्रोग्राम में FILE प्रकार का एक Pointer Variable Declare किया गया है। पूरे Program में इसी Pointer द्वारा FILE Structure को Access किया जाता है। इस प्रोग्राम में हम एक-एक Character को stdin ( Key Board ) से Accept करते हैं।
हर Character को Accept करने के लिए हमने char प्रकार का ch नाम का एक Variable Define किया है। फिर हर character को क्रम से Accept करके उसे fp FILE Pointer द्वारा File में Write कर दिया गया हैं। जब इस Program को Execute किया जाता है, तो सभी Definition व Declaration के बाद Program Control printf() Function का निम्न Message Screen पर Print करता है।
“Input Name :”
ये Message Screen पर Print करने के बाद Program Control निम्न Statement को Execute करता है।
“fp = fopen(“Data.nam”, “w” );
fopen() Function, Data.nam नाम की एक File Writing Mode में Open करता है और fp Pointer को इस File के पहले Character का Address दे देता है। ये सवाल दिमाग में आ सकता है कि जब कोई नई File Create होती है, तब उसमें कुछ भी लिखा हुआ नहीं होता। उस समय fp कैसे File के प्रथम Character को Point कर सकता है।
इस सवाल का जवाब ये है कि किसी भी File में कुछ लिखा हो या ना लिखा हो, ये हमेंशा निश्चित होता है, कि यदि कोई Character लिखा जाएगा तो, File में वह सबसे पहला Character किस Location पर जा कर Store होगा।
File Pointer fp में उसी Location का Address Stored होता है ना कि File का पहला Character क्योंकि fp एक Pointer है और किसी भी Pointer में किसी अन्य Variable का Address ही Store हो सकता है। इस प्रकार से File Pointer में File के प्रथम Character के Store होने की Location का Address Stored होता है।
हम जानते हैं कि getc() Function द्वारा हम एक बार में केवल एक ही Character को Input कर सकते हैं लेकिन हमें तो तब तक Characters Input करने है जब तक कि EOF प्राप्त ना हो जाए।
इसलिए हमने एक while Loop का प्रयोग किया है। हमने Loop Chapter के अंतर्गत बताया था कि जब हमें ये पता नहीं होता है कि Loop को कितनी बार चलाना है, तब while Loop को Use करना अधिक अच्छा रहता है। इसीलिए यहां हमने while Loop द्वारा Characters Input करवाए हैं। आइये निम्न Statement को समझते हैं:
while((ch = getc (stdin)) != EOF )
इस Statement में ch = getc (stdin) Statement का Use किया गया है। ये Statement, Standard Input Device ( Key Board ) से एक character Accept करता है और उस Character को ch नाम के char प्रकार के Variable में Store कर देता है।
चूंकि while Loop तभी Terminate हो सकता है जब Program Control को EOF प्राप्त हो और Program Control को EOF तभी प्राप्त होगा जब User Key Board से ^z या Function Key F6 को Press करे। यदि User Key Board से ^z या Function Key F6 को Press नही करता है, तो while Loop की Condition सत्य होती है और Program Control while के Statement Block में प्रवेश करता है।
चूंकि यहां while Condition के सत्य होने पर केवल एक ही Statement को Execute करना है, इसलिए यहां Statement Block का प्रयोग नहीं किया गया है। जब while Condition सत्य होती है, तब Program Control निम्न Statement को Execute करता है:
putc (ch, fp);
putc() Function getc() Function से प्राप्त character, जो कि ch नाम के char प्रकार के Variable में Stored है, File pointer द्वारा File में Store कर देता है, साथ ही File Pointer fp को File की Next Location का Address प्रदान कर देता है, जिससे File Pointer fp File के दूसरे Character की Location को Point करने लगता है।
ये Statement Execute होने के बाद पुन: while Loop Execute होता है और keyboard से Character Accept करता है। putc() Function पुन: getc() Function से प्राप्त Character को File में Store कर देता है और File pointer fp को Next Location का Address प्रदान कर देता है। ये क्रम तब तक चलता रहता है जब तक कि User Key Board से Function Key F6 या ^z Press नही कर देता।
इस प्रकार से हम getc() व putc() Function द्वारा एक-एक characters को किसी File में Store कर सकते हैं। यदि हमें ये देखना हो कि हमारे द्वारा Create की गई Data.nam नाम की File Disc पर बनी या नहीं और यदि बनी तो उसमें Inputted Data Store हुए या नहीं, तो इसके लिए हम निम्नानुसार हमारी File के Data को देख सकते हैं:
- File को Dos Prompt पर Type या Edit Command के बाद Data File nam नाम देकर और
- एक और “C” Program बना कर जिसमें nam नाम की File को Reading Mode में Open करके
यहां हम दोनों तरीकों से File को Read करना बता रहे है। पहले तरीके में DOS Prompt पर जाने के लिए Turbo C के File menu में जाएं और वहां Dos Shell नाम का Option Choose करें। इस Option को Choose करते ही हम Temporarily Dos Prompt पर चले जाते हैं। यहां निम्न Command देकर File के Data को देखा जा सकता है:
C:\TC\BIN> Type Data.nam
इस Command से Data File में Stored सभी Data Screen पर Print हो जाते हैं।
अब हम दूसरे तरीके से Data File के Data को Read करते हैं। इस तरीके में एक Program लिखना होगा। उस प्रोग्राम में Data File को Reading Mode में Open करके] उसके Data को Character By Character Screen पर Print करना होगा। यानी जो काम हमने Data Input के लिए किया है ठीक उसका उल्टा अब हमें वापस Data प्राप्त करने के लिए करना होगा।
इसके लिए सर्वप्रथम हमें Data.nam नाम की Data File को Reading Mode में Open करना होगा। फिर उस File के प्रथम Character को Read करके उस Character को Screen पर Print करना होगा। फिर यही क्रम दूसरे character के साथ अपना कर उसे Screen पर Print करना होगा और ये क्रम तब तक अपनाना होगा, जब तक कि Program Control को EOF प्राप्त ना हो जाए। चलिए, अब हम इसी क्रम में Program लिखने की कोशिश करते हैं। …
Buy this eBook to read more about “Read Write File in C“
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
C Programming Language in Hindi | Page: 477 + 265 | Format: PDF