作者ricaro ( )
看板C_Sharp
標題Re: [問題] 請問如何搜尋特定資料複製輸出
時間Thu Mar 21 11:37:14 2013
原始資料如下
----
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
→ soup514:善用debug 看看寫的東西跟你想的有沒有一致 03/21 20:46
→ soup514:看資料fi_num fi_num2 都一樣是a0a1那行 到底要split什麼 03/21 20:50
→ ricaro:抱歉 那一行是資料的最開頭有一行是檔案來源 03/21 21:10
→ ricaro:所以我用Split把檔案的檔名給截出來 因為那部份沒問題 03/21 21:10
→ ricaro:我就沒有把原始資料的那部份也放上來了 抱歉 03/21 21:11
→ soup514:欄位如果是固定長度就用substring去取出想要的數值啊 03/21 23:14
→ ricaro:我目前沒想到怎麼找到符合輸入條件的字串 03/22 09:17
→ ricaro:之前是先用Trim把空格除掉 再用startwith 03/22 09:17
→ ricaro:不知道是不是語法有誤 寫出來可以跑 但輸出檔案太大 03/22 09:18
→ ricaro:輸出的結果開不起來 應該是我寫的有問題 03/22 09:19
→ ricaro:所以上來求助 03/22 09:25
→ soup514:因為一直append吧 每次刪掉 還是會檔案太大? 03/22 20:29
→ soup514:你這段程式 就只是把讀進來的東西 又一行一行寫出去而己 03/22 20:30
→ ricaro:因為本來要用來判斷所需資料的那部份有問題 所以刪掉了 03/24 20:43
→ ricaro:還是我把原本有問題的那部份也放上來? 03/24 20:44