यूफोरिया - फ़ाइलें I / O

यूफोरिया प्रोग्रामिंग भाषा का उपयोग करके, आप ऐसे प्रोग्राम लिख सकते हैं जो आपके फ्लॉपी ड्राइव या हार्ड ड्राइव पर फ़ाइल डेटा को पढ़ते हैं और बदलते हैं, या आउटपुट के रूप में नई फाइलें बनाते हैं। आप अपने कंप्यूटर पर प्रिंटर और मॉडेम जैसे उपकरणों का उपयोग कर सकते हैं।

इस अध्याय में यूफोरिया में उपलब्ध सभी बुनियादी I / O कार्यों का वर्णन किया गया है। अधिक कार्यों की जानकारी के लिए, कृपया मानक यूफोरिया प्रलेखन देखें।

स्क्रीन पर प्रदर्शित करना

आउटपुट उत्पन्न करने का सबसे सरल तरीका पुट () स्टेटमेंट का उपयोग करना है जहां आप स्क्रीन पर प्रदर्शित होने के लिए किसी भी स्ट्रिंग को पास कर सकते हैं। एक अन्य विधि प्रिंटफ () है, जिसका उपयोग उस स्थिति में भी किया जा सकता है जब आपको गतिशील मानों का उपयोग करके स्ट्रिंग को प्रारूपित करना होगा।

ये विधियाँ उन भावों को परिवर्तित करती हैं जिन्हें आप उन्हें एक स्ट्रिंग में बदल देते हैं और परिणाम को मानक आउटपुट पर लिखते हैं -

#!/home/euphoria-4.0b2/bin/eui
 
puts(1, "Euphoria is really a great language, isn't it?" )

यह आपके मानक स्क्रीन पर निम्न परिणाम उत्पन्न करता है -

Euphoria is really a great language, isn't it?

फ़ाइलें खोलना और बंद करना

यूफोरिया मूलभूत रूप से फाइलों को मैनिपुलेट करने के लिए आवश्यक बुनियादी तरीके प्रदान करता है। आप निम्न विधियों का उपयोग करके अपनी अधिकांश फ़ाइल हेरफेर कर सकते हैं -

  • open()
  • close()
  • printf()
  • gets()
  • getc()

खुला विधि

किसी फ़ाइल को पढ़ने या लिखने से पहले, आपको इसे यूफोरिया की अंतर्निहित खुली () विधि का उपयोग करके खोलना होगा । यह फ़ंक्शन एक फाइल डिस्क्रिप्टर बनाता है जो इसके साथ जुड़े अन्य सहायक तरीकों को कॉल करने के लिए उपयोग किया जाता है।

वाक्य - विन्यास

integer file_num = open(file_name, access_mode)

उपरोक्त विधि -1 -1 यदि दिए गए फ़ाइल नाम को खोलने में कोई त्रुटि है। यहाँ पैरामीटर हैं -

  • file_name - file_name तर्क एक स्ट्रिंग मान है जिसमें उस फ़ाइल का नाम है जिसे आप एक्सेस करना चाहते हैं।

  • access_mode- access_mode उस मोड को निर्धारित करता है जिसमें फ़ाइल को खोलना है। उदाहरण के लिए, एपेंड को पढ़ें, लिखें, आदि। फ़ाइल खोलने के तरीकों के संभावित मूल्यों की पूरी सूची निम्न तालिका में दी गई है -

S.No मोड और विवरण
1

r

केवल पढ़ने के लिए एक पाठ फ़ाइल खोलता है। फ़ाइल पॉइंटर को फ़ाइल की शुरुआत में रखा जाता है।

2

rb

केवल बाइनरी प्रारूप में पढ़ने के लिए एक फ़ाइल खोलता है। फ़ाइल पॉइंटर को फ़ाइल की शुरुआत में रखा जाता है।

3

w

केवल लिखने के लिए एक पाठ फ़ाइल खोलता है। यदि फ़ाइल मौजूद है, तो फ़ाइल को ओवरराइट करता है। यदि फ़ाइल मौजूद नहीं है, तो लिखने के लिए एक नई फ़ाइल बनाता है।

4

wb

केवल बाइनरी प्रारूप में लिखने के लिए एक फ़ाइल खोलता है। यदि फ़ाइल मौजूद है, तो फ़ाइल को ओवरराइट करता है। यदि फ़ाइल मौजूद नहीं है, तो लिखने के लिए एक नई फ़ाइल बनाता है।

5

u

पढ़ने और लिखने दोनों के लिए एक फाइल खोलता है। फ़ाइल पॉइंटर फ़ाइल की शुरुआत में सेट किया गया है।

6

ub

द्विआधारी प्रारूप में पढ़ने और लिखने दोनों के लिए एक फ़ाइल खोलता है। फ़ाइल पॉइंटर को फ़ाइल की शुरुआत में रखा जाता है।

7

a

अपील करने के लिए एक फ़ाइल खोलता है। यदि फ़ाइल मौजूद है तो फ़ाइल पॉइंटर फ़ाइल के अंत में है (एपेंड मोड)। यदि फ़ाइल मौजूद नहीं है, तो यह लिखने के लिए एक नई फ़ाइल बनाता है।

8

ab

द्विआधारी प्रारूप में संलग्न करने के लिए एक फ़ाइल खोलता है। यदि फ़ाइल मौजूद है तो फ़ाइल पॉइंटर फ़ाइल के अंत में है (एपेंड मोड)। यदि फ़ाइल मौजूद नहीं है, तो यह लिखने के लिए एक नई फ़ाइल बनाता है।

उदाहरण

निम्न उदाहरण आपके लिनक्स सिस्टम पर वर्तमान निर्देशिका में एक नई पाठ फ़ाइल बनाता है -

#!/home/euphoria-4.0b2/bin/eui

integer file_num
constant ERROR = 2
constant STDOUT = 1

file_num = open("myfile,txt", "w")

if file_num = -1 then
   puts(ERROR, "couldn't open myfile\n")
else
   puts(STDOUT, "File opend successfully\n")
end if

यदि फ़ाइल सफलतापूर्वक खुलती है, तो यह "myfile.txt" आपकी वर्तमान निर्देशिका में बनाई गई है और निम्नलिखित परिणाम उत्पन्न करती है -

File opend successfully

करीब () विधि

क्लोज़ () विधि किसी भी अलिखित जानकारी को फ्लश करती है और फ़ाइल को बंद कर देती है, जिसके बाद फ़ाइल पर अधिक पढ़ना या लिखना नहीं किया जा सकता है।

यूफोरिया स्वचालित रूप से एक फ़ाइल को बंद कर देता है जब किसी फ़ाइल का संदर्भ ऑब्जेक्ट किसी अन्य फ़ाइल को पुन: असाइन किया जाता है। किसी फ़ाइल को बंद करने के लिए क्लोज़ () पद्धति का उपयोग करना एक अच्छा अभ्यास है।

वाक्य - विन्यास

close( file_num );

यहां फ़ाइल खोलने के दौरान प्राप्त फ़ाइल डिस्क्रिप्टर को एक पैरामीटर के रूप में पारित किया जाता है।

उदाहरण

निम्न उदाहरण ऊपर के रूप में एक फ़ाइल बनाता है और फिर इसे मौजूदा प्रोग्राम से पहले बंद कर देता है -

#!/home/euphoria-4.0b2/bin/eui

integer file_num
constant ERROR = 2
constant STDOUT = 1

file_num = open("myfile.txt", "w")

if file_num = -1 then
   puts(ERROR, "couldn't open myfile\n")
else
   puts(STDOUT, "File opend successfully\n")
end if

if file_num = -1 then
   puts(ERROR, "No need to close the file\n")
else
   close( file_num )
   puts(STDOUT, "File closed successfully\n")
end if

यह निम्न परिणाम उत्पन्न करता है -

File opend successfully
File closed successfully

फाइल पढ़ना और लिखना

