0

txt ファイルからの情報を表示するリスト ボックスがあります。ただし、別の行に情報を出力できないようです。これがスニペットです。ユーザーがボタンを押したときにテキストが表示される必要があります。

        using (StreamReader sr = new StreamReader("Books.txt"))
        {
            String line = sr.ReadToEnd();
            listBox1.Items.Add(line + "\n");
        }

ファイルには 10 行あります。

4

3 に答える 3

1

http://msdn.microsoft.com/en-us/library/system.io.file.readalllines.aspxFile.ReadAllLinesに記載されているドキュメントを使用できます。

使用例は、 http://msdn.microsoft.com/en-us/library/s2tte0y1.aspxで提供されています。

あなたの例では:

var lines = File.ReadAllLines("Book.txt");

foreach (var element in lines)
{
    listBox1.Items.Add(element);
}

ワンライナーもできます。

 listBox1.Items.AddRange(File.ReadAllLines("Book.txt")); // tinstaafl's comment
于 2013-06-15T06:27:08.203 に答える
0

を使用StreamReader.ReadToEnd()すると、ファイルの内容全体を単一の文字列に入れることができます。

ファイルの for each 行にアイテムを追加するには、ListBox次のようにします。

using (StreamReader sr = new StreamReader("Books.txt"))
{
    while (!sr.EndOfStream)
    {
        string line = sr.ReadLine();
        listBox1.Items.Add(line);
    }
}    
于 2013-06-15T06:30:23.287 に答える
0

ReadToEnd()ファイル内のすべてを 1 つの変数に読み取ります。

あなたが欲しいのはですReadLine()

これは機能するはずの方法の 1 つです (ただし、より適切に実行できる可能性があります)。

using (StreamReader sr = new StreamReader("Books.txt"))
{
    while(true)
    {
        String line = sr.ReadLine();
        if(line==null)
          break;
        listBox1.Items.Add(line + "\n");
    }
}

StreamReader のドキュメントを参照してください。

于 2013-06-15T06:28:05.163 に答える