关于delphi一段代码,高手指点 if (p[5]='*') and (p[8]='*') and ( p[9]='*'
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='*') and (p='*') and ( p='*') and (p='%') 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)); if (p='*') and (p='*') and ( p='*') and (p='%') then//
这一句有问题 不能保证 p 存在 应该验证p的长度大于10
页:
[1]