2016-11-17 66 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); 
     } 
    } 
} 
相关问题