读书人

怎么在exe后追加文件

发布时间: 2012-03-16 16:34:56 作者: rapoo

如何在exe后追加文件
需求:
demo.exe:执行时要释放txt或者word或者pdf的一个文件。
test.exe,将txt/word/pdf追加在demo.exe的后面.
============================================
过程:
test.exe将文件追加在demo.exe的文件尾部。
demo.exe执行时将文件读出来。

我尝试过在用test.exe在demo.exe后追加图片,
然后demo.exe显示图片,已经成功,是照别人的例子写的。


下面是demo.exe读取加在自己尾部的图片的代码。
ImgBmp.Picture.Bitmap.LoadFromStream(Source);
不知道txt或者PDF word的怎么读。

Delphi(Pascal) code
Function Cjt_BmpLoad(ImgBmp:TImage;SourceFile:String):Boolean; var   Source:TFileStream;   MyFileSize:integer; begin   Source:=TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);   try    try     Source.Seek(-sizeof(MyFileSize),soFromEnd);     Source.ReadBuffer(MyFileSize,sizeof(MyFileSize));//读出资源     Source.Seek(-MyFileSize,soFromEnd);//定位到资源开始位置     ImgBmp.Picture.Bitmap.LoadFromStream(Source);    finally      Source.Free;    end;  except    Result:=False;    Exit;   end;   Result:=True; end;


[解决办法]
//写文件尾
procedure TForm1.Button1Click(Sender: TObject);
var
f:tfilestream;
buf1,temp:string;
buf: array [0..254] of char;
i:integer;
begin
buf1 := edit1.Text;
for i := 1 to 255 do
begin
buf[i-1]:=buf1[i];
end;
f:=TfileStream.create(extractfilepath(application.ExeName)+'\test.exe',fmopenreadwrite);
f.position:=f.size;
f.write(buf,255);
f.free;
end;

//读文件尾
procedure TForm1.Button2Click(Sender: TObject);
var
f:tfilestream;
buf1:string;
buf: array [0..254] of char;
i:integer;
begin
f:=TfileStream.create(extractfilepath(application.ExeName)+'\test.exe',fmopenread);
f.position:=f.size-255;
f.Read(buf,255);
f.free;

buf1:=buf;
//for i := 1 to 19 do
//begin
// buf1[i]:=buf[i-1];
//end;
edit2.Text := buf1;
end;

读书人网 >.NET

热点推荐