Objective
Create a program that reads a text file, saves its content to an ArrayList, and asks the user to enter sentences to search within the file.
The program should ask the user to enter a word or sentence and display all the lines that contain the word or sentence. It should then prompt the user to enter another word or sentence and repeat the process until the user enters an empty string.
Write Your C# Exercise
C# Exercise Example
// Import necessary namespaces
using System; // For basic input/output operations
using System.Collections; // For using ArrayList
using System.IO; // For file reading operations
class Program
{
// Main method to execute the program
static void Main(string[] args)
{
// ArrayList to store the lines from the file
ArrayList lines = new ArrayList();
// Specify the file path (change the path as needed)
string filePath = "textfile.txt"; // Path to the text file
// Check if the file exists before attempting to read it
if (File.Exists(filePath))
{
// Read all lines from the file and store them in the ArrayList
string[] fileLines = File.ReadAllLines(filePath); // Read all lines from the file
// Add each line from the file into the ArrayList
foreach (string line in fileLines)
{
lines.Add(line); // Store each line in the ArrayList
}
Console.WriteLine("File loaded successfully.\n");
}
else
{
Console.WriteLine("File not found. Please make sure the file exists at the specified path.");
return; // Exit the program if the file is not found
}
// Variable to store the user's search input
string searchTerm = "";
// Repeat asking for a search term until the user enters an empty string
do
{
// Prompt the user to enter a word or sentence to search for
Console.Write("Enter a word or sentence to search for (or press Enter to quit): ");
searchTerm = Console.ReadLine(); // Get the user's input
// If the input is not an empty string, search for the term
if (!string.IsNullOrEmpty(searchTerm))
{
bool found = false; // Flag to check if any lines are found
// Loop through all the lines in the ArrayList
foreach (string line in lines)
{
// Check if the current line contains the search term (case-insensitive search)
if (line.IndexOf(searchTerm, StringComparison.OrdinalIgnoreCase) >= 0)
{
// If the search term is found, display the line
Console.WriteLine(line);
found = true; // Mark that at least one match was found
}
}
// If no matching lines were found, notify the user
if (!found)
{
Console.WriteLine("No matches found for your search.");
}
}
} while (!string.IsNullOrEmpty(searchTerm)); // Continue until the user enters an empty string
// Inform the user that the program is ending
Console.WriteLine("Exiting the program...");
}
}