C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 139 を表示中)
■81987 / )  テキストファイルから特定のキーワードを3行分表示させる
□投稿者/ 初心者中の初心者 (2回)-(2016/11/27(Sun) 18:41:01)

分類:[C#] 

プログラム初心者です。

C#でテキストファイルを読み込み、キーワードを探して、キーワードを含む3行のみ表示させるプログラムを作成している
途中です。
テキストを読み込むまではできたのですが、キーワードを見つけてキーワードを含む3行を表示させることができません。
キーワードはテキストボックスからの検索ではなく、ボタンを押してキーワードを含む3行を表示させたいと思っています。

・キーワードは2つ(◇受信、◇送信)
・キーワードを含む行には数字が入ってます。
・テキストファイルの中にはキーワードは何個もあるので、対象の行はすべて表示させたいです。
わかりにくいと思いますが、その時は質問をお願いします。


-----------------------------------------------------


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)
        {
        }

返信 編集キー/


管理者用

- Child Tree -