今天又遇到一个问题  #0 #0 #0 char  如何转换成 string ?  而且string  还要可以ASCII  hex 的形式显示出来.弄来弄去总是没有显示. function StrToHexStr(const S: string): string;
var
    I:Dword;
begin
  for I := 1 to Length(S) do
  begin
      Result := Result + IntToHex(Ord(S[I]), 2)+ ' ' ;
  end;
end;向大家请教如何解决.

解决方案 »

  1.   

    s: string;s:=#0+#0+#0;string 如上面.
      

  2.   

    string的结束符就是#0,所以,#0+#0+#0就是#0就是一个空串
      

  3.   

    其实我发现我自己没有说清楚,  
    我是想问:假如
    a:array[0..5] of char;
    s:string;a[0]:=#0
    a[1]:=#52
    a[2]:=#32
    a[3]:=#0
    a[4]:=#6
    a[5]:=#9我如何才能把它变成一个string   使其中的#0  可以得以保留, 还可以通过Hex格式显示出来
      

  4.   

    不懂你为何不用定长String?你这个数组直接用s := String(a)是不行的,要一个个字符复制过去var
       a:array[0..5] of char;
       s:string;
       i,j:integer;
    begin
       a[0]:=#0 ;
       a[1]:=#52;
       a[2]:=#32;
       a[3]:=#0 ;
       a[4]:=#6 ;
       a[5]:=#9 ;
       SetLength(s , High(a)-Low(a)+1);
       j := 0;
       for i:=Low(a) to High(a) do
       begin
          j := j + 1;
          s[j] := a[i];
       end;
       ShowMessage(IntToStr(Length(s)));
    end;
      

  5.   

    #0(NULL)是字符串类型(String)的结束符。-_-!!
    你在中间插入#0,字符串当然就结束.......c_c
      

  6.   

    先 SetLength,再一个字符一个字符复制。
      

  7.   

    SetLength
    +
    Move 也可以
      

  8.   

    var
      str: string;
    begin
      setlength(str,10);
      fillchar(pchar(str)^,length(str),#0);
      ShowMessage(StrToHexStr(str));
      

  9.   

    setlength(str,3)
    str[1]:=#0;
    str[2]:=#0;
    str[3]:=#0;