2011-10-05 7 views
0

テキストファイルから情報を読み取っていますが、行ごとにテキストファイルを読み込みたいのですが、各行では、文字(例えば、 '、')と私は配列のデータを保存するが、私はそれが私は最後の結果を取得して印刷します。あなたが定義上ファイルから読み込んで文字に基づいて情報を分割する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"); 
     } 


    } 

答えて

1

はここにあなたのエラーです。あなたは

string[] StringArray; 

...トップへの宣言を変更する必要がありますエラー:「暗黙的に文字列に[]型の文字列を変換することはできません」。文字列を文字列に格納しようとしているというヒントを与えるはずです。

+0

私はあなたが言ったことをしましたeの問題は、私はそれを印刷するとき私はちょうど最後の結果を得て、私はforループでそれを印刷しています –

+0

あなたは "それを印刷する"と言うときは、textbox1.Textを設定することを意味しますか?そうであれば、textbox1を何度も新しい値に設定しますが、あなたが書いた前の値を上書きします。おそらくあなたが探しているのはテキストを追加することです(textbox1.text + = StringArray [i]のようになりますが、ストリングビルダがより適用可能です)。私はこれが最後のバグではないと思いますので、いくつかのブレークポイントを追加し、それをもう少し長く動かすことをお勧めします。 – deepee1

+0

彼が遭遇している問題は、文字列配列の唯一の値が最後に読み込まれた行であるため、ファイルの最後を読み取るまでループ内の配列を置き換えるためです。私は文字列配列のリストを推奨し、forループがすべての分割文字列を取得できるようにAddRange data.Split( "、")を使用します。 – Druegor

0

あなたはあなたが文字列として宣言するString配列String.Splitの代わりに、あなたの3行目には、forループ

StringArray = data.Split(','); 
0

を使用したほうが良いかもしれませんString[]

string[] StringArray = null; 

としてのStringArrayを定義する必要があります配列として宣言する必要があります:

string [] StringArray = null; 
関連する問題