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

SPCOMM在XE5上有問題,傳資料異常

缺席
jackiemi2_seed
中階會員


發表:33
回覆:94
積分:75
註冊:2006-09-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-11-07 09:38:29 IP:118.163.xxx.xxx 訂閱

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
附加檔案:527aef1598f92_SPComm.pas
jackiemi2_seed
中階會員


發表:33
回覆:94
積分:75
註冊:2006-09-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-11-15 14:32:12 IP:118.163.xxx.xxx 訂閱
再一次自問自答
文字變數由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
系統時間:2017-10-17 17:29:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!