Byte配列→String変換

解決


Paper  2006-09-21 20:39:19  No: 23317

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


表裏 未里  URL  2006-09-21 22:04:14  No: 23318

inttostrを使えばすぐですよv

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

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

  showmessage(S);

end;


ご教授願えない?  2006-09-21 22:04:15  No: 23319

いちあん
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 22:05:12  No: 23320

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


ofZ  2006-09-22 02:03:54  No: 23321

> 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-22 03:23:26  No: 23322

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


Paper  2006-09-22 19:52:17  No: 23323

表裏  未里様、ご教授願えない?様、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;

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加