-5

現在、ファイルを開いてメッセージ ボックスに表示しています。

private void button2_Click_1(object sender, EventArgs e)
{
    //OpenFileDialog1.ShowDialog();
    OpenFileDialog file = new OpenFileDialog();
    file.FileName = "";
    file.Title = "Open A Text document.";
    file.Filter = "(*.gc)|*.gc|(*.etf)|*.etf|(*.txt)|*.txt|(*.GC)|*.GC|(*.tap)|*.tap";
    DialogResult result = file.ShowDialog();
    if (result == DialogResult.OK)
    {
        System.IO.StreamReader OpenFile = new System.IO.StreamReader(file.FileName);
        textBox1.Text = OpenFile.ReadToEnd();
        OpenFile.Close();


    }

    if (file.FileName.Length > 0)
    {
        OpenFile(file.FileName);
    }

しかし、ファイルを 1 行ずつ読み取り、メッセージ ボックスに表示する必要があります。このコードを変更する方法はありますか。

4

5 に答える 5

2

IEnumerable を返すFile.ReadLinesメソッドがあるので、次のことができます。

foreach(var line in File.ReadLines("myfile.txt")){
   //Do stuff with line
}
于 2013-03-07T15:25:10.957 に答える
0

StreamReader.ReadLine()メソッドの使用を検討してください。

于 2013-03-07T15:24:00.307 に答える
0

まさにそのためのReadLineメソッドです

while (OpenFile.Peek() >= 0) 
{
    MessageBox.Show(OpenFile.ReadLine());
}
于 2013-03-07T15:24:40.977 に答える
0

メソッドを試しましたOpenFile.ReadLine()か?


または、より根本的なアプローチのために

string[] lines = OpenFile.ReadToEnd().Split('\n');
于 2013-03-07T15:24:58.637 に答える
0

ファイルからすべての行を読み取る最も簡単な方法はFile.ReadAllLinesメソッドです (内部的には を使用しますStreamReader):

foreach(string line File.ReadAllLines(fileName))
    MessageBox.Show(line);
于 2013-03-07T15:25:46.093 に答える