[問題] 讀取文字檔內之字串分類和切割

看板C_Sharp作者 (大野狼)時間11年前 (2012/11/26 14:01), 編輯推噓7(7022)
留言29則, 4人參與, 最新討論串1/1
我現在有一文字檔內容大略如下: V 0.01 1.01 0.02 V 1.33 2.21 0.51 V 6.70 1.23 3.50 . . . f 1/1/1 2/2/1 3/3/1 4/4/1 f 5/4/2 6/1/2 7/2/2 8/3/2 f 1/4/3 4/1/3 6/5/3 5/6/3 . . . 內容大約有幾萬行這種資料,要對V,f的資料做分類,並且要對每行字串做切割,之後放 到所屬的陣列V,f。 ex: V 0.01 1.01 0.02,由第一個字元辨識出屬於V的資料,切割出0.01,1.01,0.02等數 值,並將之放到V之陣列。f也是一樣。 1.我現在的問題卡在,不知道如何辨識每行字串的第一個字元,以進行分類。 2.分類後不知道該怎麼對字串切割出各個數值,以放到所屬陣列中。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.32.71

11/26 14:57, , 1F
List<string> VnF = new List<string>();
11/26 14:57, 1F

11/26 14:57, , 2F
在迴圈內
11/26 14:57, 2F

11/26 14:58, , 3F
VnF.add(sr.ReadLine());
11/26 14:58, 3F

11/26 14:58, , 4F
最後用split分開空白 然後存成你要的形式?
11/26 14:58, 4F

11/26 14:58, , 5F
這樣可以嗎?
11/26 14:58, 5F

11/26 16:06, , 6F
我試看看
11/26 16:06, 6F

11/26 16:09, , 7F
那要怎麼分辨第一個字元呢?
11/26 16:09, 7F

11/26 16:12, , 8F
if(Vnf[0][0] ==V)
11/26 16:12, 8F

11/26 16:13, , 9F
大概像這樣
11/26 16:13, 9F

11/26 16:14, , 10F
更正 =="V"
11/26 16:14, 10F

11/26 17:10, , 11F
所以你的方法是先對每一行做切割後儲存,然後再依照切割後,的
11/26 17:10, 11F

11/26 17:10, , 12F
第一個字元做判斷,進而做分類囉?
11/26 17:10, 12F

11/26 18:05, , 13F
隨便你啊 我不知道你還有什麼工具
11/26 18:05, 13F

11/26 21:05, , 14F
因為這個文字檔裡面還有其他資料,有沒有辦法READLINE之後,直
11/26 21:05, 14F

11/26 21:06, , 15F
接抓到字串的第一個字元,先做判斷?
11/26 21:06, 15F

11/27 09:39, , 16F
你試一次就知道了
11/27 09:39, 16F

11/27 14:49, , 17F
string line = sr.ReadLine();
11/27 14:49, 17F

11/27 14:49, , 18F
line.StartWith("V") or line.ToCharArray(0,1)[0] == 'V'
11/27 14:49, 18F

11/27 21:06, , 19F
原來還有這種判斷字頭的方法啊!!感謝啊
11/27 21:06, 19F

11/28 19:06, , 20F
4.0之後可以用:File.ReadLines(@"XXX.txt").Where(
11/28 19:06, 20F

11/28 19:06, , 21F
v => v.StartsWith("V")).ToArray();取到所有相關字串
11/28 19:06, 21F

11/28 21:59, , 22F
有點看不懂上述的程式碼...,可以稍微講解一下嗎?
11/28 21:59, 22F

11/28 23:11, , 23F
linq
11/28 23:11, 23F

12/01 15:46, , 24F
sorry沒注意到,readline會傳回所有行的集合的IEnumable
12/01 15:46, 24F

12/01 15:46, , 25F
.where之後取得那個集合裡滿足這個條件的,在toarray
12/01 15:46, 25F

12/01 15:46, , 26F
其實也可以不用toArray啦,看你需要
12/01 15:46, 26F

12/01 18:25, , 27F
我還不會泛型.....,借的書沒一本有講到這個= =
12/01 18:25, 27F

12/03 21:16, , 28F
那先用先人講的吧XD
12/03 21:16, 28F

12/03 21:16, , 29F
講錯,用先人感覺不太對= =,前面的人說的:p
12/03 21:16, 29F
文章代碼(AID): #1GimNJ1r (C_Sharp)