2017-01-25 5 views
0

これは私のコードです。私はrichTextBoxを持って、それにtxtファイルをロードしました。私は従業員の名前を示すコンボボックスを持っています。何をしようとしているのは、コンボボックスからレコードが選択されると、リッチテキストボックスにtxtファイルから4行のテキストをロードさせることです。すべてのコードは、4行のテキストを取得する以外は動作します。txtファイルから4行のコードをリッチテキストボックスに読み込もうとしています

using (StreamReader reader = File.OpenText("employeeData.txt")) ` 
{ 
    for (var i = 0; i < 5; i++)  
    { 
     reader.ReadLine();  ` 

     numLines = employeeDataRichTextBox.Lines.Count(); 

    } 
    employeeDataRichTextBox.Text = reader.ReadToEnd(); 
} 
+0

特定のコードでは、行を読み取っていません。いずれの場合でも、文字列ビルダーに格納することができます。 – Gino

+0

これは、1行で行うことができます: 'employeeDataRichTextBox.Text = string.Join(Environment.NewLine、File.ReadLines(" employeeData.txt ")。Take(4));' – itsme86

答えて

2

テキストボックスに設定する前に行を消費しているため、何も追加されません。

変更し、これにコード:

using (StreamReader reader = File.OpenText("employeeData.txt")) 
{ 
     for (var i = 0; i < 4; i++) 
      employeeDataRichTextBox.Text += reader.ReadLine() + "\r\n"; 
} 
+0

ありがとうございました –

+0

私は得ることができませんそれは他のif文でも動作します。 (var i = 4; i <8; i ++)このコードを設定すると、動作しません。どのように最初の4行をスキップする必要があります。 –

+0

最初に4行を使用する必要があります。まず、0から4までのループを実行し、行を読み込み、tbに割り当てずに0から4までの行を実行してtbに行を読み込みます。 forループの数字は、ストリームからのすべての読み込みに影響しません。それは連続しています。 – Gusman

0

reader.ReadLine()は、現在の行を読み込み、次の行に移ります。あなたのコードは4行を読み込みますが、変数には入れません。その後、読者が5行目にいるとき、その行から読み終わるように指示します。

List<string> listOfLines = new List<string>() 

listOfLines.Add(reader.ReadLine()); 

reader.ReadLine(); 

を修正し、最終的にテキストボックス

employeeDataRichTextBox.Text = string.Join(Environment.NewLine, listOfLines.ToArray()); 
にこれらの行を入れ forループの外varialbeを追加
+0

ストリームリーダーには、.Readlineの定義が含まれていません。 –

+0

ああ、来てください。 'ReadLine()'で、大文字のLと大括弧で囲まれています。コードを変更するのはそれほど難しいことではありません。ソリューションをコピー/ペーストするだけでなく、コードを理解してください。 – Nino

+0

それは、そのコメントのためだけに私の部分のタイプミスでした。私は彼の解決策に従って、それを働かせようとしました、そして、もしあなたが助けを気にしないなら、コメントを追加することを気にしないでください。 –

関連する問題