批量判断EXE内有没有Bind着4个字符,如果有就删除着1行,没有就保留
比如
LISTBOX1的内容是:
D:\1.exe
D:\2.exe
D:\3.exe
D:\4.exe有N行
然后判断D:\1.exe内有没有Bind着4个字符,如果有就删除第一行
如果没有就保留,在判断下1行,最后剩下的都是EXE内没有Bind字符的 EXE路径

解决方案 »

  1.   


       Pos('Bind',Listbox1.Items[i])
      

  2.   


    var
      Str:TStringList;
      i:Integer;
    begin
      Str:=TStringList.Create;
      try
        Str.Add('D:\1.exe');
        Str.Add('D:\2.exe');
        Str.Add('D:\3.exe');
        Str.Add('D:\bind.exe');
        for i:=0 to Pred(str.Count) do
        begin
          if Pos('bind',Str.Strings[i])>0 then
          Str.Delete(i);
        end;
      finally
        FreeAndNil(Str);
      end;
    end;
      

  3.   

    楼上的理解有误,它是判断EXE文件里面是否包含bind字符。我们知道EXE一般是以MZP开头。
      

  4.   

    只告诉我搜索EXE字符串的代码就可以,我把EXE加载到MEMO1在搜索MEMO1里的字符,没想到MEMO1里只显示个MZP,还有什么办法实现这个 功能呀
      

  5.   

    把EXE载入到Memo中,用Pos查一下EXE中是否有bind明文,注意区分大小写。
      

  6.   

    2楼3楼我说的不是判断文件的名字是不是带Bind,
    而是判断EXE中的字符串是否有BIND把EXE加载到MEMO中的话就只会显示MZP着3个字符其他的就不显示了.....着中做发行不通
      

  7.   

    给你个提示:不要太依赖别人,自己多查资料。
    Exe文件是流式文件,用流式加载,每次读取64K。然后看读取的数据中是否包含字串,若找到则结束;否则读下一个,明白吗?
      

  8.   

    用文件流装载文件,分断读取找Bind就是了