作者don750421 (1+1≠2)
看板C_Sharp
标题[问题] 如何撷取不同长度的内容?
时间Wed Jun 25 22:55:10 2014
我要写一支程式供使用者去读取文字档
文字档是由仪器软体所产生。
文字档内容就是量测数据的结果。
类似如下文字档:
Width:100cm
Height:20cm
Tool:xxxxx
Vision:4.2.2.5
温度:200
因为量测仪器有很多款式,产生出的文字档也不同(但是该有的数据都有)
假设我今天要撷取Width,我可以让使用者下数字所在的区间。
再透过SubString去撷取出100这个数字。
如果,今天量测数值是90,则使用者还要再去设定撷取范围。
请问一下,除了设定要撷取的范围这个方法外,还有其他方式吗??
正规表示式这个我有想过,但还是要教使用者去写正规表示式 = ="
所以想问问有没有其他方式,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.239.135.65
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1403708115.A.C52.html
1F:→ VVll:所以仪器软体产生出来的文字格式 你能不能控制,可以的话 06/25 23:36
2F:→ VVll:就产出xml 06/25 23:36
3F:→ VVll:不然用string.split(new string[]{":"}) 以":"作切割 06/25 23:38
4F:→ VVll:或者逐行去读资料,用":"切key跟vlaue 06/25 23:39
5F:推 fdvd:如果说 输出的栏位都一样 譬如一样是那五个栏位 以Width来 06/25 23:46
6F:→ fdvd:说 只需要数值的部份而不涵盖单位, 可以考虑在substring完後 06/25 23:47
7F:→ fdvd:将单位的字串trim掉 只是不确定原PO是不是指这意思@@" 06/25 23:47
8F:→ aacced:string strSample = "Width:100cm"; 06/26 01:02
9F:→ aacced:int iCapture = strSample.IndexOf(":") + 1; 06/26 01:03
10F:→ aacced:string strResult = strSample.Substring(iCapture, (strSa 06/26 01:04
11F:→ aacced:mple.Length - iCapture - 2)); 06/26 01:04
12F:→ aacced:最後-2是减掉cm, 也可以先判断字串内有无cm,若无就不-2 06/26 01:09
13F:→ chrisQQ::後面值的部份直接正规砍掉不是 0-9\. 的会不会比较简单 06/26 11:33
14F:→ chrisQQ:原来原PO不要 regex 我错了... 06/26 11:33