f:=TFileStream.Create(sr.Name,fmopenread);
  setlength(str,f.Size);
  f.Read(str[1],f.Size);
  if pos(s,str)>0 then这四句话是什么意思?小弟新手,请各位老手继续带一下,非常感谢!!!

解决方案 »

  1.   

    应该是对文件的操作
    f:=TFileStream.Create(sr.Name,fmopenread);//创建一个只读文件流
      setlength(str,f.Size);//设定str的长度 估计是个字符数组吧
      f.Read(str[1],f.Size);//讲文件内容读入str中
      if pos(s,str)>0 then //查找指定内容,如果存在则进行相关操作
      

  2.   

    补充下1楼:
    setlength(str,f.Size);//给字符数组分配内存,设定str的长度,这里的str是delphi里面string类型
    所以下面是从str[1]开始的
      

  3.   

    整个代码的含义是把文件从流中,读到内存中  f:=TFileStream.Create(sr.Name,fmopenread);//这个是创建文件流
      setlength(str,f.Size);//根据流的大小为Str分配内存
      f.Read(str[1],f.Size);//将文件内容读入str中
      if pos(s,str)>0 then //判断str是否存在指定字串这个代码在大文件下具有明显的缺陷,首先把流全部加到到str中,如果这个文件很大100M,那么程序效率非常低下,如果文件达到2G,则程序会直接爆掉。
      

  4.   

    sr.name应该是findfirst/findnext这对目录查找函数得到一个符合匹配条件的文件名