5,928
社区成员




SetLength(scmdatabyte, Trunc(Length(scmdata) / 2));
for i = 0 to Trunc(Length(scmdata) / 2) - 1 do
begin
scmdatabyte[i] := StrToInt('$' + scmdata[2 * i + 1] + scmdata[2 * i + 2]);
end;
function TDM_client.sendTranData(scmData: String): String;
var
scmdatabyte: array of byte;
begin
if not IdTCPClient1.Connected then
begin
try
IdTCPClient1.Connect;
except
Exit;
end;
end;
try
//问题从这里开始的********************************************************
//从这里开始 scmdata 是要发送的16进制字串 比如是:343032343431393439353830303030
//下面需要将 scmdata 字串转换为字节数据发送出去
//一个字节是8位,16进制字符串每个字符时4位,也就是每个字节存两个字符,外加一个“$”,如"$34"
SetLength(scmdatabyte, Trunc(Length(scmdata) / 2));
for i = 0 to Trunc(Length(scmdata) / 2) - 1 do
begin
scmdatabyte[i] := StrToInt('$' + scmdata[2 * i] + scmdata[2 * i + 1]);
end;
//IdTCPClient1.Write
//Result := IdTCPClient1.CurrentReadBuffer();
// 通讯结束
finally
IdTCPClient1.Disconnect;
end;
end;