Esempio n. 1
0
 void filterCopyStream(Stream input, Stream outStream)
 {
     using (StreamWriter streamWriter = new StreamWriter(outStream, System.Text.Encoding.UTF8))
     {
         using (StreamReader streamReader = new StreamReader(input))
         {
             string line;
             Regex  rx = new Regex("^(?<time>[^;]+);(?<source>[^;]+);(?<level>[^;]+)");
             var    allFilterOptions = Enum.GetValues(typeof(FilterOptionsType));
             while ((line = streamReader.ReadLine()) != null)
             {
                 Match m    = rx.Match(line);
                 bool  skip = false;
                 if (m.Success)
                 {
                     foreach (FilterOptionsType filterOption in allFilterOptions)
                     {
                         if (!FilterOptions.HasFlag(filterOption))
                         {
                             string searchString = logFilterOptionsLUT[filterOption];
                             if (m.Groups["level"].Value.Trim() == searchString)
                             {
                                 skip = true;
                                 break;
                             }
                         }
                     }
                 }
                 if (!skip)
                 {
                     streamWriter.WriteLine(line);
                 }
             }
         }
     }
 }