台灣最大程式設計社群網站
線上人數
1562
 
會員總數:246690
討論主題:190103
歡迎您免費加入會員
討論區列表 >> C# >> 索引在陣列的界線之外
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
索引在陣列的界線之外
價值 : 50 QP  點閱數:1270 回應數:6
樓主

陳大黑
門外漢
0 6
134 9
發送站內信

各位好,小弟目前從com 接收data 並 對資料做分割,但在陣列的處理上似乎出了點問題
出現 " 索引在陣列的界線之外 " 的錯誤訊息

以下是我的程式碼
再麻煩高手幫忙檢視一下.....

private void _port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if (serialPort1.BytesToRead == 0) return;
string data = serialPort1.ReadExisting();
this.Invoke((EventHandler)delegate { CopyPaste(data); });
}

private void CopyPaste(string data)
{

string GS = "\u001D"; //字串中有<GS>作為分割符號
try
{
dataselect = Regex.Split(data, GS, RegexOptions.None);
string datadelete = dataselect[7].Remove(0, 2).TrimEnd();

if (checkBoxEnter.Checked)
{
datadelete += "\r\n";
}

if (this.WindowState == FormWindowState.Normal)
{
txtLabel.AppendText(datadelete);
// Array.Clear(dataselect, 0, 9);
}
else
{
Clipboard.SetDataObject(datadelete, true);
keybd_event(0x11, 0, 0, 0);
keybd_event(0x56, 0, 0, 0);
keybd_event(0x56, 0, 2, 0);
keybd_event(0x11, 0, 2, 0);
}
}
catch (Exception EX) { MessageBox.Show(EX.Message); }
}

}
[DllImport("user32.dll", SetLastError = true)]
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);


搜尋相關Tags的文章: [ C# ] , [ 索引在陣列的界線之外 ] ,
本篇文章發表於2017-09-28 18:20
1樓
回應

小魚
檢舉此回應
好歹也說明一下是在哪一行,

索引在陣列的界線之外,
假設你陣列中共有10個變數(index是0~9)
可是你卻想取得10以上index的欄位,
就會出錯了。
本篇文章回覆於2017-09-28 19:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

陳大黑
檢舉此回應
抱歉....

在這一行

dataselect = Regex.Split(data, GS, RegexOptions.None);
string datadelete = dataselect[7].Remove(0, 2).TrimEnd();

第一次執行的時候是沒問題
問題在於接受第二次資料的時候
本篇文章回覆於2017-09-28 19:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

小魚
檢舉此回應
那就是你中間某個地方邏輯錯誤了,
你可以下中斷點(F9)之後再逐步執行(F10)看看哪一行跑出來跟你要的不一樣,
就會找到問題點了。
本篇文章回覆於2017-09-28 21:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

陳大黑
檢舉此回應
我發現陣列的meber樹會變少,第一次分割完有20個才對,第二次進來變17 ......
本篇文章回覆於2017-09-28 22:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

春天
檢舉此回應
dataselect[7]
這邊陣列若只有7個就會出錯
查查你的資料來源吧,另外最好加個防呆

本篇文章回覆於2017-09-29 09:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

陳大黑
檢舉此回應
我的資料來源都會是固定的 只是內容不同
本篇文章回覆於2017-09-29 10:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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