如何儲存字串並判斷 |
答題得分者是:taishyang
|
messguy
一般會員 發表:1 回覆:2 積分:0 註冊:2008-09-18 發送簡訊給我 |
[code cpp] void __fastcall TForm1::Timer1Timer(TObject *Sender) { const BufSize = 4096; unsigned char Buffer[BufSize]; int nBytes = 0; while((nBytes=YbCommDevice1->ReadPackage(Buffer,BufSize))>0) // 用comport讀入數據 { AnsiString s; for(int i=0; i s = s.Trim(); if(!s.IsEmpty()) Memo1->Lines->Add(s); // 輸出s字串 } [/code] 上面是我的程式碼, 輸出的是這樣的數據 s = 7E 42 06 01 06 FF FF FF FF 06 7D 5D 0A 67 0E 4F 09 37 我想要取出紅色的字串 0A 67 0E 4F 09 37 做諸存並個別做判斷。 如:儲存a1[]=0A 儲存a2[] =67 等等 紅色部份的字串是動態的,從00 ~ FF 做動態的變動。 請問我要如何儲存,然後做判斷,並顯示出適當的信息呢? 因為剛接觸c builder ,所以請各位高手,指點一下吧。感謝 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
可以利用TStringList的CommaText
ex. AnsiString s = "7E 42 06 01 06 FF FF FF FF 06 7D 5D 0A 67 0E 4F 09 37"; TStringList *sl = new TStringList; sl->CommaText = s; for (int i=0; i < sl->Count; i ){ Memo1->Lines->Add(sl->Strings[i]); } delete sl;
編輯記錄
taishyang 重新編輯於 2008-09-18 12:37:14, 註解 無‧
|
messguy
一般會員 發表:1 回覆:2 積分:0 註冊:2008-09-18 發送簡訊給我 |
我的數據是一直持續接收到。 非常感謝副站長的指導,目前已經可以把所有字串分開,我有個問題想請問一下。 Memo1->Lines->Add(sl->Strings[i]); 這行語法是所有字串都會儲到S1裡面去。 目前我想個別判斷上面用框線框住的字串。 如:0A 的位址是 14 嗎? 如果我將程式碼改成這樣: Memo1->Lines->Add(sl->Strings[14]); 是不是s1裡面的值只有儲存 0A這個值。 我再用同樣的方法,用S2 來存 6A ,如法泡制,是不是應該就可以得到我想要得的結果了。 再請教一個問題,0A 這樣的值我要怎麼判斷,因為沒有用過,如:我想在 00 ~ 0A 的範圍之內,顯示,「向右轉】,是用位運算符號嗎?還是用關係運算符就可以了。因為沒有處理過這樣的字串,可以說一下觀念之類的嗎?或有參考的地方。 謝謝。
編輯記錄
messguy 重新編輯於 2008-09-18 23:04:46, 註解 無‧
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
Memo1->Lines->Add(sl->Strings[i]);
這行語法是所有字串都會儲到S1裡面去。 這行是讓Memo1顯示sl->Strings[i]的內容 目前我想個別判斷上面用框線框住的字串。 如:0A 的位址是 14 嗎? 如果我將程式碼改成這樣: Memo1->Lines->Add(sl->Strings[14]); 是不是s1裡面的值只有儲存 0A這個值。 我再用同樣的方法,用S2 來存 6A ,如法泡制,是不是應該就可以得到我想要得的結果了。 自行試試看就知道了 再請教一個問題,0A 這樣的值我要怎麼判斷,因為沒有用過,如:我想在 00 ~ 0A 的範圍之內,顯示,「向右轉】,是用位運算符號嗎? 還是用關係運算符就可以了。因為沒有處理過這樣的字串,可以說一下觀念之類的嗎?或有參考的地方。 謝謝。 如果是有範圍的限制,轉回數字即可判斷 ex BYTEval = StrToInt("0x" sl->Strings[14]); if (val < 0x0A){ XXX } |
messguy
一般會員 發表:1 回覆:2 積分:0 註冊:2008-09-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |