AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TFileStream - Datei bereits geöffnet ?
Thema durchsuchen
Ansicht
Themen-Optionen

TFileStream - Datei bereits geöffnet ?

Ein Thema von slemke76 · begonnen am 28. Mai 2008 · letzter Beitrag vom 19. Jun 2008
Antwort Antwort
Seite 1 von 3  1 23      
slemke76

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

TFileStream - Datei bereits geöffnet ?

  Alt 28. Mai 2008, 20:05
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]
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: TFileStream Problem

  Alt 28. Mai 2008, 20:08
Zitat von slemke76:
Ich kann die Datei auch leider nicht geöffnet lassen (geht einfach nicht...).
Warum?
  Mit Zitat antworten Zitat
slemke76

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

Re: TFileStream Problem

  Alt 28. Mai 2008, 20:16
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TFileStream Problem

  Alt 28. Mai 2008, 20:17
@slemke76: Könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
slemke76

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

Re: TFileStream Problem

  Alt 28. Mai 2008, 20:18
Zitat von SirThornberry:
@slemke76: Könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben?
ok so ?

lg
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: TFileStream Problem

  Alt 28. Mai 2008, 20:20
Zitat von slemke76:
Zitat von SirThornberry:
@slemke76: Könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben?
ok so ?

lg
Jupp
  Mit Zitat antworten Zitat
slemke76

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

Re: TFileStream Problem - Datei bereits geöffnet ?

  Alt 28. Mai 2008, 20:28
Hi!

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

lg
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#8

Re: TFileStream Problem - Datei bereits geöffnet ?

  Alt 28. Mai 2008, 20:33
Hier im Forum suchenIsFileInUse
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: TFileStream Problem - Datei bereits geöffnet ?

  Alt 28. Mai 2008, 20:34
Hi,

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

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

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#10

Re: TFileStream Problem - Datei bereits geöffnet ?

  Alt 28. Mai 2008, 20:42
Ich glaube sogar, dass das:
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.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz