首页
社区
课程
招聘
[已解决] [悬赏]翻译delphi到vc++ 10.00雪花
发表于: 2017-8-5 12:44 3035

[已解决] [悬赏]翻译delphi到vc++ 10.00雪花

2017-8-5 12:44
3035

function HexScan(t:tstream; s:string):integer;

var

  i, j: integer;

  p: pchar;


begin

  Result:=-1;

  getmem(p, t.size);                  // ---- 分配内存

  t.readbuffer(p^, t.size );        // ---- 读

  for i:=0 to t.size -1 do

  begin

    for j:=1 to length(s) do

    begin

      if p[i+j]<>s[j] then             // ---- 有一个不同即退出

      begin

        break;

      end;

    end;

    if j>length(s) then               // ---- 依据

    begin

      Result:=i+1;

      break;                 

    end;

  end;

  freemem(p);

  t.seek(0, soBeginning);      // ---- 返回文件头

end;

以上为delphid 写法 求用vc++写法


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 269
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
坐等高手
2017-12-27 10:01
0
雪    币: 3700
活跃值: (2659)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
5
w小my 坐等高手
还需要吗?
2017-12-27 10:53
0
雪    币: 269
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
需要的
2017-12-27 14:27
0
雪    币: 3700
活跃值: (2659)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
7
w小my 需要的
static  int  HexScan(FILE  *pFile,const  char  *pS)
{
      int  i,j;
      unsigned  char  *pBuf=NULL;
      int  Result=-1;
      int  curLen=0;
      int  sLen=strlen(pS);

      fseek(pFile,0,SEEK_END);
      unsigned  int  fLen=ftell(pFile);
      fseek(pFile,0,SEEK_SET);
      pBuf=new  unsigned  char[fLen];
     
      while(curLen<fLen)
              curLen+=fread(pBuf+curLen,sizeof(unsigned  char),fLen,pFile);
      for(i=0;i<fLen;i++)
      {
              for(j=0;j<sLen;j++)
              {
                      if  (pBuf[i+j]!=*(unsigned  char*)&pS[j])
                              break;
              }
              if(j==sLen) 
              {
                      Result=i;//+1;
                      break;                                 
              }
      }
      delete  pBuf;
      fseek(pFile,0,SEEK_SET);
      return  Result;
}
2017-12-27 16:47
0
游客
登录 | 注册 方可回帖
返回
//