[問題] 如何擷取不同長度的內容?

看板C_Sharp (C#)作者 (1+1≠2)時間11年前 (2014/06/25 22:55), 編輯推噓1(1013)
留言14則, 4人參與, 最新討論串1/1
我要寫一支程式供使用者去讀取文字檔 文字檔是由儀器軟體所產生。 文字檔內容就是量測數據的結果。 類似如下文字檔: Width:100cm Height:20cm Tool:xxxxx Vision:4.2.2.5 溫度:200 因為量測儀器有很多款式,產生出的文字檔也不同(但是該有的數據都有) 假設我今天要擷取Width,我可以讓使用者下數字所在的區間。 再透過SubString去擷取出100這個數字。 如果,今天量測數值是90,則使用者還要再去設定擷取範圍。 請問一下,除了設定要擷取的範圍這個方法外,還有其他方式嗎?? 正規表示式這個我有想過,但還是要教使用者去寫正規表示式 = =" 所以想問問有沒有其他方式,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.135.65 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1403708115.A.C52.html

06/25 23:36, , 1F
所以儀器軟體產生出來的文字格式 你能不能控制,可以的話
06/25 23:36, 1F

06/25 23:36, , 2F
就產出xml
06/25 23:36, 2F

06/25 23:38, , 3F
不然用string.split(new string[]{":"}) 以":"作切割
06/25 23:38, 3F

06/25 23:39, , 4F
或者逐行去讀資料,用":"切key跟vlaue
06/25 23:39, 4F

06/25 23:46, , 5F
如果說 輸出的欄位都一樣 譬如一樣是那五個欄位 以Width來
06/25 23:46, 5F

06/25 23:47, , 6F
說 只需要數值的部份而不涵蓋單位, 可以考慮在substring完後
06/25 23:47, 6F

06/25 23:47, , 7F
將單位的字串trim掉 只是不確定原PO是不是指這意思@@"
06/25 23:47, 7F

06/26 01:02, , 8F
string strSample = "Width:100cm";
06/26 01:02, 8F

06/26 01:03, , 9F
int iCapture = strSample.IndexOf(":") + 1;
06/26 01:03, 9F

06/26 01:04, , 10F
string strResult = strSample.Substring(iCapture, (strSa
06/26 01:04, 10F

06/26 01:04, , 11F
mple.Length - iCapture - 2));
06/26 01:04, 11F

06/26 01:09, , 12F
最後-2是減掉cm, 也可以先判斷字串內有無cm,若無就不-2
06/26 01:09, 12F

06/26 11:33, , 13F
:後面值的部份直接正規砍掉不是 0-9\. 的會不會比較簡單
06/26 11:33, 13F

06/26 11:33, , 14F
原來原PO不要 regex 我錯了...
06/26 11:33, 14F
文章代碼(AID): #1JgkBJnI (C_Sharp)
文章代碼(AID): #1JgkBJnI (C_Sharp)