很困扰的问题 请帮忙(100分)

  • 主题发起人 主题发起人 liu_sa
  • 开始时间 开始时间
L

liu_sa

Unregistered / Unconfirmed
GUEST, unregistred user!
Header: array[0..3] of Byte;
没问题
改成 Header: array of Byte;
动态的 加SetLength 后文件头尾 是乱码了
procedure TForm1.Button1Click(Sender: TObject);
var
FileSource: TFileStream;
FileDest: TFileStream;
// Header: array[0..3] of Byte;
// Ender: array[0..3] of Byte;
Header: array of Byte;
Ender: array of Byte;
begin
FileSource := TFileStream.Create('c:/data.txt', fmOpenRead);
FileDest := TFileStream.Create('c:/data2.txt', fmCreate);
FileSource.Seek(0, 0);
FileDest.Seek(0, 0);
//头
SetLength(Header, Length('abcd'));
StrToBytes('abcd', Header);
FileDest.Write(header, SizeOf(header));
//流
FileDest.CopyFrom(FileSource, FileSource.Size);
//尾
SetLength(Ender, Length('发送'));
StrToBytes('发送', Ender);
FileDest.Write(Ender, SizeOf(Ender));
FileDest.Free;
FileSource.Free;
end;
{字符串转字节数组}
procedure TForm1.StrToBytes(mStr: string;
var nBytes: array of Byte);
var
I: Integer;
C: PChar;
begin
for i := 0 to Length(mStr) - 1do
begin
nBytes := Ord(mStr[I + 1]);
end;
end;
 
FileDest.Write(header[0],Length(header));
FileDest.Write(Ender[0], Length(Ender));
 
指针和首地址的区别,楼主仔细阅读这个帖子:
http://www.delphibbs.com/delphibbs/dispq.asp?LID=3846371
 
后退
顶部