2016-03-30 148 views
1

我正在嘗試開發一個讀取.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 這一個丟棄陣列的最值

+0

您應該提供一個tdms示例文件 – labilbe

+0

我在第二個鏈接中做過,我會再次粘貼到這裏:http://speedy.sh/GAdKM/tdms-file-example.zip – Innat3

回答