我正在尝试开发一个应用程序来读取.tdms(National Instruments)文件,我正在使用" TDMSReader"包link to the package + use。除了那些使用设置持续时间或时间间隔的文件外,这种方法很好。
在.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);
}
}
欢迎提供使用C#读取.tdms文件的任何其他替代方法。
编辑:TDMS示例文件:
NO Interval sample 这个工作正常
Interval Sample 这个丢弃了大多数数组值
答案 0 :(得分:2)
我已为https://github.com/mikeobrien/TDMSReader提交了修复公关。迈克在https://www.nuget.org/packages/TDMSReader/上发布了新版本。