मेरे पास एक बहुत बड़ी चार सरणी है जिसे मुझे रेगेक्स का उपयोग करने के लिए स्ट्रिंग में कनवर्ट करने की आवश्यकता है।
लेकिन यह इतना बड़ा है कि जब मैं इसे स्ट्रिंगर स्ट्रिंग करने के लिए पास करता हूं तो मुझे OutOfMemoryException
मिलता है।इसे कॉपी किए बिना चार सरणी से स्ट्रिंग कैसे बनाएं?
मुझे पता है कि स्ट्रिंग अपरिवर्तनीय और इसलिए यह उसके अंतर्निहित चरित्र संग्रह बताना संभव नहीं होना चाहिए, लेकिन मैं पूरी बात को कॉपी किए बिना उस पर रेगुलर एक्सप्रेशन का उपयोग करने के लिए एक तरह से की जरूरत है।
मैं उस सरणी को कैसे प्राप्त करूं?
- मुझे
StreamReader
का उपयोग करके फ़ाइल से मिलता है। मुझे शुरुआती स्थिति और पढ़ने की सामग्री की लंबाई,Read
औरReadBlock
विधियों को मुझेchar[]
बफर की आपूर्ति करने की आवश्यकता है।- वहां एक स्ट्रिंग के अंतर्निहित संग्रह निर्दिष्ट करने के लिए एक रास्ता है:
तो यहाँ बातें मैं जानना चाहता हूँ कर रहे हैं? (क्या यह अपने सर को सरणी में भी रखता है?)
- ... या रेगेक्स का उपयोग सीधे चार सरणी पर कर रहा है?
- ... या सीधे फ़ाइल के हिस्से को स्ट्रिंग के रूप में प्राप्त करना?
रेगेक्स क्या है? यदि यह काफी आसान है तो आप उसे कोड के साथ बदल सकते हैं जो 'char []' चलता है। –
'char []' कितना बड़ा है? –
@ मैट: दुर्भाग्य से मैं नहीं कर सकता। यह एक बहुत लंबा और जटिल पार्सर है। –