Hallo zusammen,
ich habe jetzt mal die Routine in ein einigenes Programm gekapselt; das Problem trat immer noch auf. Ich habe daraufhin mal ein wenig herumgespielt und es hat sich herausgestellt, dass die Kombination (oder nur der
AV) Virenscanner und Betriebssystem das Problem verursacht haben:
Vista mit Kaspersky Antivirus 2009: keine Probleme
W2K3 SBS mit Kaspersky für Windows Servers 6.x: Nach kurzer Zeit Absturz, da die Datei in Benutzung sei.
Die Routine sieht so aus:
Delphi-Quellcode:
procedure TForm1.btnStartClick(Sender: TObject);
begin
btnStart.Enabled:=false;
btnStart.Caption:='running...';
Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Memo1.Lines.Add('rein');
Timer1.Enabled:=false;
DoSave();
Timer1.Enabled:=true;
Memo1.Lines.Add('raus');
end;
Delphi-Quellcode:
procedure DoSave();
var Stream: TFileStream;
XMLFile:
String;
DomToXmlParser1: TDomToXmlParser;
DomImplementation1: TDomImplementation;
FDoc: TDOMDocument;
FNodeElement: TDomElement;
begin
XMLFile:='
test.xml';
// ----- XML-Zeugs -----
DomImplementation1:=TDomImplementation.Create(
nil);
FDoc := TDomDocument.Create(DomImplementation1);
DomToXmlParser1:=TDomToXmlParser.Create(
nil);
DomToXmlParser1.DOMImpl:=DomImplementation1;
// --- XML root für Schnittstelle anlegen ---
FNodeElement:=TDomElement.Create(FDoc, '
TEST');
FDoc.AppendChild(FNodeElement);
Stream := TFileStream.Create(XMLFile, fmCreate);
DomToXmlParser1.WriteToStream(FDoc, '
UTF-8', Stream);
Stream.Free;
FNodeElement.Free;
DomToXmlParser1.Free;
FDoc.Free;
DomImplementation1.Free;
end;
lg
Sebastian