在文件后写入一个字符串后保存,并且能再次分离出字符串和原文件。
如: 在1.exe文件后写入123456789,另存为2.exe,读取2.exe,把2.exe文件还原为1.exe和符串123456789.
procedure TForm1.Button1Click(Sender: TObject); //在文件尾写入strPsw
var MStream:TMemoryStream;
begin
MStream:=TMemoryStream.Create;
Mstream.LoadFromFile(edit1.Text);
Mstream.Seek(0,soFromEnd );
Mstream.Write(strPsw,length(strPsw));
Mstream.SaveToFile(edit2.Text);
Mstream.Free;
end;
procedure TForm1.Button2Click(Sender: TObject); //分离出文件,并且读取写入strPSw
var MStream:TMemoryStream;
Mstream2:TmemoryStream;
buf:string;
iSize:integer;
begin
MStream:=TMemoryStream.Create;
Mstream2:=TMemoryStream.Create;
Mstream.LoadFromFile(edit2.Text);
mstream.Position:=0;
iSize:= length(strPsw);
iSize:=mstream.Size-length(strPsw) ;
Mstream2.CopyFrom(mstream,iSize);
mstream2.SaveToFile(edit2.Text+'a');
Mstream.Seek(-length(strPsw),soFromEnd );
mstream.Read(buf,length(strPsw));
Edit4.Text:=buf;
mstream.free;
MSTREAM2.free;
end;
但这段代码好像不稳定,而且在mstream2.free时还会报错,
给我一段稳定的代码,一定要稳定啊,
如: 在1.exe文件后写入123456789,另存为2.exe,读取2.exe,把2.exe文件还原为1.exe和符串123456789.
procedure TForm1.Button1Click(Sender: TObject); //在文件尾写入strPsw
var MStream:TMemoryStream;
begin
MStream:=TMemoryStream.Create;
Mstream.LoadFromFile(edit1.Text);
Mstream.Seek(0,soFromEnd );
Mstream.Write(strPsw,length(strPsw));
Mstream.SaveToFile(edit2.Text);
Mstream.Free;
end;
procedure TForm1.Button2Click(Sender: TObject); //分离出文件,并且读取写入strPSw
var MStream:TMemoryStream;
Mstream2:TmemoryStream;
buf:string;
iSize:integer;
begin
MStream:=TMemoryStream.Create;
Mstream2:=TMemoryStream.Create;
Mstream.LoadFromFile(edit2.Text);
mstream.Position:=0;
iSize:= length(strPsw);
iSize:=mstream.Size-length(strPsw) ;
Mstream2.CopyFrom(mstream,iSize);
mstream2.SaveToFile(edit2.Text+'a');
Mstream.Seek(-length(strPsw),soFromEnd );
mstream.Read(buf,length(strPsw));
Edit4.Text:=buf;
mstream.free;
MSTREAM2.free;
end;
但这段代码好像不稳定,而且在mstream2.free时还会报错,
给我一段稳定的代码,一定要稳定啊,
解决方案 »
- 本人求职,强烈推荐自已
- 今天的可用分数字真吉利,18888,哈哈!!!!!!
- 升星,按惯例散分
- 求助如何读写INI文件
- delphi插件编程
- ShellComboBox控件的问题
- win2000 server 一启动就要到一个域里,可是这个域又不存在,如何让他登陆到本机?
- 怎样知道要发布什么包?
- 有没有自动生成一个字的拼音码和五笔码的程序,我想在Delphi中调用
- ★★★快来抢100分★★★:在win98下,我换了除了硬盘以外的所有硬件,结果导致原来的大部分程序不能运行,why??
- 到底错在哪了???急!!在线等....问题解决马上给分!!!
- 欢迎加入DELPHI+SQL2000的QQ群,大家一起学习进步!第三方控件
对于这个过程可以如下来写]MStream:=TMemoryStream.Create;
try
Mstream2:=TMemoryStream.Create;
try
Mstream.LoadFromFile(edit2.Text);
mstream.Position:=0;
iSize:= length(strPsw);
//把程序1的长度写到一个CONST变量中,在此处使用
iSize:=mstream.Size-length(strPsw) ;
Mstream2.CopyFrom(mstream,iSize);
mstream2.SaveToFile(edit2.Text+'a');
Mstream.Seek(-length(strPsw),soFromEnd );
mstream.Read(buf,length(strPsw));
Edit4.Text:=buf;
finally
mstream.free;
end;
finally
MSTREAM2.free;
end;