台灣最大程式設計社群網站
線上人數
1093
 
會員總數:242929
討論主題:187836
歡迎您免費加入會員
討論區列表 >> C# >> c#文字檔案讀取並做分割
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
c#文字檔案讀取並做分割
價值 : 30 QP  點閱數:108 回應數:6

樓主

VISA
門外漢
0 3
34 6
發送站內信

我使用c#讀取txt檔案,檔案內容有許多資料(幾百行資料)
資料內容例如這樣
16.17 07-11-2018 11:457 22 上午?
16.18 07-11-2018 11:457 22 上午?
16.19 07-11-2018 11:457 22 上午?
16.20 07-11-2018 11:457 22 上午?
16.21 07-11-2018 11:457 22 上午?
16.22 07-11-2018 11:457 22 上午?
16.23 07-11-2018 11:457 22 上午?
16.24 07-11-2018 11:457 22 上午?
16.25 07-11-2018 11:457 22 上午?
...延續下去,會是一個動態的資料輸入檔
我該如何去做才能,一直不停地抓取 第一列的資料呢(也就是16.17 或 16.18 或 16.19).. ,其實也就是我只要第一列的檔案,其餘我都不要

因為有關於txt的檔案內容抓取 我使用ReadtoEnd這種方法,所以我利用split(' ','?') 將空格和問號進行分割,再存入陣列裡面,但會造成陣列裡面[0] [6] [12]才是我要的檔案,以至於我陣列空間不夠使用。

煩請各位前輩幫忙解惑,感恩。

ps:另外我有在一篇內容po過一樣的問題,看過的各位 我很抱歉,因為這是第二個問題了,想說再開一個討論好了。




搜尋相關Tags的文章: [ c#文字檔案讀取並做分割 split ] ,
本篇文章發表於2018-08-03 17:16
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

Always
檢舉此回應
試試正規運算式(input是你ReadtoEnd後的字串)

本篇文章回覆於2018-08-03 20:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Bobby
檢舉此回應
是否將 readtoend 改為使用 readline 即可 ?
每次開檔執行 readline 一次, 就只會讀到第一列內容
本篇文章回覆於2018-08-03 20:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小魚
檢舉此回應

本篇文章回覆於2018-08-03 23:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Always
檢舉此回應
可以用 string input = File.ReadAllText(path);讀出所有字串後直接用MatchCollection matches = regex.Matches(input);取出字串,
下面程式碼執行結果會是:
1: 16.17
2: 16.18
3: 16.19
4: 16.20
5: 16.21
6: 16.22
7: 16.23
8: 16.24

本篇文章回覆於2018-08-04 14:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

VISA
檢舉此回應
回復:Always大大,
我照著您的方法使用,但我發現MatchCollection matches = regex.Matches(input); 不能使用
後面需要加一個pattern做比較,變成MatchCollection matches = Regex.Matches(input, pattern);
然而我將pattern=16.13就變成一個比對的方式了,像是在搜尋這個16.13在文章裡面有幾個

或許我誤會您的意思了,能否請您再給予幫助回答 謝謝
本篇文章回覆於2018-08-05 12:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

VISA
檢舉此回應
感謝Always大哥,剛剛沒看到第一則回覆,原來您都已經弄好了,非常感謝您。
本篇文章回覆於2018-08-05 13:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.