Пример #1
0
        private void OpenFile(LineEvaluator mustIncludeLineInOutput)
        {
            FileStream   fs = null;
            StreamReader sr = null;

            try
            {
                StringBuilder output   = new StringBuilder();
                string        fileName = GetSelectedFile();
                try
                {
                    fs = new FileStream(fileName, FileMode.Open,
                                        FileAccess.Read, FileShare.ReadWrite);
                }
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message);
                    return;
                }
                int lineNumber = 0;

                sr = new StreamReader(fs);
                while (!sr.EndOfStream)
                {
                    lineNumber++;
                    string line = sr.ReadLine();
                    if (mustIncludeLineInOutput(line, lineNumber))
                    {
                        output.AppendLine("Line " + lineNumber.ToString() + "    " + line);
                    }
                }
                string contents = output.ToString();
                if (string.IsNullOrEmpty(contents))
                {
                    contents = "File " + fileName + " opened but no contents matched filter";
                }

                LogViewerDisplay.Text = contents;
                string lastChar = contents.Substring(contents.Length - 2, 1);
                LogViewerDisplay.Select(contents.Length - 3, contents.Length - 2);
                LogViewerDisplay.ScrollToCaret();
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
            finally
            {
                if (sr != null)
                {
                    sr.Close();
                    sr.Dispose();
                }
                if (fs != null)
                {
                    fs.Close();
                    fs.Dispose();
                }
            }
        }
Пример #2
0
        //private void ApplyFilterAllFiles_Click(object sender, EventArgs e)
        //{
        //    if (FileList.Items.Count == 0)
        //    {
        //        MessageBox.Show("There are no files in the list");
        //        return;
        //    }

        //    LogViewerDisplay.Clear();
        //    foreach (var fileItem in FileList.Items)
        //    {
        //        var fileName = fileItem.ToString().Split()[0].Trim();
        //        string filteredContent = GetFilteredFileContents(LineContainsTokens, fileName);
        //        if (!string.IsNullOrEmpty(filteredContent))
        //        {
        //            LogViewerDisplay.AppendText("".PadLeft(100, '='));
        //            LogViewerDisplay.AppendText(Environment.NewLine);
        //            LogViewerDisplay.AppendText("[START] " + fileName);
        //            LogViewerDisplay.AppendText(Environment.NewLine);
        //            LogViewerDisplay.AppendText("".PadLeft(100, '='));
        //            LogViewerDisplay.AppendText(Environment.NewLine);
        //            LogViewerDisplay.AppendText(filteredContent);
        //            LogViewerDisplay.AppendText("".PadLeft(100, '='));
        //            LogViewerDisplay.AppendText(Environment.NewLine);
        //            LogViewerDisplay.AppendText("[END] " + fileName);
        //            LogViewerDisplay.AppendText(Environment.NewLine);
        //            LogViewerDisplay.AppendText("".PadLeft(100, '='));
        //            LogViewerDisplay.AppendText(Environment.NewLine);
        //        }
        //    }
        //}

        private void btnApplyFilterAllFiles_Click(object sender, EventArgs e)
        {
            if (FileList.Items.Count == 0)
            {
                MessageBox.Show("There are no files in the list");
                return;
            }

            LogViewerDisplay.Clear();
            btnApplyFilterAllFiles.Text    = "Applying filter to all files ...";
            btnApplyFilterAllFiles.Enabled = false;

            List <string> files = new List <string>();

            foreach (var fileItem in FileList.Items)
            {
                var fileName = fileItem.ToString().Split()[0].Trim();
                files.Add(fileName);
            }

            Thread logViewerTask = new Thread(new ParameterizedThreadStart(EnforceFilter));

            logViewerTask.Priority = ThreadPriority.AboveNormal;
            logViewerTask.Start(files);
        }
Пример #3
0
        private void EnforceFilter(object files)
        {
            bool          foundSomething = false;
            List <string> fileNames      = files as List <string>;

            if (fileNames != null)
            {
                foreach (var fileName in fileNames)
                {
                    string filteredContent = GetFilteredFileContents(LineContainsTokens, fileName);
                    if (!string.IsNullOrEmpty(filteredContent))
                    {
                        foundSomething = true;
                        this.Invoke((Action) delegate() {
                            LogViewerDisplay.AppendText("".PadLeft(100, '='));
                            LogViewerDisplay.AppendText(Environment.NewLine);
                            LogViewerDisplay.AppendText("[START] " + fileName);
                            LogViewerDisplay.AppendText(Environment.NewLine);
                            LogViewerDisplay.AppendText("".PadLeft(100, '='));
                            LogViewerDisplay.AppendText(Environment.NewLine);
                            LogViewerDisplay.AppendText(filteredContent);
                            LogViewerDisplay.AppendText("".PadLeft(100, '='));
                            LogViewerDisplay.AppendText(Environment.NewLine);
                            LogViewerDisplay.AppendText("[END] " + fileName);
                            LogViewerDisplay.AppendText(Environment.NewLine);
                            LogViewerDisplay.AppendText("".PadLeft(100, '='));
                            LogViewerDisplay.AppendText(Environment.NewLine);
                        });
                    }
                }
                if (!foundSomething)
                {
                    this.Invoke((Action) delegate() {
                        LogViewerDisplay.AppendText("No matches were found in all files.");
                    });
                }
                this.Invoke((Action) delegate() {
                    btnApplyFilterAllFiles.Text    = "Apply filter to all files";
                    btnApplyFilterAllFiles.Enabled = true;
                });
            }
        }