从memo中逐行提取,转为16进制,每行延时200毫秒向串口写入 ( 积分: 100 )

  • 主题发起人 主题发起人 xteam
  • 开始时间 开始时间
X

xteam

Unregistered / Unconfirmed
GUEST, unregistred user!
参照王秉举等写的《Delphi环境下利用ApdComPort控件开发串口通信程序》程序如下
with memo.Lines do
begin
for i := 0 to count - 1 do
begin
ApdComPort.Output := Strings + #10;
end;
我想从memo中逐行提取后,再转为16进制,每行延时200毫秒向串口写入,如何实现?
请高手指教,谢谢!!
 
参照王秉举等写的《Delphi环境下利用ApdComPort控件开发串口通信程序》程序如下
with memo.Lines do
begin
for i := 0 to count - 1 do
begin
ApdComPort.Output := Strings + #10;
end;
我想从memo中逐行提取后,再转为16进制,每行延时200毫秒向串口写入,如何实现?
请高手指教,谢谢!!
 
with memo.Lines do
begin
for i := 0 to count - 1 do
begin
ApdComPort.Output := IntToHex(strtoint(Strings), 2) + #10;
sleep(200);
end;
你试试
 
谢谢,但提示转换有问题:''AA 01 A1' is not a valid integer value'
 
我这倒有一个串口调试工具,带源码的,感觉还是蛮好用的,你想要的话,留个EMAIL吧
 
你原来memo中的就是16进制格式的数据?我以为是10进制的
with memo.Lines do
begin
for i := 0 to count - 1 do
begin
ApdComPort.Output := '$'+Strings + #10;
sleep(200);
end;
 
谢谢2位,不好意思,刚看了帮助,发送的指令如下:
1、adpcomport.output的是string;
2、putblock的是block:
function PutBlock(const Block;const Len:word):integer;

如果是16进制,应该是用putblock了,但如何转换呢?
 
EMAIL:
dser@top81.cn

谢谢app2001
 
发给你了
 
没收着,麻烦再发一个:jjyy0123456@yahoo.com.cn,谢谢:)
 
谢app2001,yahoo的邮箱里收到了[:)]
 
那就好,嘿
 
见鬼了,怎么循环output出去的只是第一行啊,而同时我把strings写到另外一个memo中的记录却是从第一行到最末一行,周而复始的。:《
 
怪了,为何用以下代码又可以实现循环的发送????????
begin
with Table do
begin
disablecontrols;
try
first;
while not eof do
begin
s:=fieldbyname('ID').asstring;
.....s转为hex
comport1.putblock....
next;
end;
finally
enablecontrols;
end;
end;

但是用这个方式感觉是一口气发送出去的,比如ID里面有几行,这几行感觉是同时发送出去,没有实现逐行发送的功能,谁能帮帮我:《《《《
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
632
import
I
I
回复
0
查看
772
import
I
后退
顶部