Einzelnen Beitrag anzeigen

slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#25

Re: TFileStream - Datei bereits geöffnet ?

  Alt 15. Jun 2008, 18:15
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
  Mit Zitat antworten Zitat