私は現在、テキストファイル内の関連する用語/単語の検索を扱う小さなC#演習を行っています。プログラムは、検索された単語を含むテキストファイル内のすべての文を書き出します。たとえば、「example」という単語を入力すると、プログラムはテキストファイル内のすべての文を調べて、「example」という単語が含まれている文を引き出します。
The text file is structured as so: <sentenceDesignator> <text>
sentence 1: bla bla bla bla example of a sentence //each line contains a sentence
sentence 2: this is not a good example of grammar
sentence 3: bla is not a real word, use better terms
私ができるようにしたいのは、線形検索を使用してテキストファイルのすべての行を調べ、検索された文字列用語を含むすべての文を書き出すことです。
これまでの私のコード:
String filename = @"sentences.txt";
if (!File.Exists(filename))
{
// Since we just created the file, this shouldn't happen.
Console.WriteLine("{0} not found", filename);
return;
}
else
{
Console.WriteLine("Successfully found {0}.", filename);
}
//making a listof type "Sentence" to hold all the sentences
List<Sentence> sentences = new List<Sentence>();
//the next lines of code...
StreamReader reader = File.OpenText(filename);
//first, write out all of the sentences in the text file
//read a line(sentence) from a line in the text file
string line = reader.ReadLine();
while (line != null)
{
Sentence s = new Sentence();
//we need something to split data...
string[] lineArray = line.Split(':');
s.sentenceDesignator = lineArray[0];
s.Text = lineArray[1];
Console.Write("\n{0}", line);
line = reader.ReadLine();
}
//so far, we can write out all of the sentences in the text file.
Console.Write("\n\nOK!, search a term to diplay all their occurences: ");
string searchTerm = Console.ReadLine();
if(!line.Contains(searchterm))
{
Console.Write("\nThat term does not exist in any sentence.");
}
else
{
foreach (Sentence ss in sentences)
{
if (ss.sentenceDesignator.Contains(queryName))
{
//I need help here
}
}
}