Einzelnen Beitrag anzeigen

Masteric

Registriert seit: 1. Aug 2007
Ort: Melsungen
155 Beiträge
 
Delphi 7 Professional
 
#1

Datei an eine Exe anhängen

  Alt 24. Feb 2008, 15:56
Hi, ich wollte mit einem Code aus dem Delphi-Treff eine Datei 'temp.cfg' an meine Exe anhägen, nur leider kommt immer eine Fehler Meldung. Hier erstmal der Code:
Delphi-Quellcode:
function Save(ExeSize:integer; Mem:TMemo):boolean;
var f2: file;
  aHdl: Integer;
  gelesen: longInt;
  aBuf: Array[1..40000] of byte;
  Groesse: LongInt;
begin
  Mem.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+'temp.cfg');
  AssignFile(f2,ExtractFilePath(Application.ExeName)+ExtractFileName(Application.ExeName));
  Reset(f2, 1);// Hier kommt ein E/A-Fehler 32 das ist ein EINOUTERROR.
  Groesse:=FileSize(f2);
  CloseFile(f2);
  aHdl:=FileOpen(ExtractFileName(Application.ExeName),fmOpenReadWrite);
  FileSeek(aHdl,Groesse,0);
  AssignFile(f2,ExtractFilePath(Application.ExeName)+'temp.cfg');
  Reset(f2,1);
  while not Eof(f2) do
  begin
    BlockRead(f2,abuf,sizeof(abuf),gelesen);
    FileWrite(aHdl,abuf,gelesen);
  end;
  CloseFile(f2);
  DeleteFile('temp.cfg');
end;
Ich habe bis jetzt nichts passendes gefunden, ahbe aber eine Vermutung...

Das hier ist die Function, mit der ich die Datei wieder aus der exe bekomme, die wird vor der oben ausgeführt,
meine Vermutung ist, dass es daran liegt, da es ohne die zum Lesen wunderbar funktioniert..

Delphi-Quellcode:
function Load(ExeSize:integer; Mem:TMemo):boolean;
var aHdl:Integer;
  aBuf:Array[1..40000] of byte;
  Gelesen: LongInt;
  f: file;
begin
  aHdl:=FileOpen(Application.ExeName, fmShareDenyNone or fmOpenRead);
  FileSeek(aHdl, ExeSize, 0);
  AssignFile(f, ExtractFilePath(Application.ExeName)+'temp.cfg');
  ReWrite(f, 1);
  Gelesen:=FileRead(aHdl,aBuf,SizeOf(aBuf));
  while Gelesen>0 do
  begin
    BlockWrite(f,aBuf,Gelesen);
    Gelesen:=FileRead(aHdl,aBuf,SizeOf(aBuf));
  end;
  CloseFile(f);
  FileClose(aHdl);
  Mem.Lines.Loadfromfile(ExtractFilePath(Application.ExeName)+'temp.cfg');
end;
Hoffe mal, dass man dadurch kommt.

Masteric
  Mit Zitat antworten Zitat