大侠帮忙看段代码为什么出错啊?(20分)

  • 主题发起人 主题发起人 5411
  • 开始时间 开始时间
if edit3.text等于4的话,我就想要4.
什么意思?sizeof(edit3.text) 肯定是4
 
对了,我犯错了.我要的是length啊.
 
对不住大家啊.
不过,还是不对.:<

这是存的
procedure TForm1.adddataheader;
var
Header: TransHeader;
begin
Header.NumID := 'RZ';
byte(Header.Ver[0]) := $01;
byte(Header.Ver[1]) := $00;
Header.DataGrossLen := length(edit3.Text) + length(memo1.Text) + 48;
Header.nonsymmetryClass := '1';
Header.symmetrykeyLen := length(memo1.Text);
Header.symmetryclass := '1';
Header.symmetrydataLen := length(edit3.Text);
Header.TaxID := '23498723482938472872';
//CRC校验和
Header.CRC := 0; //不会
sdesfilestream.Seek(0, soFromBeginning);
sdesfilestream.Write(Header, 48);
sdesfilestream.Free;
showmessage(inttostr(header.symmetrydataLen));
end;

这是取的
procedure TForm1.Button10Click(Sender: TObject);
var TempValue :array of byte;
dataHeader: TransHeader;
begin
opendialog1.Execute;
ssoufilestream := TFileStream.Create(opendialog1.FileName,fmOpenRead);
ssoufilestream.Seek(0,soFromBeginning);
setlength(TempValue,ssoufilestream.Size);
ssoufilestream.Read(TempValue[0],ssoufilestream.Size);
//CopyMemory(@dataHeader, @tempvalue[0], 48);
move(dataheader,tempvalue[0],sizeof(dataHeader));
showmessage(inttostr(dataheader.symmetrydataLen));
ssoufilestream.Free;
end;
两个数不一样哪.
 
又弄错了.:<
//CopyMemory(@dataHeader, @tempvalue[0], 48);
move(dataheader,tempvalue[0],sizeof(dataHeader));
用copymemory没错,watersapce大侠对啊.


:> :> :>
你吐血了没有?
 
~~~~~~~~~~吐了!!!
 
Header.NumID := 'RZ'; 你这样写也对吗?
 
对啊,试了.:>
 
procedure TForm1.Button10Click(Sender: TObject);
var TempValue :array of byte;
dataHeader: TransHeader;
ymjkey:pchar;
begin
opendialog1.Execute;
ssoufilestream := TFileStream.Create(opendialog1.FileName,fmOpenRead);
ssoufilestream.Seek(0,soFromBeginning);
setlength(TempValue,ssoufilestream.Size);
ssoufilestream.Read(TempValue[0],ssoufilestream.Size);
CopyMemory(@dataHeader, @tempvalue[0], 48);
//move(dataheader,tempvalue[0],sizeof(dataHeader));
copymemory(ymjkey,@tempvalue[48],dataheader.symmetrykeyLen);
//memo1.Text := ymjkey;
//showmessage(inttostr(dataheader.symmetrykeyLen));
ssoufilestream.Free;
end;

又出错了.不能这么读吗?
 
ymjkey 没有分配空间
下班回家~~~
 
噢,又明白了.
 
动态字符数组怎么转换成字符串啊?
 
后退
顶部