2016-11-17 65 views
-5

我想從文本文件中讀取兩個數字:2,5(第一行是2,第二行是5我的文本文件)。我試圖解決這個小時,但每次我運行的代碼,它導致在這條線上的錯誤如何從一行文本文件逐行讀取數據並將這些字符串添加到數組中?

citaj[o] = int.Parse(h); 

這是我的按鈕的完整代碼。我在將它逐行放入richtextbox時也遇到了一些錯誤。

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     int p = 4; 
     int i = 0; 
     int b = 0; 
     int c = 0; 
     int x = 0; 
     TextBox[] text = new TextBox[50]; 
     string[] linije = new string[50]; 
     string[] brojac = new string[10]; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      text[1] = textBox1; 
      text[2] = textBox2; 
      text[3] = textBox3; 
      brojac[0] = p.ToString(); 
      brojac[1] = c.ToString(); 
      System.IO.File.WriteAllLines(@"text\brojac.txt", brojac); 
      if (b == 0) 
      { 

       for (i = c; i <= p; i++) 
       { 
        if ((i == c) && (x == 0)) 
        { 
         linije[i] = "---------------"; 
         x = 1; 
        } 

        else if (i == p) 
        { 
         linije[i] = "------------------"; 
         b = 1; 
        } 
        else 
        { 
         switch (x) 
         { 
          case 3: linije[i] ="Sifra:" + " " + text[3].Text; 
           x = 0; 
           break; 
          case 2: linije[i] ="Korisnicko ime:" + " " + text[2].Text; 
           x = 3; 
           break; 
          case 1: linije[i] ="Naziv:" + " " + text[1].Text; 
           x = 2; 
           break; 
         } 
        } 

       } 
      } 
      if(b == 1) 
      { 
       c = c + 5; 
       p = p + 5; 
       b = 0; 
       System.IO.File.WriteAllLines(@"text\Kontener.txt", linije); 
      } 



     } 

     private void button2_Click(object sender, EventArgs e) 
     { 
      int o = 0; 
      string h; 
      int[] citaj = new int[2]; 
      System.IO.StreamReader sr = new System.IO.StreamReader(@"text\brojac.txt"); 
      while ((h = sr.ReadLine()) != null) 
      { 
       string[] parts = h.Split(','); 
       citaj[0] = int.Parse(parts[0]); 
       citaj[1] = int.Parse(parts[1]); 
      } 
      richTextBox1.Lines = new string[] { citaj[0].ToString(), citaj[1].ToString() }; 
     } 
    } 
} 
+2

ReadLine讀完整行直到換行。如果你在同一行有2,5個,那麼你不能把2.5解析爲一個整數。 – Steve

+2

順便說一句:你會在'richTextBox1.Lines [g] = citaj [g] .ToString();'處得到一個異常......「 –

+1

'var yourArr = File.ReadAllLines(@」text \ brojac.txt「);' – EZI

回答

0

該數組未初始化。

嘗試使用List而不是數組。

private void button2_Click(object sender, EventArgs e) 
{ 
    List<int> citaj = new List<int>(); 
    string h; 
    using(System.IO.StreamReader sr = new System.IO.StreamReader(@"text\brojac.txt")) 
    { 
     while ((h = sr.ReadLine()) != null) 
     { 
      int number = 0; 
      if (int.TryParse(h, out number)) 
       citaj.Add(number); 
     } 
    } 
} 
相關問題