将一个txt文件中是内容读出来并保存到一个二维数组中
txt的内容为:























12 









12 

43 
一共36个,存到1个6*6的二维数组中,
这个应该挺简单,我反复试了几次,都是说输入的字符串格式不对,郁闷了,高手来指点下吧

解决方案 »

  1.   

    int[,] a = new int[6,6];
                    string line = string.Empty;
                    for (int i = 0; i < 6; i++)
                    {
                        line = sr.ReadToEnd();
                        for (int j = 0; j < 6; j++)
                        {
                            a[i, j] = int.Parse(line.Split("\r\n")[j]);
                        }
                    }
    这是我的原代码
      

  2.   

     private void Form1_Load(object sender, EventArgs e)
            {
                int[,] aa = new int[6, 6];
                string path = Application.StartupPath + "\\123.txt";
                System.IO.StreamReader reader = new System.IO.StreamReader(path, System.Text.Encoding.Default);
                for (int i = 0; i < 6; i++)
                {
                    for (int j = 0; j < 6; j++)
                    {
                        aa[i, j] = Convert.ToInt32(reader.ReadLine());
                    }
                }
                label1.Text = Convert.ToString(aa[0, 1]);
            }运行成功的 label1.text 显示4
      

  3.   

    int[,] a = new int[6,6]; 
                    string line = string.Empty; 
                    for (int i = 0; i < 6; i++) 
                    { 
                        for (int j = 0; j < 6; j++) 
                        { 
                            line= sr.ReadLine();
                            a[i, j] = int.Parse(line); 
                        } 
                    } 
      

  4.   

    if (ofdlg .ShowDialog ()==DialogResult .OK )
                {
                    string inname = ofdlg.FileName;
                    FileStream fs = new FileStream(inname, FileMode.Open);
                    StreamReader sr = new StreamReader(fs , System.Text.Encoding.Default );
                    
                    string strLine = sr.ReadLine();
                    while (strLine != null)
                    {
                        this.richTextBox1.Text += strLine + "\r\n";
                        strLine = sr.ReadLine();
                    }                 sr.BaseStream.Seek(0, SeekOrigin.Begin);
                    int[,] a = new int[6, 6];//txt读入数组               
                    for (int i = 0; i < 6; i++)
                    {                    
                        for (int j = 0; j < 6; j++)
                        {
                            a[i, j] = Convert.ToInt32(sr.ReadLine());
                            //MessageBox.Show(a[i,j].ToString ());                    }
                    } 
                    label1.Text = Convert.ToString(a[0,1]);
                    sr.Close();
                    fs.Close();
                }
    我怎么运行的时候总是在赋值的那一句提示输入的字符串格式不正确,继续运行后a数组全是0呢
      

  5.   

    sr.BaseStream.Seek(0, SeekOrigin.Begin); 
    如果richtext显示之后不再加这一句,就不会弹出错误,但是a数组的值也全是0,我想是不是richtext显示以后就运行到txt的最后了,是这里的原因还是别的地方的
      

  6.   

    LZ看下你代码 你先是
                      while (strLine != null) 
                    { 
                        this.richTextBox1.Text += strLine + "\r\n"; 
                        strLine = sr.ReadLine(); 
                    } 

    sr.readLine已经读到最后了
    然后你又在下面
                      for (int i = 0; i < 6; i++) 
                    {                    
                        for (int j = 0; j < 6; j++) 
                        { 
                            a[i, j] = Convert.ToInt32(sr.ReadLine()); 
                            //MessageBox.Show(a[i,j].ToString ());                     } 
                    } 

    读的当然全是空了
      

  7.   

    int[,] a = new int[6, 6];
    string line = string.Empty;
    line = sr.ReadToEnd();
    for (int i = 0; i < 6; i++)
    {

    for (int j = 0; j < 6; j++)
    {
    //a[i, j] = Convert.ToInt32(sr.ReadLine()); 
    a[i, j] = int.Parse(line.Split(new char[] { '\n' })[j]);
    }
    } [size=10px]
    [/size]
      

  8.   

    要不你在richTextBox1后面,重新在读已下text文件
      

  9.   

    参数“1”: 无法从“string”转换为“char[]”
          string.Split(params char[])”最匹配的重载方法具有一些无效参数
      

  10.   

    string inname = ofdlg.FileName;
                    FileStream fs = new FileStream(inname, FileMode.Open);
                    StreamReader sr = new StreamReader(fs  , System.Text.Encoding.Default );
                    
                    //string strLine = sr.ReadLine();
                    //while (strLine != null)
                    //{
                    //    this.richTextBox1.Text += strLine + "\r\n";
                    //    strLine = sr.ReadLine();
                    //}                
                    int[,] a = new int[6, 6];//txt读入数组 
                    
                    for (int i = 0; i < 6; i++)
                    {                    
                        for (int j = 0; j < 6; j++)
                        {                        a[i, j] = Convert.ToInt32(sr.ReadLine()); 
                            //MessageBox.Show(a[i,j].ToString ());                    }
                    } 
                    label1.Text = Convert.ToString(a[0,1]);
    我把richtextbox去了以后怎么还提示输入的字符串格式不正确呢
      

  11.   

    谢了,我知道问题在哪了,非常感谢szzzp110