如何在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;