Procedure TMainForm.TimerTimer(Sender: TObject);
var
   //afile:   TFileStream;
   str,da,StrToWrite,Str_Time : string;
   ii:integer;
   p: PChar;
Begin  p := StrPos(pchar(@rbuf), '#**');
  if (p[5]='*') and (p[8]='*') and ( p[9]='*') and (p[10]='%') then  //
  begin   memo1.lines.add('viewstring');
  end;
  //------------------------------------------------------------ End;
其中 rbuf 中存的是串口接收到的数据 一运行就在if 这个位置发现错误  我delphi初学,高手指点
谢谢 
StrPos函数说明  问题好像就出在这个函数首部 function StrPos(const Str1, Str2: PChar): PChar; $[SysUtils.pas
功能 返回指针字符串Str2在Str1中第一个出现的地址
说明 没有找到则返回空指针;StrPos('12345', '3') = '345'
参考 <NULL>
例子 Edit3.Text := StrPos(PChar(Edit1.Text), PChar(Edit2.Text));