Byte配列→String変換を行いたいのですが
どのように行うべきかわかりません。
ご存じの方がおりましたらご教授願えないでしょうか?
inttostrを使えばすぐですよv
例はこんな感じです↓
procedure TForm1.Button1Click(Sender: TObject);
var
i:byte;
S:string;
begin
i:=100;
S:=inttostr(i);
showmessage(S);
end;
いちあん
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;
ごめんなさい、配列でしたね(^^;
私の発言撤回です。
> Byte配列
の宣言はどうようなもの?
型宣言して
type THoge=array[0..8] of Char;
var hoge:THoge;
とか、型宣言なしで
var hoge:array[0..8] of Char;
もしくは
var hoge:array of Char;
で使ってるとか。
状況によって、回答が違うかもね。
こんな感じでしょうか。
SetLength(文字列型変数, バイト配列のサイズ);
CopyMemory(PCHAR(文字列型変数), @バイト配列[0], バイト配列のサイズ);
表裏 未里様、ご教授願えない?様、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;
皆様、ありがとうございました。
ツイート | ![]() |