Fortran में **File Handling** का उपयोग डेटा को इनपुट और आउटपुट फाइल्स से पढ़ने और लिखने के लिए किया जाता है। यह विशेष रूप से तब उपयोगी होता है जब आपको बड़े डेटा सेट्स के साथ काम करना हो या अपने प्रोग्राम के आउटपुट को एक फाइल में सहेजना हो। इस अध्याय में, हम सीखेंगे कि Fortran में फाइल्स को कैसे खोलना, पढ़ना, लिखना, और बंद करना है। इसके साथ ही, हम फाइल हैंडलिंग के विभिन्न तरीकों और Error Handling पर भी चर्चा करेंगे।
File Operations
Fortran में File Operations का उपयोग फाइलों से डेटा पढ़ने (reading), फाइलों में डेटा लिखने (writing), और फाइलों को खोलने (opening) और बंद (closing) करने के लिए किया जाता है। यह विशेष रूप से उपयोगी होता है जब आपको प्रोग्राम का इनपुट या आउटपुट फाइलों से लेना या देना हो। इस सेक्शन में, हम फाइल को खोलने, पढ़ने, लिखने, और बंद करने की प्रक्रिया पर चर्चा करेंगे।
1. Files को Open कैसे करें:
Fortran में फाइल को खोलने के लिए open स्टेटमेंट का उपयोग किया जाता है। open स्टेटमेंट के साथ फाइल नंबर (unit number) का उपयोग किया जाता है, जो फाइल को पहचाने का तरीका होता है।
Syntax:
open(unit=unit_number, file='file_name', status='file_status')
- unit_number: एक integer जो फाइल को पहचानने के लिए उपयोग किया जाता है।
- file_name: फाइल का नाम (जिसे खोला जाना है)।
- file_status: यह दर्शाता है कि फाइल पहले से मौजूद है या नहीं। (e.g., ‘old’, ‘new’, ‘replace’)।
उदाहरण:
open(unit=10, file='input_data.txt', status='old')
यह उदाहरण input_data.txt नाम की फाइल को खोलता है, और यह मानता है कि फाइल पहले से मौजूद है (‘old’)। फाइल को पहचानने के लिए unit=10 का उपयोग किया गया है।
2. Files से डेटा कैसे पढ़ें (Read):
फाइल से डेटा पढ़ने के लिए Fortran में read स्टेटमेंट का उपयोग किया जाता है। आप फाइल से डेटा पढ़कर उसे वेरिएबल्स में स्टोर कर सकते हैं।
Syntax:
read(unit=unit_number, *) variable_list
- unit_number: फाइल के लिए उपयोग किया गया यूनिट नंबर।
- variable_list: वह वेरिएबल्स जहाँ पढ़ा गया डेटा स्टोर किया जाएगा।
उदाहरण:
program read_file_example
integer :: a, b
open(unit=10, file='input_data.txt', status='old')
! फाइल से डेटा पढ़ें
read(unit=10, *) a, b
print *, "a:", a, "b:", b
close(unit=10)
end program read_file_example
स्पष्टीकरण: यह प्रोग्राम input_data.txt से दो integer मान (a और b) पढ़ता है और उन्हें स्क्रीन पर प्रिंट करता है।
3. Files में डेटा कैसे लिखें (Write):
फाइल में डेटा लिखने के लिए write स्टेटमेंट का उपयोग किया जाता है। आप एक या अधिक वेरिएबल्स का डेटा फाइल में स्टोर कर सकते हैं।
Syntax:
write(unit=unit_number, *) variable_list
- unit_number: वह यूनिट नंबर जो फाइल से जुड़ा हुआ है।
- variable_list: वे वेरिएबल्स जिनका डेटा फाइल में लिखा जाएगा।
उदाहरण:
program write_file_example
integer :: a, b
a = 5
b = 10
open(unit=20, file='output_data.txt', status='new')
! फाइल में डेटा लिखें
write(unit=20, *) a, b
close(unit=20)
end program write_file_example
स्पष्टीकरण: इस प्रोग्राम में, a और b के मान output_data.txt में लिखे जाते हैं। अगर फाइल पहले से मौजूद नहीं है, तो status='new' के कारण एक नई फाइल बनाई जाएगी।
4. Files को Close कैसे करें:
फाइल को बंद करने के लिए close स्टेटमेंट का उपयोग किया जाता है। यह स्टेटमेंट फाइल को सही तरीके से बंद करता है और यूनिट नंबर को मुक्त करता है।
Syntax:
close(unit=unit_number)
- unit_number: वह यूनिट नंबर जो फाइल के लिए उपयोग किया गया है।
उदाहरण:
close(unit=10)
यह फाइल को बंद करता है जो यूनिट नंबर 10 से जुड़ी हुई थी।
5. फाइल हैंडलिंग का एक पूर्ण उदाहरण:
program file_handling_example
integer :: a, b
! Open input file to read data
open(unit=10, file='input_data.txt', status='old')
! Read data from file
read(unit=10, *) a, b
print *, "पढ़ा गया डेटा: a =", a, "b =", b
! Close the input file
close(unit=10)
! Open output file to write data
open(unit=20, file='output_data.txt', status='replace')
! Write data to the file
write(unit=20, *) a, b
! Close the output file
close(unit=20)
end program file_handling_example
स्पष्टीकरण: इस प्रोग्राम में:
- सबसे पहले,
input_data.txtसे डेटा पढ़ा जाता है और स्क्रीन पर प्रिंट किया जाता है। - फिर, उसी डेटा को
output_data.txtमें लिखा जाता है। - फाइल्स को खोलने, पढ़ने, लिखने, और बंद करने की सभी प्रक्रियाएँ इस उदाहरण में दिखाई गई हैं।
Error Handling
Fortran में Error Handling का उपयोग उन समस्याओं को पहचानने और संभालने के लिए किया जाता है जो फाइल ऑपरेशन्स या अन्य प्रक्रियाओं के दौरान उत्पन्न हो सकती हैं। Error Handling का सही ढंग से उपयोग प्रोग्राम को अधिक सुरक्षित और विश्वसनीय बनाता है, क्योंकि यह सुनिश्चित करता है कि जब कोई गलती हो, तो प्रोग्राम दुर्घटनाग्रस्त न हो और उसे सही तरीके से संभाला जाए।
Error Handling के लिए IOSTAT और ERR Keyword:
Fortran में फाइल हैंडलिंग के दौरान त्रुटियों (errors) को पकड़ने के लिए IOSTAT और ERR कीवर्ड का उपयोग किया जाता है। ये कीवर्ड आपको त्रुटियों को संभालने और उनके अनुसार कार्रवाई करने की अनुमति देते हैं।
- IOSTAT: यह कीवर्ड किसी त्रुटि की स्थिति को ट्रैक करता है। अगर कोई त्रुटि होती है, तो IOSTAT वेरिएबल एक गैर-शून्य मान (non-zero value) लौटाता है।
- ERR: यह कीवर्ड एक त्रुटि होने पर प्रोग्राम को एक विशिष्ट लेबल (label) पर भेजता है, जहाँ आप त्रुटियों को संभाल सकते हैं।
1. IOSTAT का उपयोग:
IOSTAT का उपयोग करके आप यह पता लगा सकते हैं कि कोई फाइल ऑपरेशन सफल रहा या उसमें कोई त्रुटि हुई है।
उदाहरण:
program iostat_example
integer :: a, b, io_status
! फाइल खोलते समय त्रुटि की जाँच
open(unit=10, file='input_data.txt', status='old', iostat=io_status)
if (io_status /= 0) then
print *, "Error: फाइल नहीं खुल सकी।"
else
read(unit=10, *) a, b
print *, "a:", a, "b:", b
close(unit=10)
end if
end program iostat_example
स्पष्टीकरण:
iostat=io_statusका उपयोग करते हुए, हम यह जाँचते हैं कि फाइल खोलने में कोई त्रुटि हुई या नहीं।- यदि
io_status0 के अलावा कुछ और लौटाता है, तो एक त्रुटि संदेश प्रिंट किया जाता है।
2. ERR का उपयोग:
ERR कीवर्ड का उपयोग करके आप त्रुटि होने पर प्रोग्राम को किसी विशेष लेबल (label) पर भेज सकते हैं, जहाँ आप त्रुटियों को संभाल सकते हैं।
उदाहरण:
program err_example
integer :: a, b
! फाइल खोलते समय त्रुटि को संभालने के लिए ERR का उपयोग
open(unit=10, file='input_data.txt', status='old', err=100)
read(unit=10, *) a, b
print *, "a:", a, "b:", b
close(unit=10)
! Error label
goto 200
100 print *, "Error: फाइल नहीं खुल सकी।"
stop
200 continue
end program err_example
स्पष्टीकरण:
- यदि फाइल को खोलने में कोई त्रुटि होती है, तो प्रोग्राम लेबल
100पर जाता है और त्रुटि संदेश प्रिंट करता है। ERRकीवर्ड प्रोग्राम को एक सुरक्षित तरीके से त्रुटि को संभालने की अनुमति देता है।
3. IOMSG का उपयोग:
IOMSG कीवर्ड का उपयोग त्रुटि के बारे में एक संदेश प्राप्त करने के लिए किया जाता है। यह उपयोगी होता है जब आपको यह समझना हो कि त्रुटि किस कारण से हुई।
Syntax:
open(unit=unit_number, file='file_name', iostat=io_status, iomsg=error_message)
- iomsg: इसमें त्रुटि का वर्णन करने वाला एक संदेश स्टोर होता है।
उदाहरण:
program iomsg_example
integer :: io_status
character(len=100) :: error_message
open(unit=10, file='missing_file.txt', status='old', iostat=io_status, iomsg=error_message)
if (io_status /= 0) then
print *, "Error:", trim(error_message)
else
print *, "फाइल सफलतापूर्वक खुल गई।"
close(unit=10)
end if
end program iomsg_example
स्पष्टीकरण:
- यदि फाइल नहीं खुलती, तो
iomsgमें एक त्रुटि संदेश स्टोर होता है, जिसे प्रिंट किया जाता है।
4. फाइल की स्थिति की जाँच करना (INQUIRE Statement):
Fortran में आप INQUIRE स्टेटमेंट का उपयोग करके यह जाँच सकते हैं कि कोई फाइल मौजूद है या नहीं, और उसकी विशेषताएँ क्या हैं।
Syntax:
inquire(file='file_name', exist=file_exists)
- file_exists: यह वेरिएबल
.true.या.false.का मान देता है, जिससे यह पता चलता है कि फाइल मौजूद है या नहीं।
उदाहरण:
program inquire_example
logical :: file_exists
inquire(file='input_data.txt', exist=file_exists)
if (file_exists) then
print *, "फाइल मौजूद है।"
else
print *, "Error: फाइल मौजूद नहीं है।"
end if
end program inquire_example
स्पष्टीकरण: इस प्रोग्राम में, inquire स्टेटमेंट का उपयोग करके यह जाँच की जाती है कि input_data.txt नाम की फाइल मौजूद है या नहीं। अगर फाइल नहीं है, तो एक त्रुटि संदेश प्रिंट किया जाता है।
