var
  barray:array[1..255] of byte;
  str,str2:string;  str:='我a';
  for i:=1 to length(str) do  //这里的length(str)=3
    begin
      barray[i]:=byte(str[i]);
    end;怎么把barray的内容重新转化为'我a',放到str2呢?
即str2:=barray  ??????

解决方案 »

  1.   

    var 
     str,str2:widestring;  //支持unicode
      

  2.   

    var
      barray:array[0..254] of DWORD;
      str,str2:widestring;
      i :integer;
    begin
      str:='我们爱上你了暗暗gasdgsdg';
      for i:=0 to Length(Str) do
        barray[i] := DWORD(str[i]);  SetLength(Str2,Length(Str));
      for i:=0 to Length(Str2) do
        Str2[i] := WideChar(barray[i]);  ShowMessage(Str2);
    end;
      

  3.   

    中文那个我也不知道怎么处理,sorry,帮你顶,兄弟
    var
      barray:array[1..255] of byte;
      str,str2:widestring;
      i:Integer;
     begin
      str:='我a';
      for i:=1 to length(str) do  //这里的length(str)=3
        begin
          barray[i]:=byte(str[i]);
          showmessage(chr(barray[i]));      //-----------------------------
        end;
      

  4.   

    to  Kevin_Lmx(繁华阅尽):
      不要把barray:array[1..255] of byte 改为barray:array[0..254] of DWORD,
    因为这个一个协议的定义来的
      

  5.   

    to chinaandys(风流泪&VS&雨含笑):
      我用的就是你那种做法,后来碰到了中文内容,才来这里问的.
      

  6.   

    如果纯英文的话,连widestring都可以不用,直接string就行了.
      

  7.   

    var
      barray:array[1..255] of Byte;
      str,str2:string;
      i :integer;
    begin
      str:='我们爱上你了暗暗gasdgsdg';
      for i:=1 to Length(Str) do
        barray[i] := Byte(str[i]);  SetLength(Str2,Length(Str));
      for i:=1 to Length(Str2) do
        Str2[i] := Char(barray[i]);  ShowMessage(WideString(Str2));
    end;
      

  8.   

    for i:= 1 to sizeof(barrary) do
      str2[i]:= Chr(barrary[i]);