2011-08-03 18 views
6

के लिए लंबी स्ट्रिंग में बदलें क्या कोई चाल या उपयोगिता है जो एक्सएमएल फ़ाइल ले सकती है और फाइल को सी # कोड के अंदर इस्तेमाल करने के लिए एक लंबी स्ट्रिंग में बदल सकती है? मैं 'एक्सएमएल फाइल में हर पंक्ति को कॉपी और पेस्ट करने के लिए मैन्युअल रूप से नहीं करना चाहता हूं। मैं चाहता हूं कि फ़ाइल में प्रत्येक पंक्ति मेरे सी # कोड में स्ट्रिंग लाइन हो और फिर लाइन के अंत में "+" हो। http://inedo.com/downloads/smartpasterएक्सएमएल फाइल ले लो और सी # कोडिंग

+1

आप क्या हल करने की कोशिश कर रहे हैं? यह बहुत अजीब लगता है। –

उत्तर

6

इसकी नहीं एक प्रोग्रामिंग सवाल, लेकिन यहाँ आप के लिए क्या देख रहे हैं?

string xmlContent = System.IO.File.ReadAllText(pathToXML); 

एक ही तार की एक सरणी प्राप्त करने के लिए किया जा सकता है ...

string[] xmlContent = System.IO.File.ReadAllLines(pathToXML); 
+0

+1; एक साफ उपकरण की तरह लगता है। मुफ्त/ओएसएस भी :) –

+0

कमाल प्लगइन !!! स्ट्रिंग्स को इंगित करने के लिए धन्यवाद –

0

तुम सिर्फ File.ReadAllText (पथ) में एक्सएमएल की राह नहीं भेज सकता:

3

एक बड़ा एक स्ट्रिंग शाब्दिक रूप में अपने सी # कोड में एम्बेड फ़ाइल के बाद एक बहुत बुरा विचार है। यह एक विशेष रूप से बुरा विचार है कि + ऑपरेटर के साथ अलग-अलग लाइनों को संयोजित किया जाए क्योंकि स्ट्रिंग्स अपरिवर्तनीय हैं और आप एक zillion स्ट्रिंग ऑब्जेक्ट्स बना रहे हैं जिन्हें तत्काल दूर फेंक दिया गया है, क्रिस बताते हैं कि संकलक संकलन समय पर शाब्दिक सहभागिता करेगा।

तुम सिर्फ एक पंक्ति के साथ एक स्ट्रिंग के रूप एक्सएमएल लाइन में पढ़ सकता है: तो आप क्या कर सकते हैं

string my_string = File.ReadAllText("xmlfile.xml"); 

आप अपने प्रोजेक्ट के exe में डेटा फ़ाइल एम्बेड करने के लिए प्रयास कर रहे हैं कि इस परियोजना के संसाधन के साथ ।

+0

+1 अपरिवर्तनीय और अतिरिक्त ऑब्जेक्ट निर्माण है। – Tim

+0

यदि स्ट्रिंग्स अक्षर हैं, तो रनटाइम पर कोई संगतता नहीं होगी, यह संकलन समय पर होगा। –

+0

"आप एक अरब स्ट्रिंग ऑब्जेक्ट्स बनायेंगे जो तुरंत फेंक दिए जाते हैं": स्ट्रिंग अक्षर के लिए सच नहीं है। कंपाइलर इसका ख्याल रखेगा और आईएल कोड में केवल एक ही पहले से ही समेकित स्ट्रिंग अक्षरशः रखेगा। –

6

खोज एवं प्रतिस्थापन दस्तावेज़ ठीक करने के लिए अपने संपादक का उपयोग करें

आप दृश्य स्टूडियो में एक नई फ़ाइल में एक्सएमएल पेस्ट सकता है, और नियमित अभिव्यक्ति का उपयोग करें।

  • भागने उद्धरण और अन्य समस्या के कारण पात्रों
  • संलग्न शुरुआत और पंक्ति के अंत तक ", और + पंक्ति के अंत तक।

फिर आपको बस वापस जाना होगा और अंत में एक अर्ध-कॉलन, शुरुआत में एक चर नाम जोड़ना होगा, और इसे अपने स्रोत कोड दस्तावेज़ में पेस्ट करना होगा।

वहां से, आप वैकल्पिक रूप से स्रोत कोड दस्तावेज़ (इसे अच्छी तरह से इंडेंट करने के लिए) को संपादित कर सकते हैं -> उन्नत -> प्रारूप दस्तावेज़ के माध्यम से।

पहला उद्धरण पहले @ को पहले उद्धरण से पहले, वर्बैटिम स्ट्रिंग अक्षर का उपयोग करना है। फिर न्यूलाइन बनाए रखा जाएगा, और आप \" के बजाय "" के साथ उद्धरण चिह्नों से बच सकते हैं।

अपने समस्या यह है कि तार में जमा हो जाती

एक्सएमएल फाइल को संपादित करने के लिए कुछ हद तक मुश्किल है, और XML की बात की हार के भाग पर पुनर्विचार - मानव संपादित नहीं किया जा सकता है। इस समस्या से निपटने के लिए आपको अपनी परियोजना

  • करने के लिए XML जोड़ने पर विचार कर सकता है आप सामग्री के रूप में अपनी परियोजना के लिए इसे जोड़ने सकता है, और निर्माण की डायरेक्टरी में कॉपी करने के लिए फ़ाइल पर गुण सेट करें।फिर उचित XmlDocument लोड-से-फ़ाइल विधियों का उपयोग करें, या बस File.ReadAllText का उपयोग करें।

लाभ (और संभावित रूप से नुकसान) यहां यह है कि आप संकलन के बाद फ़ाइल को संपादित कर सकते हैं। नुकसान यह है कि आपको अपनी असेंबली के साथ एक्सएमएल फाइल को तैनात करना होगा।

  • आप अपने प्रोजेक्ट में एक्सएमएल को एम्बेडेड संसाधन के रूप में जोड़ सकते हैं। फिर आप फ़ाइल से डेटा प्राप्त करने के लिए Assembly.GetManifestResourceStream का उपयोग कर सकते हैं।

हानि (और संभावित रूप से लाभ) यह है कि आप संकलन के बाद फ़ाइल को संपादित नहीं कर सकते हैं। लाभ यह है कि आपको अपनी असेंबली के साथ एक्सएमएल फ़ाइल को तैनात करने की आवश्यकता नहीं है।

ऐसा करने से डेवलपर फ़ाइल को संपादित करने के लिए बहुत आसान बनाता है, अगर एक्सएमएल स्ट्रिंग अक्षर में क्रैम किया गया हो।

0
string fileContent = File.ReadAllText(pathToFile)) 
         .Replace(Environment.NewLine, "+"); 
संबंधित मुद्दे