请问专家们一个问题:有这样一段16进制数据:e2ce 0000 e2ce 0000 e2ce 0000,需要将字符串中“e2ce”提取出来并高低位换位为“cee2”并将其转化为十进制这个代码怎么用delphi实现呢?

解决方案 »

  1.   


    var
      s:string;
      t:widechar;
    begin
      s:='e2ce';
      t:=widechar(strtoint('$'+s)) ;
      ShowMessage(t);
    end;
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
    VAR
      s,sr: string;
      sa:array[0..5] of string;
      slist:Tstringlist;
      i: integer;
      tmp,res: word;
    begin
      slist:=Tstringlist.Create;
      slist.Delimiter:=' ';
      slist.DelimitedText:='e2ce 0000 e2ce 0000 e2ce 0000';
      sr:='';
      for i:=0  to 5 do
      begin
        if slist.Strings[i]='e2ce' then
        begin
          sa[i]:=slist.Strings[i];
          s:='$'+slist.Strings[i];
          tmp:=strtoint(s);
          res:=(tmp div 256)+(tmp mod 256)*256;
          sa[i]:=inttostr(res);
        end
        else
          sa[i]:='0000';
        sr:=sr+' '+sa[i];
      end;
      showmessage(sr);
      slist.Free;
    end;
      

  3.   


    var
      s:string;
      iTemp, iRes:integer;
    begin
      s:= 'e2ce';
      iTemp := StrToint('$'+s);
      iRes := lo(iTemp) shl 8 +  hi(iTemp) ;
      ShowMessage(intToStr(iRes));
    end;