まず、数日前に C# の学習を始めたばかりなので、C# に関する知識は限られています。
ユーザーが入力した特定のフレーズのテキスト ファイルを解析し、それらを新しいテキスト ドキュメントに出力するプログラムを作成しようとしています。
現時点では、元の入力ファイルを検索し、ユーザーが選択したテキスト入力を収集し、それらの行を対処し、新しいテキスト ファイルを作成し、それらをマージして後で削除するプログラムを使用しています。
これはこれを作成する最も効率的な方法ではないと推測していますが、私はそれを作成し、初心者として理解できるように論理的に機能させました。
コードは次のとおりです。
private void TextInput1()
{
using (StreamReader fileOpen = new StreamReader(txtInput.Text))
{
using (StreamWriter fileWrite = new StreamWriter(@"*DIRECTORY*\FIRSTFILE.txt"))
{
string file;
while ((file = fileOpen.ReadLine()) != null)
{
if (file.Contains(txtFind.Text))
{
fileWrite.Write(file + "\r\n");
}
}
}
}
}
private void TextInput2()
{
using (StreamReader fileOpen = new StreamReader(txtInput.Text))
{
using (StreamWriter fileWrite = new StreamWriter(@"*DIRECTORY*\SECONDFILE.txt"))
{
string file;
while ((file = fileOpen.ReadLine()) != null)
{
if (file.Contains(txtFind2.Text))
{
fileWrite.Write("\r\n" + file);
}
}
}
}
}
private static void Combination()
{
ArrayList fileArray = new ArrayList();
using (StreamWriter writer = File.CreateText(@"*DIRECTORY*\FINALOUTPUT.txt"))
{
using (StreamReader reader = File.OpenText(@"*DIRECTORY*\FIRSTFILE.txt"))
{
writer.Write(reader.ReadToEnd());
}
using (StreamReader reader = File.OpenText(@"*DIRECTORY*\SECONDFILE.txt"))
{
writer.Write(reader.ReadToEnd());
}
}
}
private static void Delete()
{
if (File.Exists(@"*DIRECTORY*\FIRSTFILE.txt"))
{
File.Delete(@"*DIRECTORY*\FIRSTFILE.txt");
}
if (File.Exists(@"*DIRECTORY*\SECONDFILE.txt"))
{
File.Delete(@"*DIRECTORY*\SECONDFILE.txt");
}
}
作成される出力ファイルは、単純に最初のテキスト入力を出力し、続いて 2 番目を出力します。一度に1行ずつ1つのファイルにマージできるかどうか疑問に思っています。連続したファイルであるため、入力1からの情報が必要であり、2のすべてではなく2が必要です。
ありがとう、ニール。