我正在嘗試開發一個讀取.tdms(National Instruments)文件的應用程序,爲此我使用「TDMSReader」程序包link to the package + use。除了那些使用設定的持續時間或時間間隔的文件以外,這工作正常。讀取具有時間間隔/持續時間的.TDMS文件
在.tdms示例文件I'm providing中可以注意到,該文件由五個通道組成,每個通道包含174080個項目。
然而(該文件的內容可以與此excel add-in查看),我提到不考慮這一點的C#包,它只能讀取項相等的量以「wf_samples」字段(10240 ),放棄其餘的。有沒有人找到了解如何讀取通道的「長度」屬性並提取剩餘的數組值?我的代碼
實例轉換.tdms文件爲.csv
//file.Fullname = full path to the .tdms file
using (var output = new StreamWriter(File.Create(file.FullName + ".csv")))
using (var tdms = new NationalInstruments.Tdms.File(file.FullName))
{
tdms.Open();
List<object[]> All_Values = new List<object[]>();
//Headers
string channels = "";
foreach (var group in tdms)
{
foreach (var channel in group)
{
channels = channels + channel.Name + ";";
All_Values.Add(channel.GetData<object>().ToArray());
}
}
output.WriteLine(channels);
//Values
long cnt = tdms.First().Channels.First().Value.DataCount;
for (int i = 0; i < cnt; i++)
{
string values = "";
foreach (object[] columnValues in All_Values)
{
values = values + columnValues[i] + ";";
}
output.WriteLine(values);
}
}
,提供了一個方法來讀取.tdms文件和C#是歡迎任何其他選擇。
編輯:TDMS示例文件:
NO Interval sample 這一個正常工作
Interval Sample 這一個丟棄陣列的最值
您應該提供一個tdms示例文件 – labilbe
我在第二個鏈接中做過,我會再次粘貼到這裏:http://speedy.sh/GAdKM/tdms-file-example.zip – Innat3