# 同時讀寫在txtflie至chart顯示曲線問題

• ### 問題

• `寫入正常,讀入chart曲線失敗`
``` float a1;//Alpha1
float a2;//Alpha2
float a3;//合併
float b1; //Beta1
float b2;//Beta2
float b3;//合併
float c1;//Gamma1
float c2;//Gamma2
float c3;//合併
float i;//Delta
a1 = e.ThinkGearState.Alpha1 / 100000 * 121;//Alpha1
a2 = e.ThinkGearState.Alpha2 / 100000 * 121;//Alpha2
a3 = a2 - a1;
b1 = e.ThinkGearState.Beta1 / 100000 * 121;//Beta1
b2 = e.ThinkGearState.Beta2 / 100000 * 121;//Beta2
b3 = b2 - b1;
c1 = e.ThinkGearState.Gamma1 / 100000 * 121;//Gamma1
c2 = e.ThinkGearState.Gamma2 / 100000 * 121;//Gamma2
c3 = c2 - c1;
i = (e.ThinkGearState.Delta / 100000 * 121);//Delta
label3.Text = "連接腦波儀成功！";
label1.Text = "雜訊: " + e.ThinkGearState.PoorSignal;
label2.Text = "放鬆: " + e.ThinkGearState.Meditation;
label9.Text = "集中度" + e.ThinkGearState.Attention;
label4.Text = "" + e.ThinkGearState.Raw;
label5.Text = ("Alpha1:" + a1);
label10.Text = ("Alpha2:" + a2);
label14.Text = ("Alpha:" + a3);
label7.Text = ("Beta1_1:" + b1);
label11.Text = ("Beta_2:" + b2);
label15.Text = ("Beta:"+b3);
label8.Text = ("Gamma1_1:" + c1);
label12.Text = ("Gamma1_2:" + c2);
label16.Text = ("Gamma1:"+c3);
label6.Text = ("Delta:" + i);

label13.Text = ("Date time" + DateTime.Now.Second.ToString());
// label13.Text = ("Date time" + DateTime.Now.ToString());
progressBar1.Value = (int)(e.ThinkGearState.Meditation);
progressBar2.Value = (int)(e.ThinkGearState.Attention);
try
{

//int counter  =0;
System.IO.StreamWriter file = new System.IO.StreamWriter(@"E:\micheal\專案\brian\test.txt", true);
string k0 = string.Format("" + DateTime.Now.Second.ToString());
string k1 = string.Format(","+e.ThinkGearState.Raw);
string k2 = string.Format("," + a3);
string k3 = string.Format(","+b3);
string k4 = string.Format("," + c3);
string k5 = string.Format("," + i);
string lines = k0+k1+k2+k3+k4+k5+ Environment.NewLine;
file.WriteLine(lines);
textBox1.Text += lines + Environment.NewLine;
// for ((line = file.ReadLine()) != null);
// {
//   string[] position = line.Split(',');
//   chart1.Series.Clear();
//   Series series1 = new Series("Alpha");
//  series1.ChartType = SeriesChartType.Spline;
//  series1.BorderWidth = 3;
//   }
file.Close();```

• 已編輯 2016年6月20日 上午 03:15 修改標題贅字
2016年6月14日 下午 03:27

### 所有回覆

• 失敗有錯誤訊息嗎?應該是讀fsw吧，或者直接處理lines字串...
2016年6月15日 上午 12:38
• 沒有信訊
2016年6月15日 上午 04:36
• 沒有信訊
讀.txt file失敗喔
2016年6月15日 上午 04:37
• ```FileStream fsw = new FileStream(@"E:\micheal\專案\brian\test.txt", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, FileShare.Read);
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
{
string sTemp = temp.GetString(b);
string[] position = sTemp.Split(',');
chart1.Series.Clear();
Series series1 = new Series("Alpha");
series1.ChartType = SeriesChartType.Spline;
series1.BorderWidth = 3;
}```

FileStream 類別

2016年6月15日 上午 10:47

不精確的問法，就會得到隨便猜的答案；自己都不肯花時間好好描述問題，又何必期望網友會認真回答？

2016年6月15日 下午 03:47
• 謝謝您~

我回去試試看

2016年6月16日 上午 04:45
• 錯誤資訊如下:

1.類型 'System.IO.IOException' 的未處理例外狀況發生於 mscorlib.dll

2.其他資訊: 由於另一個處理序正在使用檔案 'G:\micheal\專案\brian\test.txt'，所以無法存取該檔案。

以上.

看起來需要,暫停寫入後讀入資料但是在使用fsw時無法使用file.colse();

2016年6月16日 下午 04:21
• ```               string[] position = lines.Split(',');
chart1.Series.Clear();
Series series1 = new Series("Alpha");
series1.ChartType = SeriesChartType.Spline;
series1.BorderWidth = 3;

直接處理lines字串，應該不用讀文字檔吧...

2016年6月17日 上午 12:44
• 1.因為要做離線測試,故必須經檔案轉入系統.

2.可以用EXCEL 轉到chart嗎?

3.不過書上都先轉到sql資料庫,但是教授不肯.

2016年6月17日 上午 04:39
• 先file.Close再去讀fsw吧...
2016年6月17日 上午 05:51
• 不行耶,因為fsw 不能使用file.close 指令,故當fsw跑完後沒有釋放fsw,return 執行後,system.io.streamwriter file就會停止執行,訊息就會出現. 由於另一個處理序正在使用檔案 'G:\micheal\專案\brian\test.txt'，所以無法存取該檔案。
2016年6月18日 上午 08:54
• 看起來沒生錯誤

chart 無顯示

1.程式內容如下:

using (var wStream = new StreamWriter(filePath, true))
{
wStream.WriteLine(lines);
}
using (var rStream = new StreamReader(filePath))
{
string line;
while ((line = rStream.ReadLine()) != null)
{
byte[] b = new byte[1024];

UTF8Encoding temp = new UTF8Encoding(true);
string sTemp = temp.GetString(b);
string[] position = sTemp.Split(',');
chart1.Series.Clear();
Series series1 = new Series("Alpha");
series1.ChartType = SeriesChartType.Spline;
series1.BorderWidth = 3;
}
}

}
catch
{

textBox1.Text = "錯誤";

}
//

return;

}
else
{
label3.Text = "連接腦波儀成功！請戴妥腦波儀並耐心等待";
label1.Text = "雜訊: " + e.ThinkGearState.PoorSignal;
label2.Text = "放鬆: 0";

}

//  };
}));
}

2.txt file內容如下:

39,54,-16.44874,-13.05711,-51.44073,1144.569

40,-215,-12.00683,-3.14842,-7.272099,230.4324

41,-77,-417.2419,162.4498,-356.7431,2170.175

42,180,5.355457,12.32506,-49.32202,1278.718

44,-545,1.766602,0.5977364,10.19062,710.5628

45,704,-109.741,-65.64371,-13.41406,1864.311

46,115,-580.0934,82.87411,-156.1106,2545.038

48,1408,4.836372,-3.057671,-7.03736,1048.853

49,-362,-23.60347,-1.110779,-2.17679,470.5508

50,-1253,-67.78057,-34.28656,4.611311,817.1602

54,-899,-375.0782,273.0328,-271.6377,1183.259

58,-394,-158.8452,712.5968,-102.4822,941.6111

2016年6月19日 下午 02:50