Project 10

Text File Search Tool

This project implements a text-search utility designed to scan large text files for user-defined keywords or patterns and extract matching lines. It is well-suited for use cases such as log analysis, diagnostics, and ad hoc data investigation where targeted information needs to be surfaced quickly from high-volume text data.

C# (.NET)

System.IO

RegEx

Technical

Highlights

  • Read text files incrementally using StreamReader to support efficient scanning of large files without loading entire contents into memory.

  • Implemented dual search modes: keyword matching for literal text searches and regular expression support for advanced pattern-based filtering.

  • Designed a Windows Forms interface that allows users to enter multiple search patterns (one per line) and toggle between search modes via radio buttons.

  • Extracted matching results to a separate output file (optional) or displayed them directly in a rich text box for immediate review.

  • Ensured performance and scalability by processing data line by line, avoiding full file loads even with multi-gigabyte text files.

  • Prevented duplicate results by checking if lines already exist in the output before adding them.

  • Implemented thread-safe UI updates using InvokeRequired to support potential future async processing.

Project

Takeaways

  • Developed practical experience using regular expressions for pattern-based text searching with case-insensitive matching.

  • Learned how to design search utilities tailored for log analysis and large text datasets with minimal memory overhead.

  • Reinforced performance considerations when scanning large files incrementally and handling file I/O operations efficiently.

  • Gained experience building user-friendly Windows Forms applications with dynamic UI state management.