果有个string类型变量s 
那么我想给你赋16进制的值,可以用 
s:=#0#1之类的 
现在是我有一个无符号整形变量i(i <65535) 
我怎样加i添加到s中并将s存到二进制文件中,用winhex打开要求能实现以下这种效果 例如i=1 
则操作后winhex显示01 
若 
i=0 
则显示00
若i=65535
则显示FF
若i=1000
则显示03e8 
其他依次类推 初学delphi,这方面不大懂之前问题没完全说清

解决方案 »

  1.   

    我自己的一个解决方法是分两次对s进行 + 运算 
    不过这样效率有点低
    s:=s+Chr(i mod 256)
    s:=s+Chr(i div 256);
      

  2.   

    if i>=1000  then
    ShowMessage(IntToHex(i,4))
    else
    ShowMessage(IntToHex(i,2));
      

  3.   

    这个存到二进制文件里,用winhex打开不能满足我的要求
      

  4.   

    这个跟string有什么关系啊
    直接写文件呗
    var
      i: Integer;
      fs: TFileStream;
    begin
      i := 65535;
      fs := TFileStream.Create('F:\a.dat', fmCreate);
      try
        fs.Write(i, SizeOf(i));
      finally
        fs.Free;
      end;
    end;
      

  5.   

    因为需要将string用zlib压缩有写入文件,并且保证写入的文件加密后符合我说的那个要求