各位大哥大姐帮忙啊!!我有一段代码,要求将字符型转换成十六进制进行比较,我如何转换啊.谢谢大家啊。
代码如下:
procedure TfrmComm.CommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
v ,strRecv: string;
aa:Tstringlist;
a1,a2,a3,a4,a5:string;
a6,a7,a8,a9,a10:string;
Count: integer;
begin
setLength(strRecv,BufferLength);
Move(Buffer^,pchar(strRecv)^,BufferLength);
mmoComm.Lines.Add('已收到:'+intTostr(BufferLength)+'字节的数据');
mmoComm.Lines.Add(strRecv);
aa:=Tstringlist.Create();
aa.LoadFromFile('c:\1.txt');
a1:=aa.Strings[0];
a2:=aa.Strings[1];
a3:=aa.strings[2];
a4:=aa.strings[3];
a5:=aa.strings[4];
a6:=aa.Strings[5];
a7:=aa.strings[6];
a8:=aa.strings[7];
a9:=aa.Strings[8];
a10:=aa.strings[9];
aa.free;
if //我要在这判断,用十六进制进行比较实现strrecv=02H 06H 00H......我如何实现这样的结果!先用strtofloat然后再TOhex吗??谢谢大家啊!!
strrecv='02,06,00,01,00,01,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,11,22,03' then
begin
v:=('02,06,00,01,00,01,'+a1+','+a2+','+a3+','+a4+','+a5+',11,22,03');//这里面也要换成十六进制的啊。
Count:= Length(v);
comm.writecommdata(pchar(v),count);
end;
再次谢谢大家啊!!帮我啊。!!
代码如下:
procedure TfrmComm.CommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
v ,strRecv: string;
aa:Tstringlist;
a1,a2,a3,a4,a5:string;
a6,a7,a8,a9,a10:string;
Count: integer;
begin
setLength(strRecv,BufferLength);
Move(Buffer^,pchar(strRecv)^,BufferLength);
mmoComm.Lines.Add('已收到:'+intTostr(BufferLength)+'字节的数据');
mmoComm.Lines.Add(strRecv);
aa:=Tstringlist.Create();
aa.LoadFromFile('c:\1.txt');
a1:=aa.Strings[0];
a2:=aa.Strings[1];
a3:=aa.strings[2];
a4:=aa.strings[3];
a5:=aa.strings[4];
a6:=aa.Strings[5];
a7:=aa.strings[6];
a8:=aa.strings[7];
a9:=aa.Strings[8];
a10:=aa.strings[9];
aa.free;
if //我要在这判断,用十六进制进行比较实现strrecv=02H 06H 00H......我如何实现这样的结果!先用strtofloat然后再TOhex吗??谢谢大家啊!!
strrecv='02,06,00,01,00,01,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,11,22,03' then
begin
v:=('02,06,00,01,00,01,'+a1+','+a2+','+a3+','+a4+','+a5+',11,22,03');//这里面也要换成十六进制的啊。
Count:= Length(v);
comm.writecommdata(pchar(v),count);
end;
再次谢谢大家啊!!帮我啊。!!
function stringtohex(const s:string):string;
var i:integer;
tret:string;
begin
tret:='';
for i:=1 to length(s) do
tret:=tret+inttohex(ord(s[i]),2)+' ';
result:=tret;
end;