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