पाठ मोड या बाइनरी मोड में फ़ाइल पढ़ते या लिखते समय हमारे जीवन को आसान बनाने के लिए यूफ़ोरिया एक्सेस विधियों का एक सेट प्रदान करता है। आइए देखते हैं कि फाइल को पढ़ने और लिखने के लिए प्रिंटफ () और हो जाता है () तरीकों का उपयोग कैसे करें।

Printf () विधि

Printf () विधि एक खुली फाइल करने के लिए किसी भी स्ट्रिंग लिखता है।

वाक्य - विन्यास

printf(fn, st, x)

यहाँ पैरामीटर हैं -

  • fn - फाइल डिस्क्रिप्टर ओपन () विधि से प्राप्त होता है।

  • st - प्रारूप स्ट्रिंग जहां दशमलव या परमाणु को% d का उपयोग करके स्वरूपित किया जाता है और स्ट्रिंग या अनुक्रम को% s का उपयोग करके स्वरूपित किया जाता है।

  • x- यदि x एक अनुक्रम है, तो सेंट से प्रारूप विनिर्देशक x के संगत तत्वों के साथ मेल खाते हैं। यदि x एक परमाणु है, तो आमतौर पर सेंट में केवल एक प्रारूप निर्दिष्ट होता है और इसे x पर लागू किया जाता है। तथापि; यदि सेंट में कई प्रारूप विनिर्देशक हैं, तो प्रत्येक को एक ही मान x पर लागू किया जाता है।

उदाहरण

निम्न उदाहरण एक फ़ाइल खोलता है और इस फ़ाइल में किसी व्यक्ति का नाम और आयु लिखता है -

#!/home/euphoria-4.0b2/bin/eui

integer file_num
constant ERROR = 2
constant STDOUT = 1

file_num = open("myfile.txt", "w")

if file_num = -1 then
   puts(ERROR, "couldn't open myfile\n")
else
   puts(STDOUT, "File opend successfully\n")
end if

printf(file_num, "My name is %s and age is %d\n", {"Zara", 8})

if file_num = -1 then
   puts(ERROR, "No need to close the file\n")
else
   close( file_num )
   puts(STDOUT, "File closed successfully\n")
end if

उपरोक्त उदाहरण myfile.txt फ़ाइल बनाता है । उस फ़ाइल में दी गई सामग्री लिखता है और अंत में बंद हो जाता है। यदि आप इस फ़ाइल को खोलते हैं, तो इसमें निम्न सामग्री होगी -

My name is Zara and age is 8

हो जाता है () विधि

हो जाता है () विधि एक खुली फ़ाइल से एक स्ट्रिंग पढ़ता है।

वाक्य - विन्यास

gets(file_num)

यहां दिया गया पैरामीटर ओपेंड () विधि द्वारा फाइल विवरण रिटर्न है । यह विधि फ़ाइल लाइन की शुरुआत से लाइन द्वारा पढ़ना शुरू कर देती है। वर्णों का मान 0 से 255 तक है। परमाणु -1 को फ़ाइल के अंत में लौटा दिया जाता है।

उदाहरण

चलिए एक फाइल myfile.txt लेते हैं जो पहले से बनी है।

#!/home/euphoria-4.0b2/bin/eui

integer file_num
object line

constant ERROR = 2
constant STDOUT = 1

file_num = open("myfile.txt", "r")
if file_num = -1 then
   puts(ERROR, "couldn't open myfile\n")
else
   puts(STDOUT, "File opend successfully\n")
end if

line = gets(file_num)
printf( STDOUT, "Read content : %s\n", {line})

if file_num = -1 then
   puts(ERROR, "No need to close the file\n")
else
   close( file_num )
   puts(STDOUT, "File closed successfully\n")
end if

यह निम्न परिणाम उत्पन्न करता है -

File opend successfully
Read content : My name is Zara and age is 8

File closed successfully

यूफोरिया कई तरीकों की एक सूची प्रदान करता है जो आपको फाइलों में हेरफेर करने में मदद करता है। इन विधियों को यूफोरिया लाइब्रेरी रूटीन में सूचीबद्ध किया गया है ।