मैं जाँच करने के लिए इस कोड का उपयोग करता है, तो एक स्ट्रिंग एक पाठ फ़ाइल है कि मैं स्मृतिका मिलान नहीं हुआ पैटर्न
foreach (Match m in Regex.Matches(haystack, needle))
richTextBox1.Text += "\nFound @ " + m.Index;
regex पदों जहां एक मैच हुआ रिटर्न लेकिन मैं चाहते हैं में लोड में मौजूद के लिए लाइन नंबर प्राप्त करें लाइन नंबर पता है?
var lines = haystack.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
for(int i=0; i <lines.Length; i++)
{
foreach (Match m in Regex.Matches(lines[i], needle))
richTextBox1.Text += string.Format("\nFound @ line {0}", i+1)
}
मुझे लगता है कि एक बहुत अधिक आकर्षक विकल्प भूसे के ढेर के लिए एक 'StringReader' का उपयोग करें और उपयोग करने के लिए किया जाएगा' ReadLine() 'इसे उस तरह से बंटवारे के बजाय लाइनों को पढ़ने के लिए। –
सच - मैंने माना था कि 'हैस्टैक' पहले ही मेमोरी में लोड हो चुका है, अगर ऐसा नहीं है, तो लंबी फाइलों के लिए बिल्कुल' फाइल। रीडलाइन() 'को प्राथमिकता दी जाएगी – BrokenGlass