Byte配列→String変換

解決


Paper  2006-09-21 11:39:19  No: 23317  IP: [192.*.*.*]

Byte配列→String変換を行いたいのですが
どのように行うべきかわかりません。
ご存じの方がおりましたらご教授願えないでしょうか?

編集 削除
表裏 未里  URL  2006-09-21 13:04:14  No: 23318  IP: [192.*.*.*]

inttostrを使えばすぐですよv

例はこんな感じです↓
procedure TForm1.Button1Click(Sender: TObject);
var
  i:byte;
  S:string;
begin

   i:=100;
  S:=inttostr(i);

  showmessage(S);

end;

編集 削除
ご教授願えない?  2006-09-21 13:04:15  No: 23319  IP: [192.*.*.*]

いちあん
const
  bb: array[0..7]of byte =(48,49,50,51,52,53,54,0);
var
  cc: array[Low(bb)..High(bb)]of Char absolute bb;
begin
  ShowMessage(cc);
end;

編集 削除
表裏 未里  2006-09-21 13:05:12  No: 23320  IP: [192.*.*.*]

ごめんなさい、配列でしたね(^^;
私の発言撤回です。

編集 削除
ofZ  2006-09-21 17:03:54  No: 23321  IP: [192.*.*.*]

> Byte配列
の宣言はどうようなもの?

型宣言して
type  THoge=array[0..8] of Char;
var  hoge:THoge;
とか、型宣言なしで
var  hoge:array[0..8] of Char;
もしくは
var  hoge:array of Char;
で使ってるとか。

状況によって、回答が違うかもね。

編集 削除
にしの  2006-09-21 18:23:26  No: 23322  IP: [192.*.*.*]

こんな感じでしょうか。
SetLength(文字列型変数, バイト配列のサイズ);
CopyMemory(PCHAR(文字列型変数), @バイト配列[0], バイト配列のサイズ);

編集 削除
Paper  2006-09-22 10:52:17  No: 23323  IP: [192.*.*.*]

表裏  未里様、ご教授願えない?様、ofZ様、にしの様  ありがとうございました。

にしの様の処理がスマートですね。この方法にしようと思います。
ちなみに、とりあえず以下の方法で実現していました。

procedure TForm1.FormCreate(Sender: TObject);
var
a:array [0..31] of Char;
b:array [0..31] of BYTE;
S:string;
begin
s := 'TestString123';

StrLCopy(a, PChar(S), 31);
memo1.Lines.Append(String(a));

StrLCopy(PChar(@b), PChar(S), 31);
memo1.Lines.Append(String(PChar(@b)));
end;

皆様、ありがとうございました。

編集 削除