線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1719
推到 Plurk!
推到 Facebook!

請教一個SPCOM的問題

尚未結案
aaron8738352
一般會員


發表:13
回覆:7
積分:4
註冊:2003-12-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-09 20:34:00 IP:140.134.xxx.xxx 未訂閱
請教各位先進,現在我使用SPCOM若我由硬體輸入一比二位元的數字,然後我要將他在MEMO中,輸出十進位數字該如何寫勒!!請各位先進指教一下
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-11 08:46:59 IP:210.61.xxx.xxx 未訂閱
aaron8738352您好 定義一個char*字元陣列, 並初始化 然後在OnRxChar事件中讀進Comport Buffer的值 利用sprint傾印值到記憶體comvalue變數 然後用memo.lines.add(comvalue) 大致的步驟就這樣
aaron8738352
一般會員


發表:13
回覆:7
積分:4
註冊:2003-12-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-11 10:19:16 IP:140.134.xxx.xxx 未訂閱
您好: 這是我目前寫好的程式, void __fastcall TForm1::Comm1ReceiveData(TObject *Sender, Pointer Buffer, WORD BufferLength) { //AnsiString InMessage = (char*) Buffer; // Memo1->Lines->Add(InMessage); AnsiString InMessage = (char*) Buffer; Memo1->Lines->Add(InMessage); 抓近來的資料類似圖中所示,我是傳進一筆2進位的資料,其值為7(00000111B) 我現在部會把他轉成數字在memo上,請各位先進可以指教一下 }
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-11 10:27:44 IP:211.21.xxx.xxx 未訂閱
void __fastcall TForm1::Comm1ReceiveData(TObject *Sender, Pointer Buffer,
      WORD BufferLength)
{
  AnsiString InMessage = (char*) Buffer;
  AnsiString sOutput;
  sprintf('%d %d',InMessage[1],InMessage[2]);
  Memo1->Lines->Add(sOutput);
  把Buffer內的資料利用sprintf函式傾印到變到sOutput,%d為數值,
  要十六進位, 您可能要查一下help....
}
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-11 10:29:54 IP:211.21.xxx.xxx 未訂閱
引言:
void __fastcall TForm1::Comm1ReceiveData(TObject *Sender, Pointer Buffer,
      WORD BufferLength)
{
  AnsiString InMessage = (char*) Buffer;
  AnsiString sOutput;
  sprintf('%d %d',InMessage[1],InMessage[2]);
  Memo1->Lines->Add(sOutput);
  把Buffer內的資料利用sprintf函式傾印到變到sOutput,%d為數值,
  要十六進位, 您可能要查一下help, 我手上沒有BCB, 只憑以前的經驗
  跟您說.
}
系統時間:2024-04-19 9:18:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!