记录的声明方式: PMyRecord_Two = ^TMyRecord_Two; TMyRecord_Two = record FNum: Integer; FArr: array[1..100] of char; end; ///////////////////////////////// procedure TForm1.btn4Click(Sender: TObject); var ARec: TMyRecord_Two; s: string; begin s := 'This is a sample!'; ShowMessage(s); ARec.FNum := 100; CopyMemory(@ARec.FArr[1], @s[1], Length(s)); ARec.FArr[Length(s) + 1] := #0; ShowMessage(ARec.FArr);//从输出的长度看来,有100个字符。但是我想要的想过跟ShowMessage(s)一致,针对这种情况如何组装成一个字符串输出 end;
//我写了两种方式,估计一个Char类型的数组要输出只能这样了吧? procedure TForm1.btn4Click(Sender: TObject); var ARec: TMyRecord_Two; s, t: string; i, Len: Integer; begin s := 'This is a sample!'; Len := Length(s); ShowMessage(s); ARec.FNum := 100; CopyMemory(@ARec.FArr[1], @s[1], Len); Len := Len + 1; ARec.FArr[Len] := #0; i := 1; //下面是一种输出的情况 { SetLength(t, Len - 1); for i := 1 to Len - 1 do t[i] := ARec.FArr[i]; } //下面是另外一种情况 for i := 1 to Len - 1 do t := t + ARec.FArr[i]; ShowMessage(t); end;
procedure TForm1.btn4Click(Sender: TObject); var ARec: TMyRecord_Two; s: string; begin s := 'This is a sample!'; ShowMessage(s); new(ARec);//因为这里少了一句话聂 ARec.FNum := 100; CopyMemory(@ARec.FArr[1], @s[1], Length(s)); ARec.FArr[Length(s) + 1] := #0; ShowMessage(ARec.FArr);
PMyRecord_Two = ^TMyRecord_Two;
TMyRecord_Two = record
FNum: Integer;
FArr: array[1..100] of char;
end;
/////////////////////////////////
procedure TForm1.btn4Click(Sender: TObject);
var
ARec: TMyRecord_Two;
s: string;
begin
s := 'This is a sample!';
ShowMessage(s);
ARec.FNum := 100;
CopyMemory(@ARec.FArr[1], @s[1], Length(s));
ARec.FArr[Length(s) + 1] := #0;
ShowMessage(ARec.FArr);//从输出的长度看来,有100个字符。但是我想要的想过跟ShowMessage(s)一致,针对这种情况如何组装成一个字符串输出
end;
procedure TForm1.btn4Click(Sender: TObject);
var
ARec: TMyRecord_Two;
s, t: string;
i, Len: Integer;
begin
s := 'This is a sample!';
Len := Length(s);
ShowMessage(s);
ARec.FNum := 100;
CopyMemory(@ARec.FArr[1], @s[1], Len);
Len := Len + 1;
ARec.FArr[Len] := #0;
i := 1;
//下面是一种输出的情况
{
SetLength(t, Len - 1);
for i := 1 to Len - 1 do
t[i] := ARec.FArr[i];
}
//下面是另外一种情况
for i := 1 to Len - 1 do
t := t + ARec.FArr[i];
ShowMessage(t);
end;
var
ARec: TMyRecord_Two;
s: string;
begin
s := 'This is a sample!';
ShowMessage(s);
new(ARec);//因为这里少了一句话聂
ARec.FNum := 100;
CopyMemory(@ARec.FArr[1], @s[1], Length(s));
ARec.FArr[Length(s) + 1] := #0;
ShowMessage(ARec.FArr);