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);
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM