我现在在弄个串口程序!已经建立了和R232的通讯,
但是我该怎么从收到的信号中取出字节呢???
该怎么从收到的信号中取出字节呢???
该怎么从收到的信号中取出字节呢???这个问题我捆了好久,也试过不少办法的(用copy()函数不行啊)!!!
例如:  copy(pchar(@rbuf),ipos+1,4)

解决方案 »

  1.   

    不知道,可不可以读到stream中?
      

  2.   

    用WriteFile和ReadFile对串口进行读写了
      

  3.   

    用Move过程试试看吧。把缓冲区的字节读出来是吧。
    move(buffer^,rbuf,bufferlength);
    rbuf是自己定义的字节数组。
      

  4.   

    那你什么意思,不是读到字节数组了吗》还想怎样? str:=inttohex(rbuf[i],2);
      

  5.   

    我靠,刘艺那本Delphi 6企业级解决方案及应用剖析,串口通信部分这个样子的。
    API函数的就介绍一下结构、函数。最令人气愤的是,光盘上此章节的内容没有是第18章的,我日
      

  6.   

    procedure Tfm.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word); 
    var
    avgcount,h:integer;
    ipos:integer;  
    begin
      move(buffer^,pchar(@rbuf)^,bufferlength);
       for j:=1 to bufferlength do
       //将字节从数组中取出来转换为16进制字符串
       viewstr:=viewstr+inttohex(ord(rbuf[j]),2);
       ssstr:=copy(viewstr,13,2);
       rec:=strtoint('$'+ssstr);
    case rec of
    62:
    ipos:=0;
    for h:=0 to 8 do
           begin
           //从数组中取出字节(关键是这步不通!!!) 
           avgcount:=copy(pchar(@rbuf[j]),ipos+1,4);
           end;
    end;