テキストファイルから情報を読み取っていますが、行ごとにテキストファイルを読み込みたいのですが、各行では、文字(例えば、 '、')と私は配列のデータを保存するが、私はそれが私は最後の結果を取得して印刷します。あなたが定義上ファイルから読み込んで文字に基づいて情報を分割するC#
:
StringArray = information.ToString().Split(SplitCommas);
分割は、文字列[]でない文字列を返します:
string StringArray = null;
は、その後、あなたのようにそれを使用
private void button1_Click_1(object sender, EventArgs e)
{
string StringArray = null;
//to get the browsed file and get sure it is not curropted
try
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
using (StreamReader sr = new StreamReader(openFileDialog1.FileName))
{
string data;
while ((data = sr.ReadLine()) != null)
{
StringArray = data.Split(',');
}
}
for (int i = 0; i < StringArray.Length; i++)
{
textBox1.Text = StringArray[i];
}
FilePath.Text = openFileDialog1.FileName;
textBox1.Text = (string)File.ReadAllText(FilePath.Text);
}
}
catch(IOException ex)
{
MessageBox.Show("there is an error" + ex+ "in the file please try again");
}
}
私はあなたが言ったことをしましたeの問題は、私はそれを印刷するとき私はちょうど最後の結果を得て、私はforループでそれを印刷しています –
あなたは "それを印刷する"と言うときは、textbox1.Textを設定することを意味しますか?そうであれば、textbox1を何度も新しい値に設定しますが、あなたが書いた前の値を上書きします。おそらくあなたが探しているのはテキストを追加することです(textbox1.text + = StringArray [i]のようになりますが、ストリングビルダがより適用可能です)。私はこれが最後のバグではないと思いますので、いくつかのブレークポイントを追加し、それをもう少し長く動かすことをお勧めします。 – deepee1
彼が遭遇している問題は、文字列配列の唯一の値が最後に読み込まれた行であるため、ファイルの最後を読み取るまでループ内の配列を置き換えるためです。私は文字列配列のリストを推奨し、forループがすべての分割文字列を取得できるようにAddRange data.Split( "、")を使用します。 –
Druegor