Сохранение данных полученных в Regex.Matches - C#
Формулировка задачи:
Стоит задача парсинга многострочного файла .txt (объемом 100-200 mb).
Для парсера использую регулярное выражение, но по итогам процесса, при попытки получения количества элементов (.Count) и/или отправки результатов в коллекцию, компилятор выдает ошибку: An unhandled exception of type 'System.OutOfMemoryException' occurred in System.dll (до этого лавинообразно увеличивается потребление ОЗУ).
подскажите плз что я делаю не так
Листинг программы
- static void Main(string[] args)
- {
- List<Data> myData = new List<Data>();
- string fileName = File.ReadAllText("j:\\task01\\TextFile.txt");
- var matches = Regex.Matches(fileName, @"([A-Za-z]+)", RegexOptions.IgnoreCase);
- int x = matches.Count;
- foreach (Match m in matches)
- myData.Add(new Data(m.Value));
- Console.ReadKey();
- }
Решение задачи: «Сохранение данных полученных в Regex.Matches»
textual
Листинг программы
- var dict = new Dictionary<string, int>();
- string line;
- MatchCollection matches;
- string key;
- Regex reg = new Regex(@"[a-z]+");
- using(var sr = new StreamReader(@"c:\c#\1.txt",Encoding.Default))
- while(!sr.EndOfStream)
- {
- line = sr.ReadLine().ToLower();
- matches = reg.Matches(line);
- foreach(Match m in matches)
- {
- key = m.ToString();
- if(!dict.ContainsKey(key)) dict.Add(key, 1);
- else dict[key]++;
- }
- }
- foreach(var item in dict)
- {
- Console.WriteLine(item.Key + " = " + item.Value);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д