我现在Delphi6+MSComm开发串口通信程序。可接收十六进制的数据时老是收不对。
请问应该如何处理Olevariant类的数据。

解决方案 »

  1.   

    在默认地情况下,Mscomm控件的数据接收模式是文本,所以要接收字节数据前要设置接收模式。MSComm1.InputMode := comInputModeBinary ;在触发MscommOnComm事件里,定义一个Variant变量。
    var varInput :Variant;
        I:integer;
    begin
       if Mscomm1.CommEvent =2 then
       begin
          varInput:=MSComm2.Input;
          for I:=0 to VarArrayHighBound(varInput,1) do
                //从第一个字节到这个一维数组的最后一位
              begin
                   {在此处加入处理这些数据的代码}
              end;
       end;
    end;
    {以上代码,我在一个软件中实际使用中,应该没有错误。若高手们有其他更好的办法,希望能不吝赐教}
      

  2.   

    最关键的问题是我没有设设置MSComm1.InputMode := comInputModeBinary ;谢谢你告诉我。
    可我不知道怎么给分啊。
      

  3.   

    http://soft.56kc.com/FileDown.aspx?FID=386http://soft.56kc.com/Filedown.aspx?FID=167http://www.56kc.com/web/technology/chuangkou.htm