在串口通信怎么把Memo中的数字和字符转变为十六进制发送和接收?(100分)

  • 主题发起人 主题发起人 雨中飘
  • 开始时间 开始时间

雨中飘

Unregistered / Unconfirmed
GUEST, unregistred user!
我是名初学delphi编程,我自己编写了一个串口通信,用SPCOMM控件,怎么把MEMMOZ中字符和数字转变为十六进制发送和接收?
哪位大狭知道,能否告诉我?谢谢!
 
搜一搜吧,论坛中已经有相关的帖子了。
 
为什么要转换发送??直接发送不就OK了吗???
 
这个好象SpComm自带的例子里就有现成的Demo吧,你按照它的实现方式来做就好了
 
在memo中输入数字和字符怎么把输入的内容转化为十六进制发送和接收
 
不用转,直接发送就行了
 
有个问题是,我发送成功后怎么把发送的数字,怎么在接收区中用十六进制显示出来,不知道哪位知道,帮我解答,再次谢谢!
 
function StrToHex(SourceStr: WideString): WideString;
var
hexstr: string;
i : integer;
begin
result := '';
hexstr := '';
for i := 1 to Length(SourceStr) do
hexstr := hexstr + IntToHex(Word(SourceStr), 2);
//hexstr := hexstr + AnsiUpperCase(IntToStr(Ord(SourceStr)));
//hexstr := hexstr + AnsiUpperCase(Byte(SourceStr));
Result := hexstr;
end;
//十六进制转Ascii码
function HexToStr(SourceStr: WideString): WideString;
var str:string;
text:string;
BX:string;
begin
//BX:=copy(cmd,length(cmd),1);
//delete(cmd,length(cmd),1);
while length(SourceStr)<>0 do
begin
str:=copy(SourceStr,1,2);
text:=text+chr(ord(strtoint('$' + str)));
delete(SourceStr,1,2);
end;
result:=text;
end;
 
就是IntToHex涵數...
 
再次谢谢siva,我还想知道怎么把字符,和数字发送和显示出来
 
发送
var
str :string;
begin
....
comm1.writecommdata(@str,length(str));
....
end;

接收显示
move(buffer,pchar(@ss)^,bufferlength);
memo1.text :=ss;
 
用十六进制显示,怎么在把”123“用十六进制”31 32 33”怎么在其中加空格?怎么编写?
 
留一个EMAIL下来,我给个人家的DEMO你瞧瞧吧
 
我的email:lixuelei98@163.com,哪位大侠知道就告诉我吧
 
那位大侠知道在显示十六进制数时,怎么在中间加空格?
 
后退
顶部