SPCOMM在XE5上有問題,傳資料異常 |
缺席
|
jackiemi2_seed
中階會員 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
SPCOMM.pas來源 http://delphi.ktop.com.tw/board.php?cid=31&fid=77&tid=103028 依據上面網頁,最下面jkuotw兄回復的去修改, 再修改一個szInputBuffer變數,由char 改成ansichar szInputBuffer: array[0..INPUTBUFFERSIZE-1] of Char; => szInputBuffer: array[0..INPUTBUFFERSIZE-1] of AnsiChar; 傳資料指令 [code delphi] var ls_send:string; begin ls_send:='123456'; memo1.Lines.Add('send:' ls_send '**' inttostr(Length(ls_send))); Comm1.WriteCommData(PansiChar(ls_send),Length(ls_send)); [/code] 接收資料指令 [code delphi] var S:AnsiString; begin SetLength(S,BufferLength); Move(Buffer^,PansiChar(S)^,BufferLength); Memo1.Lines.Add('rec:' S); [/code] memo1裡面顯示的資料 send:123456**6 rec:123 用accessport捉到的傳送及接收資料都是 31 00 32 00 33 00(ascii碼16進位) 感覺接收沒問題,問題在傳送部份 SPCOMM.pas的WriteCommData有地方沒改到嗎??? 修改後的spcomm.pas如附加檔案 thanks
------
OS : Win 7 pro Program : Delphi 7 DataBase : Ms Sql 2008 |
jackiemi2_seed
中階會員 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
再一次自問自答
文字變數由string改成pansichar就可以了 [code delphi] var ls_send:PansiChar; begin ls_send:='123456'; memo1.Lines.Add('send:' ls_send '**' inttostr(Length(ls_send))); Comm1.WriteCommData(ls_send,Length(ls_send)); [/code]
------
OS : Win 7 pro Program : Delphi 7 DataBase : Ms Sql 2008 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |