資料短少的問題 |
尚未結案
|
properwu
一般會員 發表:17 回覆:21 積分:7 註冊:2003-03-14 發送簡訊給我 |
|
miyu
中階會員 發表:13 回覆:96 積分:91 註冊:2003-05-01 發送簡訊給我 |
|
Windyboy
版主 發表:7 回覆:119 積分:210 註冊:2002-11-07 發送簡訊給我 |
|
properwu
一般會員 發表:17 回覆:21 積分:7 註冊:2003-03-14 發送簡訊給我 |
感謝兩位的熱心 但還是有問題說 如果我不用字串來做
就用陣列來控制 但會出現 error message:Cannot convert 'char' to 'char'
請問這樣是什麼問題呀 程式如下:(目的為抓到陣列中 @,2,2,1 四個連續字元
作為程式告一段落的判斷 buff[1024]裡放了許多資料..) int j=0;
if(buff[j]=="@")
{
if(buff[j 1]=="2" && buff[j 2]=="2" && buff[j 3]=="1")
{
ShowMessage("Get my char");
}
else
{
j=j 1;
}
}
|
Windyboy
版主 發表:7 回覆:119 積分:210 註冊:2002-11-07 發送簡訊給我 |
|
properwu
一般會員 發表:17 回覆:21 積分:7 註冊:2003-03-14 發送簡訊給我 |
|
miyu
中階會員 發表:13 回覆:96 積分:91 註冊:2003-05-01 發送簡訊給我 |
引言: 感謝兩位的熱心 但還是有問題說 如果我不用字串來做 就用陣列來控制 但會出現 error message:Cannot convert 'char' to 'char' 請問這樣是什麼問題呀 程式如下:(目的為抓到陣列中 @,2,2,1 四個連續字元 作為程式告一段落的判斷 buff[1024]裡放了許多資料..) if(buff[j]=="@")吐嘈一下, 照你的code來看, 我想Error Message 應該是: "Cannot convert 'char' to 'char *'" 才對... |
miyu
中階會員 發表:13 回覆:96 積分:91 註冊:2003-05-01 發送簡訊給我 |
引言: 感謝 Windyboy 前輩 這個char的問題ok了 不過因為陣列中的數值是由rs232傳入 並不是同時input 而是類似一秒傳幾個值寫入陣列 這樣我該如何 能從陣列中判斷出我要的值呢 用if迴圈好像不太適合 條件不對就不做 不能持續的判斷 while迴圈去判斷陣列的值又會發生錯誤 各位前輩 給個方向吧 >>< face="Verdana, Arial, Helvetica"> 你要作什麼? 找一個pattern? 如果你可以固定接收一個完整的packet, 那可以考慮整筆資料收完以後再search. 不行的話, 那至少你應該知道這一次收進來的資料有多長吧, 就以那個長度為搜索範圍. 如果找到你要的pattern 或是 pattern 片斷, 就改變 state 去記錄.. |
properwu
一般會員 發表:17 回覆:21 積分:7 註冊:2003-03-14 發送簡訊給我 |
這是之前有一位前輩提供的方法
不過我有遇到一些問題 提出來跟大家討論一下
(1)what true?
(2)作用為何?
(3)無窮迴圈? 程式就一直run在這
謝謝大家.. void __fastcall TForm1::Button2Click(TObject *Sender)
{
char buff[1024];
DWORD nBytesRead,dwEvent,dwError,count;
COMSTAT cs;
char *p; count=0;
p=&buff[0]; while(true) // (1)what true?
{
Application->HandleMessage(); // (2)作用為何?
ClearCommError(hComm,&dwError,&cs);
if(cs.cbInQue > 0) // (3)無窮迴圈?
{
ReadFile(hComm,p,1,&nBytesRead,NULL);
count=count nBytesRead;
p=p nBytesRead;
}
if(count>=1024) break;
}
}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |