日期:2014-05-17  浏览次数:20908 次

c# 读取txt 并拆分成二维数组出错 请指点
我的数据格式如下:
C# code
111111 2222222 33333 44444 55555555
66666 77777 888888 999999 00000
aaaa bbbb ccccc ddddd eeeee
fffff ggggg hhhhh jjjjj kkkk


我另存为文本文档然后 
第一种方法
C# code


    string myfile = mypath + "\\atm.txt";
     
            string[] mytmpstring = File.ReadAllLines(myfile,Encoding.Default);
      
            string[] mybh = null;
 
            string[] array2 = null;
            for (int i = 0; i < mytmpstring.Length; i++)
            {
               array2 = mytmpstring[i].Split('\t');
                for (int j=0; j < array2.Length; j++)
                {
                   mylist[i][j] = array2[j] ;
                }
            }



第二种方法

C# code
          string myfile = mypath + "\\atm.txt";
     
            string[] mytmpstring = File.ReadAllLines(myfile,Encoding.Default);
            //string[] mylistf = mytmpstring.Split("\r\n");
            string[] mybh = null;
          for (int i = 0; i < mytmpstring.Length; i++)
         {
            foreach (string s in mytmpstring)
              {
                   mybh = s.Split('\t');
                foreach(string t in  mybh)
               {

                    for (int y=0; y < mybh.Length; y++)
                      {
                          mylist[i][y] = t;
                   }
                  }
               }
            }


两种方法都在测试的时候,代码运行到最内层的循环时提示我 未将对象引用设置到对象的实例

求指点

------解决方案--------------------
你的mylist是怎么定义的?
------解决方案--------------------
试试这样
C# code

            string[] mytmpstring = File.ReadAllLines(myfile, Encoding.Default);

            string[] mybh = null;

            string[] array2 = null;

            int first = mytmpstring.Length;
            

            string[][] mylist = new string[first][];

            for (int i = 0; i < mytmpstring.Length; i++)
            {
                array2 = mytmpstring[i].Split('\t');
                mylist[i] = new string[array2.Length];
                for (int j = 0; j < array2.Length; j++)
                {
                    mylist[i][j] = array2[j];
                }
            }

------解决方案--------------------
另外,你的那个数据用
mytmpstring[i].Split('\t');
貌似不妥
换成这个看
array2 = mytmpstring[i].Split(' ');
------解决方案--------------------
你是要二维数组还是嵌套数组,如果是 string[][] 这样的嵌套数组
C# code
string[] lines = File.ReadAllLines("路径");
string[][] mylist = new string[lines.Length][];
for (int i = 0; i < lines.Length; i++)
{
    mylist[i] = lines[i].Split('\t');
}