से निश्चित चौड़ाई रिकॉर्ड पढ़ें मेरे पास रिकॉर्ड से भरा एक टेक्स्ट फ़ाइल है जहां प्रत्येक रिकॉर्ड में प्रत्येक फ़ील्ड एक निश्चित चौड़ाई है। मेरा पहला दृष्टिकोण स्ट्रिंग.Substring() का उपयोग करके बस प्रत्येक रिकॉर्ड को पार्स करना होगा। क्या कोई बेहतर तरीका है?टेक्स्ट फ़ाइल
उदाहरण के लिए, प्रारूप के रूप में वर्णित किया जा सकता:
<Field1(8)><Field2(16)><Field3(12)>
और दो रिकॉर्ड के साथ एक उदाहरण फ़ाइल दिखाई देगा:
SomeData000000000SomeMoreData
Data2 0000000000555555MoreData
मैं सिर्फ यकीन है कि मैं अनदेखी नहीं कर रहा हूँ बनाना चाहते Substring() से एक और अधिक सुरुचिपूर्ण तरीका।
अद्यतन: मैं अंत में Killersponge की तरह एक regex के साथ चला गया सुझाव:
private readonly Regex reLot = new Regex(REGEX_LOT, RegexOptions.Compiled);
const string REGEX_LOT = "^(?<Field1>.{6})" +
"(?<Field2>.{16})" +
"(?<Field3>.{12})";
मैं तो क्षेत्रों तक पहुँचने के लिए निम्नलिखित का उपयोग करें:
Match match = reLot.Match(record);
string field1 = match.Groups["Field1"].Value;
हाँ, मैंने रेगेक्स का उपयोग करने के तरीके के बारे में सोचने की कोशिश की, लेकिन लगता है कि यह नौकरी के लिए गलत उपकरण है और जैसा आपने कहा, ओवरकिल। –
regex?^(। {8}) (। {16}) (। *) $ फ़ील्ड की उपरोक्त परिभाषा के लिए, यह मानते हुए कि अंतिम क्षेत्र रिक्त स्थान के साथ गद्देदार हो सकता है या नहीं। – Sekhat