B:array[0..15] of byte
S:string;已知B,如何将B 转化为S 然后输出S

解决方案 »

  1.   

    S := StrPas(@B);
    记得B里要有 #0
      

  2.   

    For i:=low(b) to high(b) do
    begin
      s:=s+char(b[i]);
    end;
      

  3.   


    Move(b[0],s[1],Length(b));
      

  4.   

    方法很多,最简单的方法:type
      TCharArray = array[0..15] of char;S := TCharArray(B);
      

  5.   

    S:string;
    B:array[0..15] of byte 数据如下
    (105, 141, 81, 161, 157, 138, 18, 28, 229, 129, 73, 157, 123, 112, 22, 104)采用这个方法后
    For i:=low(b) to high(b) do
    begin
      s:=s+char(b[i]);
    end;S变成了'i峇?'#$1C'鍋I漿p'#$16'h' 乱码我想要的结果是S 变成这样的一串代码:A8698009BCE6D1B8C2128EDDEFC25AAD 如何实现呢? 
      

  6.   

    var
    s:string;
    pc:pchar;
    pb:pbyte;
    ac:array[1..100] of char;
    ab:array[1..100] of byte;
    i:integer;
    begin
    s:='this is a test';
    pc:=pchar(s); //string->pchar
    pb:=pbyte(pc); //pchar->pbyte
    for i:=1 to length(s) do 
    begin
    ac[i]:=s[i]; //string->arrary of char
    ab[i]:=byte(s[i]); //string->arrary of byte 
    end;s:=pc; //pchar->string
    s:=string(pb); //pbyte->string
    s:=c; //arrary of char->string;end;
     
      

  7.   

    1、
    var 
    buf:array[1..100] of byte; 
    S1:string; 
    s2: string; 
    begin 
    s1 := '12345'; 
    Move(s1[1],buf[1],5); 
    SetLength(s2,5); 
    Move(buf[1],s2[1],5); 
    ShowMessage(s2);   
    2、
    var 
    buf:array[1..100] of byte; 
    S1:string; 
    s2:string; 
    begin 
    s1 := '12345'; 
    Move(s1[1],buf[1],5); 
    s2 := StrPas(pchar(@buf[1])); 
    ShowMessage(s2);  
    3、
    for i:=1 to 100 do 
    begin 
    s:=s+chr(buf[i]); 
    end;
     
      

  8.   

    SetLength(s, Length(B));
    Move(B, Pointer(S)^, Length(B));
      

  9.   

    for i:=1 to 100 do 
    begin 
    s:=s+inttohex(buf[i],2); 
    end;