如何将记录类型转换成string类型(50分)

  • 主题发起人 主题发起人 zhenghui
  • 开始时间 开始时间
Z

zhenghui

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
electric=record
dsf_czm:shortint;
dsf_type:array[0..2]of char;
dsf_area:array[0..2]of char;
flag:byte;
data_len:integer;
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
e1,e2:electric;
sTEmp :^string;
begin
e1.dsf_czm :=100;
e1.dsf_type :='www';
e1.dsf_area :='hhh';
e1.flag :=50;
e1.data_len :=65535;
//setlength(stemp,sizeof(electric));
getmem(stemp,sizeof(electric));
copymemory(pointer(stemp),pointer(@e1),sizeof(electric));

copymemory(pointer(@e2),pointer(stemp),sizeof(electric));
showmessage(inttostr(e2.data_len));
showmessage(stemp^);//出错,访问冲突
freemem(stemp);


end;
 
sTEmp :string;//去掉这个^
copymemory(@stemp[1],@e1,sizeof(electric));就应该没有问题
下面的也照我的改,

 
无法显示datalen,因为我的datalen取值太大,无法显示。
但我需要这种效果,请问如何改进
 
不用string不可以吗
 
你到底要完成什么效果?
怎么可以胡乱换换?
 

Similar threads

后退
顶部