2010-09-28 17 views
12

मेरे पास स्ट्रिंग ऑब्जेक्ट है। मुझे इस डेटा को XYZ प्रकार के किसी अन्य ऑब्जेक्ट में पास करने की आवश्यकता है। लेकिन XYZ प्रकार का यह ऑब्जेक्ट केवल System.IO.Stream ले रहा है। तो स्ट्रिंग डेटा को स्ट्रीम में कैसे परिवर्तित करें ताकि XYZ प्रकार की ऑब्जेक्ट इस स्ट्रिंग डेटा का उपयोग कर सके?स्ट्रिंग ऑब्जेक्ट से System.IO.Stream कैसे प्राप्त करें

उत्तर

26

स्ट्रिंग को बाइट सरणी में अनुवाद करने के लिए आपको एक टेक्स्ट एन्कोडिंग चुननी होगी, फिर अपने फ़ंक्शन को कॉल करने के लिए MemoryStream का उपयोग करें। उदाहरण के लिए:

using(System.IO.MemoryStream ms = new System.IO.MemoryStream(
    System.Text.Encoding.UTF16.GetBytes(yourString))) 
{ 
    XYZ(ms); 
} 

आप UTF16 बदल होने के लिए जो कुछ भी एन्कोडिंग आप स्ट्रिंग पारित करने के लिए उपयोग करना चाहते हैं कर सकते हैं।

+0

यह काम कर रहा है, धन्यवाद। – mohang

+0

पंक्ति 2 में अनुपलब्ध दाएं कोष्ठक जोड़ें। मैं संपादित नहीं कर सका, क्योंकि संपादन को 6 से अधिक वर्णों को बदलने की आवश्यकता है ... – cudahead

+0

@cudahead: धन्यवाद, किया गया। –

1

आप यह सोचते हैं चाहते स्ट्रिंग की धारा UTF8 में एन्कोड:

System.IO.MemoryStream mStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes("the string")); 

तुम सच में क्या करना चाहते हैं क्या पर निर्भर करता है, तो आप बेहतर StringReader वर्ग का उपयोग कर कार्य किया जा सकता है। यह आईओ.स्ट्रीम नहीं है, लेकिन यह एक स्ट्रिंग के आसान पाठ उन्मुख पढ़ने के लिए बनाता है।

1

इस कोड को लोड स्वरूपित पाठ (RTF) RichTextBox में

TextRange tr = new TextRange(RichTextBox1.Document.ContentStart,RichTextBox1.Document.ContentEnd); 

string s = myStringData; //myStringData is a string in some format - rtf, xml, etc.. 
MemoryStream ms = new MemoryStream(s); 
tr.Load(ms, DataFormats.Rtf); 
संबंधित मुद्दे