C# 实现txt文本数据转换为array二维数组方法

public double[,] ReadTxttest(string Path)
{
//初始化二维数组
double[,] array = new double[30000,25];
int i = 0;
// 新建一个DataTable
DataTable tb = new DataTable();
// 添加一列用于存放读入的浮点数
DataColumn c = tb.Columns.Add("Value", typeof(double));

// 打开文件准备读取数据
StreamReader rd = File.OpenText(@Path);
string line;
while ((line = rd.ReadLine()) != null)
{
// 拆分出一行的所有用空格分割的数据项
string[] values = line.Split(' ');
//values为每行数据切割后的数组
// 将每个数据项转换成浮点数,并存入DataTable
foreach (string s in values) //s为行内元素
{
if (!string.IsNullOrEmpty(s))
{
// 转换成浮点数
double v = double.Parse(s);
// 存入DataTable
DataRow r = tb.NewRow();
r["Value"] = v;
tb.Rows.Add(v);

}

}
//计算每行的数据量
Console.WriteLine(tb.Rows.Count);

 

int j = 0; // 列数
//输出DataTable中保存的数组
foreach (DataRow r in tb.Rows)
{
var k = (double)r["Value"];//获取行内元素
if (!string.IsNullOrEmpty(k.ToString()))
{
array[i, j] = k;
Console.WriteLine(i.ToString() +"--" +j.ToString() + "--" + k.ToString());
}
else
{
array[i, j] = 1.23456;
}


j = j + 1;
}
// Console.WriteLine("行数是:" + tb.Rows.Count);

//清除每行数据
tb.Rows.Clear();
i = i + 1;
}

rd.Close();//读取数据完毕,关闭文件
return (array);
}

 

posted @ 2019-04-17 14:33  duncan276  阅读(1716)  评论(0编辑  收藏  举报