2015-09-05 50 views
0

我正在爲我們的無人機在工作中進行調試程序。它使用表格分隔的文本文件(.txt)記錄航班信息數據(如黑匣子),我不想在程序中顯示某些數據以便於閱讀。閱讀表格分隔的數據並顯示在文本框中(C#,Visual Studio)

這是我想要的程序工作:

  1. 用戶通過按鈕打開txt文件
  2. 用戶可以順利通過飛行日誌行通過日誌拖動跟蹤條
  3. 隨着用戶滾動線條,文本框用來自相關飛行傳感器的數據更新。

日誌文件記錄175個不同的傳感器/值。前175組文本是頭條新聞,從那裏開始,有175條數據再次遇到同一類別的數據。

示例:如果我想閱讀avx Throttle,標題「avx Throttle」是第18集。 175集以後我得到第一個節流閥值,175集以後我得到下一個值等等。

我的問題: 我如何確保我的文本框只抓取正確的數據?

  1. 我可以在寫入文本框中的值之前「計數」製表符的數量嗎?
  2. 將文本文件轉換爲數據庫友好的文件類型如.CSV,.XLSX或其他類型會更好嗎?
  3. 如果是的話,我能夠使文本框從表格中的某個列中獲取值(如Excel圖片中的S列(avx Throttle))?我想這會讓工作變得更容易?

看到我在談論 - > Image of the program, the raw log file and the log file when opened in Excel

我希望你能指導我在正確的方向! :)

此致,Morten。

回答

0

如果您想刪除空格/製表符,您需要將它們替換或拆分。下面是擺脫標籤/白色空間的幾個選項

string s = dataText.Replace("\t", ","); 

,那麼你可以使用

string[] arrayOfData = s.Split(new char{','}; 

分裂,或者如果它是白色的空間,你可以做

string s = dataText.Replace(" ", ","); 

那麼你可以分開使用

string[] arrayOfData = s.Split(new char{','}; 

,如果你需要經過值的數組,你可以使用一個for循環和基於關閉你需要你就沿着這

for(int i=0; i < arrayOfData.Length; i++){ 
    if(columnYouWant){ 
     //manipulate data arrayOfData[i] 
    } 

線做一些事情列,你也許可以同時做一個DataTable,使虛擬表格來操縱你的數據。

相關問題