|
分類:[C#]
プログラム初心者です。
C#でテキストファイルを読み込み、キーワードを探して、キーワードを含む3行のみ表示させるプログラムを作成している
途中です。
テキストを読み込むまではできたのですが、キーワードを見つけてキーワードを含む3行を表示させることができません。
キーワードはテキストボックスからの検索ではなく、ボタンを押してキーワードを含む3行を表示させたいと思っています。
・キーワードは2つ(◇受信、◇送信)
・キーワードを含む行には数字が入ってます。
・テキストファイルの中にはキーワードは何個もあるので、対象の行はすべて表示させたいです。
-----------------------------------------------------
例(受信、送信)
受信から3行分で数字も入ってます。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "テキスト(*.txt,*.dat,*.html)|*.txt;*.log;*.dat;*.html|" + "All files(*.*)|*.*";
if (openFileDialog1.ShowDialog() != DialogResult.OK)
{
return;
}
textBox1.Text = openFileDialog1.FileName;//ファイル名、パス取得
using (var fin = openFileDialog1.OpenFile())
{
var buff = new byte[fin.Length];
fin.Read(buff, 0, buff.Length);
try
{
var enc = Encoding.GetEncoding("shift_jis",
EncoderFallback.ExceptionFallback, DecoderFallback.
ExceptionFallback);
var text = enc.GetString(buff);
richTextBox1.Text = (text.Length > 0 &&
text[0] == '\ufeff') ? text.Substring(1) : text;
}
catch (DecoderFallbackException)
{
richTextBox1.Text = Encoding.Default.
GetString(buff);
}
}
using (var infile = new StreamReader(new FileStream
(openFileDialog1.FileName, FileMode.Open, FileAccess.Read, FileShare.
Read)))
{
var lines = new List<String>();
for (;;)
{
var line = infile.ReadLine();
if (line == null) break;
lines.Add(line);
}
richTextBox1.Lines = lines.ToArray();
infile.Close();
}
}
private void button2_Click(object sender, EventArgs e)
{
}
|