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

作者: don750421 (1+1≠2)   2014-06-25 22:55:10
我要寫一支程式供使用者去讀取文字檔
文字檔是由儀器軟體所產生。
文字檔內容就是量測數據的結果。
類似如下文字檔:
Width:100cm
Height:20cm
Tool:xxxxx
Vision:4.2.2.5
溫度:200
因為量測儀器有很多款式,產生出的文字檔也不同(但是該有的數據都有)
假設我今天要擷取Width,我可以讓使用者下數字所在的區間。
再透過SubString去擷取出100這個數字。
如果,今天量測數值是90,則使用者還要再去設定擷取範圍。
請問一下,除了設定要擷取的範圍這個方法外,還有其他方式嗎??
正規表示式這個我有想過,但還是要教使用者去寫正規表示式 = ="
所以想問問有沒有其他方式,謝謝
作者: VVll (李奧納多皮卡丘)   2014-06-25 23:36:00
所以儀器軟體產生出來的文字格式 你能不能控制,可以的話就產出xml不然用string.split(new string[]{":"}) 以":"作切割或者逐行去讀資料,用":"切key跟vlaue
作者: fdvd (府低)   2014-06-25 23:46:00
如果說 輸出的欄位都一樣 譬如一樣是那五個欄位 以Width來說 只需要數值的部份而不涵蓋單位, 可以考慮在substring完後將單位的字串trim掉 只是不確定原PO是不是指這意思@@"
作者: aacced (aacced)   2014-06-26 01:02:00
string strSample = "Width:100cm";int iCapture = strSample.IndexOf(":") + 1;string strResult = strSample.Substring(iCapture, (strSample.Length - iCapture - 2));最後-2是減掉cm, 也可以先判斷字串內有無cm,若無就不-2
作者: chrisQQ (ChrisLiu)   2014-06-26 11:33:00
:後面值的部份直接正規砍掉不是 0-9\. 的會不會比較簡單原來原PO不要 regex 我錯了...

Links booklink

Contact Us: admin [ a t ] ucptt.com