ruby - Variables magic and read from file -
मान लें, मुझे निम्न फ़ाइल मिली ( input.txt ):
नाम = "पीटर" उम्र = 26 परिवार_स्टैट = विवाहित
उल्लेख रेखाओं को यादृच्छिक क्रम में संग्रहीत किया जा सकता है:
family_status = मेरे कार्यक्रम में मेरे पास चर family_status , उम्र और नाम । मैं एक एकल चक्र में कैसे फ़ाइल से उन पंक्तियों को पढ़ सकता हूं और मूल्यों के साथ अक्षरों को आवंटित कर सकता हूं?
सेटिंग - आप किस प्रकार के चर (स्थानीय चर, उदाहरण चर, वर्ग चर, या वैश्विक चर) Li> किस प्रकार का प्रकार है परिवार_स्टैटस (
स्ट्रिंग,
प्रतीक
, जो भी हो)
मुझे लगता है कि आप इसके लिए उदाहरण चर का उपयोग कर रहे हैं:
<पूर्व> def read_vars (IO, vars) io.each do | लाइन | # सुनिश्चित करें कि रेखा में सही प्रारूप (नाम = var) है, "गलत स्वरूप" को तब तक बढ़ाएं जब तक कि लाइन = ~ /^\s* नहीं;) + \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ / Var =: "@ # {$ 1}" # डेटा मूल्य का प्रकार चुनें = केस वार्स [var] जब स्ट्रिंग $ 2 जब पूर्णांक $ 2.to_i जब प्रतीक $ 2.to_sym और "अवैध var" अंत उदाहरण _ varariable_set (var, value ) अंत अंत read_vars (file.read ("input.txt",: @age = & gt; पूर्णांक,: @name = & gt; स्ट्रिंग,: @family_status = & gt; प्रतीक)
यदि आप आवृत्ति चर का उपयोग नहीं कर रहे हैं तो आपको instacne_variable_set
और var =: "@ ...
को बदलने की जरूरत है। इस कोड में निम्न लाभ हैं:
- आप नियंत्रित कर सकते हैं कि कौन-सी वेरिएबल्स सेट की जा सकती हैं
- आप नियंत्रित कर सकते हैं कि किस प्रकार के इन व्हेरिएबल्स हैं
- आप बिना आसानी से नए चर और / या चर प्रकार बदल सकते हैं पढ़ने का कोड बदलना
- आप इस कोड को इसके लिए नया कोड लिखे बिना पूरी तरह से अलग-अलग फाइलें पढ़ सकते हैं < / Li>
वाईएएमएल के रूप में पढ़ना
अगर आपकी ज़रूरतें आपके प्रश्न के अनुसार विशिष्ट नहीं हैं तो मैं इस पर एक पूरी तरह से अलग दृष्टिकोण लेगा।
एक yaml फ़ाइल के रूप में input.txt
लिखें। Yaml वाक्यविन्यास में यह इस तरह दिखेगा:
--- नाम: पीटर की आयु: 26 परिवार_स्टेटः: शादीशुदा
आप इसे इस प्रकार पढ़ सकते हैं: < / P>
YAML.load (file.read ("input.txt")) # = & gt; {"Name" = & gt; "पीटर", "आयु" = & gt; 26, "परिवार_स्टैटस" = & gt; : विवाहित}
यदि आप input.txt
फ़ाइल को नियंत्रित नहीं करते हैं तो सावधान रहें, आप डेटा को नियंत्रित नहीं करेंगे। मैं input.txt
के बजाय फ़ाइल input.yaml
नाम देता हूं। यदि आप अधिक जानना चाहते हैं, तो yaml फ़ाइलों को लिखने के तरीके के बारे में देखें:। Yaml और ruby के बारे में अधिक infos पाया जा सकता है।
Comments
Post a Comment