Re: [問題] 請問如何搜尋特定資料複製輸出

看板C_Sharp (C#)作者 ( )時間12年前 (2013/03/21 11:37), 編輯推噓0(0015)
留言15則, 2人參與, 最新討論串3/7 (看更多)
原始資料如下 ---- Peak Type a0 a1 a2 a3 1 BG1st[UDF4] 5.83484411 -0.0689749 2 Voigt Amp 1.53274934 -19.800359 0.47166280 0.14278921 Measured Values Peak Type Amplitude Center FWHM Asym50 FW Base 1 BG1st[UDF4] 7.29711128 -21.200000 0.00000000 0.00000000 2 Voigt Amp 1.53274934 -19.800359 0.85969834 1.00000000 Peak Type Anlytc Area % Area Int Area % Area 1 BG1st[UDF4] Unknown 18.0272318 92.6194949 2 Voigt Amp 1.49472135 1.43652346 7.38050513 Total 19.4637553 100.000000 ---- 我的程式是下面這樣 已經把資料內容弄成string array 但是要輸出想要資料的時候還是有問題 ex. 我想要輸出有關peak 2的a0 a1 a2 a3及 Int Area 要輸出哪個peak的資料 我是弄成由使用者來輸入決定 因為要的資料不一定都是peak 2 有試過用StartWith 來判斷想要的字串 寫出來可以跑但輸出檔案太大開不起來 冏 所以我想我一定是有啥誤會 就先把原本寫的那些拿掉了 希望能有夠進一步的指點 謝謝 textBox1是我的資料來源 textBox2是想要的peak textBox3是要輸出的檔案名稱 ------ private void button1_Click(object sender, EventArgs e) { StreamReader reader = new StreamReader(textBox1.Text); string[] arrayStrings = reader.ReadToEnd().Split('\n'); string[] fi_num = arrayStrings[0].Split('\\'); string[] fi_num2 = fi_num[fi_num.Length - 1].Split('.'); FileInfo output = new FileInfo("D:\\0CSharp\\" + textBox3.Text + ".txt"); if (output.Exists) { StreamWriter txtwriter = output.AppendText(); txtwriter.WriteLine(fi_num2[0]); for (int i = 0; i != (arrayStrings.Length); i++) { string wantdata = textBox2.Text; string row = arrayStrings[i].TrimStart(); txtwriter.WriteLine(row); } txtwriter.Flush(); txtwriter.Close(); } else { StreamWriter txtwriter = output.CreateText(); txtwriter.WriteLine(fi_num2[0]); for (int i = 0; i != (arrayStrings.Length); i++) { string wantdata = textBox2.Text; string row = arrayStrings[i].TrimStart(); txtwriter.WriteLine(row); } txtwriter.Flush(); txtwriter.Close(); } } ---------- 再次感謝 各位能有耐心看完 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.22.21

03/21 20:46, , 1F
善用debug 看看寫的東西跟你想的有沒有一致
03/21 20:46, 1F

03/21 20:50, , 2F
看資料fi_num fi_num2 都一樣是a0a1那行 到底要split什麼
03/21 20:50, 2F

03/21 21:10, , 3F
抱歉 那一行是資料的最開頭有一行是檔案來源
03/21 21:10, 3F

03/21 21:10, , 4F
所以我用Split把檔案的檔名給截出來 因為那部份沒問題
03/21 21:10, 4F

03/21 21:11, , 5F
我就沒有把原始資料的那部份也放上來了 抱歉
03/21 21:11, 5F

03/21 23:14, , 6F
欄位如果是固定長度就用substring去取出想要的數值啊
03/21 23:14, 6F

03/22 09:17, , 7F
我目前沒想到怎麼找到符合輸入條件的字串
03/22 09:17, 7F

03/22 09:17, , 8F
之前是先用Trim把空格除掉 再用startwith
03/22 09:17, 8F

03/22 09:18, , 9F
不知道是不是語法有誤 寫出來可以跑 但輸出檔案太大
03/22 09:18, 9F

03/22 09:19, , 10F
輸出的結果開不起來 應該是我寫的有問題
03/22 09:19, 10F

03/22 09:25, , 11F
所以上來求助
03/22 09:25, 11F

03/22 20:29, , 12F
因為一直append吧 每次刪掉 還是會檔案太大?
03/22 20:29, 12F

03/22 20:30, , 13F
你這段程式 就只是把讀進來的東西 又一行一行寫出去而己
03/22 20:30, 13F

03/24 20:43, , 14F
因為本來要用來判斷所需資料的那部份有問題 所以刪掉了
03/24 20:43, 14F

03/24 20:44, , 15F
還是我把原本有問題的那部份也放上來?
03/24 20:44, 15F
文章代碼(AID): #1HIe1iTZ (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1HIe1iTZ (C_Sharp)