Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TFileStream - Datei bereits geöffnet ? (https://www.delphipraxis.net/114643-tfilestream-datei-bereits-geoeffnet.html)

slemke76 28. Mai 2008 19:05


TFileStream - Datei bereits geöffnet ?
 
Hallo zusammen,

folgender Source:

Delphi-Quellcode:
    Stream := TFileStream.Create(XMLFile, fmCreate or fmOpenWrite);
    DomToXmlParser1.WriteToStream(FDoc, 'UTF-8', Stream);
    // auch schon getestet : CloseHandle(Stream.Handle);
    Stream.Free;
Dieses Stück Code steht an einer Stelle, die mehrere Male pro Minute durchlaufen wird.
Das Problem ist nun, dass nach einer gewissen Zeit (immer unterschiedlich) das Programm stoppt und sagt, dass die Datei <xmlfile> nicht geöffnet werden könne, weil ein anderer Prozess darauf zugreift.
Ich habe jetzt das ganze erstmal in ein try...finally verpackt, aber das löst ja nicht das zugrunde liegende Problem. Ein CloseHandle habe ich auch schonmal probiert.

Hat jemand eine Idee ? Ich kann die Datei auch leider nicht geöffnet lassen (geht einfach nicht...).

lg
Sebastian

[edit=SirThornberry]"Problem" aus Titel entfernt - Mfg, SirThornberry[/edit]

Die Muhkuh 28. Mai 2008 19:08

Re: TFileStream Problem
 
Zitat:

Zitat von slemke76
Ich kann die Datei auch leider nicht geöffnet lassen (geht einfach nicht...).

Warum?

slemke76 28. Mai 2008 19:16

Re: TFileStream Problem
 
Hi !

unmöglich ist gar nichts; aber der Aufwand ist extrem hoch.
Ausserdem geht es mir auch ein wenig darum, das Problem zu verstehen. Wenn ich ein Closehandle und/oder Free mache, dann gehe ich doch davon aus, dass die Datei auch genauso gespeichert ist. Selbst wenn ein Cache dazwischen ist, müsste die nächste Lese-Anfrage ja auf den Cache bedient werden und da ist die Datei ja zu...

lg
Sebastian

SirThornberry 28. Mai 2008 19:17

Re: TFileStream Problem
 
@slemke76: Könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben?

slemke76 28. Mai 2008 19:18

Re: TFileStream Problem
 
Zitat:

Zitat von SirThornberry
@slemke76: Könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben?

ok so ?

lg

Die Muhkuh 28. Mai 2008 19:20

Re: TFileStream Problem
 
Zitat:

Zitat von slemke76
Zitat:

Zitat von SirThornberry
@slemke76: Könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben?

ok so ?

lg

Jupp :zwinker:

slemke76 28. Mai 2008 19:28

Re: TFileStream Problem - Datei bereits geöffnet ?
 
Hi!

Dann also zurück zum Thema :-) Hat jemand eine Idee ?

lg
Sebastian

DeddyH 28. Mai 2008 19:33

Re: TFileStream Problem - Datei bereits geöffnet ?
 
Hier im Forum suchenIsFileInUse

Die Muhkuh 28. Mai 2008 19:34

Re: TFileStream Problem - Datei bereits geöffnet ?
 
Hi,

Du könntest mal noch den Modus "fmShareDenyNone" verwenden:

Zitat:

Zitat von Delphi-Hilfe
fmShareDenyNone
Andere Anwendungen können die Datei ohne Einschränkungen zum Lesen oder Schreiben öffnen.


littleDave 28. Mai 2008 19:42

Re: TFileStream Problem - Datei bereits geöffnet ?
 
Ich glaube sogar, dass das:
Delphi-Quellcode:
fmCreate or fmOpenWrite
Probleme machen kann. Ich würd das als erstes mit einer if-Abfrage lösen:
Delphi-Quellcode:
if FileExists(XMLFile) then
  Stream := TFileStream.Create(XMLFile, fmOpenWrite)
else
  Stream := TFileStream.Create(XMLFile, fmCreate);
Ist nur so eine Vermutung von mir, dass fmCreate zusammen mit fmOpenWrite Probleme machen könnte - ist aber reine Spekulation.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz