0

誰かが私を助けてくれないかと思っていました。プログラムで、ユーザーがテキスト ドキュメントから特定のコード ブロックのみを読み取ることができるようにしたいと考えています。ただし、オンとオフを切り替えることができるように、ボタンの後ろに配置したいと思います。これを行うさまざまな方法を試しましたが、わずかな違いはありませんでした。

これが現時点での私のコードの状態です。

namespace filestream
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private string Read(string file)
        {
            StreamReader reader = new StreamReader(file);
            string data = reader.ReadToEnd();
            reader.Close();

            return data;
        }

        private void btn1_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
            DialogResult result = openFileDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
                string data = Read(openFileDialog1.FileName);
                textBox1.Text = data;

            }
            else
            {
                //do nothing
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
        }
    }
}

私はこれにかなり慣れていないので、どんな助けでも大歓迎です。

4

3 に答える 3

2

あなたがそこに持っているものを見る限り、それは機能しているはずです。そうでない理由を私が考えることができる唯一のことは、ボタンが btn1_Click ルーチンではなく、button1_Click ルーチンに接続されていることです。ボタンをクリックしても何も起こらない場合、それが唯一の理由です。このコードは、ユーザーにファイルを選択してから、ファイル全体を読み取ってテキスト ボックスに配置するように要求するように記述されているように見えます。

于 2010-02-23T18:52:21.933 に答える
1

.Net 3.5 と LINQ を使用できる場合は、ここにオプションがあります...

public static class Tools
{
    public static IEnumerable<string> ReadAsLines(this string filename)
    {
        using (var reader = new StreamReader(filename))
            while (!reader.EndOfStream)
                yield return reader.ReadLine();
    }
}
class Program
{
    static void Main(string[] args)
    {
        var lines = "myfile.txt".ReadAsLines()
                                // you could even add a filter query/formatting
                                .Skip(100).Take(10) //do paging here
                                .ToArray();
    }
}

... フィルタリング、解析、および書式設定を表示するために拡張された狂気 ...

public static class Tools
{
    public static void Foreach<T>(this IEnumerable<T> input, Action<T> action)
    {
        foreach (var item in input)
            action(item);
    }
}
class Program
{
    static void Main(string[] args)
    {
        // the line below is standing in for your text file.  
        // this could be replaced by anything that returns IEnumerable<string>
        var data = new [] { "A 1 3", "B 2 5", "A 1 6", "G 2 7" };

        var format = "Alt: {1} BpM: {2} Type: {0}";

        var lines = from line in data
                    where line.StartsWith("A")
                    let parts = line.Split(' ')
                    let formatted = string.Format(format, parts)
                    select formatted;

        var page = lines.Skip(1).Take(2);

        page.Foreach(Console.WriteLine);
        // at this point the following will be written to the console
        //
        // Alt: 1 BpM: 6 Type: A
        //
    }
}
于 2010-02-23T18:50:01.163 に答える
0

の中身を取ってbtn1_click入れてみましたbutton1_clickか?時々それは私のために働く。

于 2011-04-26T09:58:44.530 に答える