Zitat von
emsländer:
Delphi-Quellcode:
zipdecodiert := base64decode(zipcodiert);
zipcodiert := '';
ls := length(zipdecodiert);
fs := tfilestream.create('c:\fddservice\tmp.zip', fmcreate);
fs.Write(zipdecodiert[1],ls);
fs.free;
logdatei('Base64decodiert '+inttostr(ls)+' Zeichen in tmp.zip geschrieben');
zipdecodiert := '';
sleep(1000);
logdatei('Sleep 1 überstanden');
myzip := tzipfile.create;
myzip.LoadFromFile('c:\fddservice\tmp.zip');
sleep(1000);
logdatei('Sleep 2 überstanden');
.....
....
Das "sleep" hatte ich nur reingebaut, um evtl. Timingprobleme zu vermeiden.
Er kommt bis zum logdatei('Sleep 1 überstanden'); - das wird noch ausgeführt (lt. LOG).
ab da ist dann Schluss
Als Anwendung läuft das ganze. In dem Dienst jedoch nicht. Die Datei 'tmp.zip' ist auch anschliessend vorhanden und die Rechte passen auch.
Exceptions müssen in einer Serviceanwendung abgefangen und geloggt werden, da sie i.d.R. nicht an die
Benutzer-Oberfläche treten.
Delphi-Quellcode:
logdatei('
Sleep 1 überstanden');
myzip := tzipfile.create;
try
myzip.LoadFromFile('
c:\fddservice\tmp.zip');
sleep(1000);
logdatei('
Sleep 2 überstanden');
except
on E:
Exception do
begin
logdatei(E.
Message);
Exit;
// nach einer Exception kann man hier gleich aufhören
end;
end;