AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateistatus abfragen???

Ein Thema von Madcat · begonnen am 13. Mai 2004 · letzter Beitrag vom 15. Mai 2004
Antwort Antwort
Madcat

Registriert seit: 13. Mai 2004
3 Beiträge
 
#1

Dateistatus abfragen???

  Alt 13. Mai 2004, 19:44
Sorry den post gibts jetzt doppelt. hab den ausversehen auch in "klatsch und trasch" gestellt. newbies fehler
so jetzt aber :

ich(oder besser eine projekt gruppe) habe ein programm geschrieben welches eine textdatei einliest,konvertiert und in eine sql datenbank schreibt. die textdatei wird nach dem einlesen gelöscht. eine neue textdatei wird von einer sps geschickt. jetzt gibt es nach ein paar hundertmal einlesen immer wieder mal einen I/O error.
meine theorie ist das, dass schreiben und einlesen der datei gleichzeitig passiert. mit FileExist wird schon abgefragt ob die datei vorhanden ist. trotzdem kommt die fehlermeldung.
das einlesen der datei geschied über : FileMode = 0, AssisgnFile, Reset und Blockread.
Gibt es irgendeine Möglichkeit den Status einer Datei abzufragen?? Oder hat jemand eine erklärung wie man sonst den I/O error wegbekommen kann? hab da was von einer compilerdirektive mit {$-} gelesen. aber die unterdrückt doch dann nur die delphifehlermeldung und nicht die windowsfehlermelder oder?
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: Dateistatus abfragen???

  Alt 13. Mai 2004, 20:56
macht dochn timer, dasser, bevor er einliest, immer ein halbes sekündchen wartet

oder nur auf buttonklick einlesen
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Madcat

Registriert seit: 13. Mai 2004
3 Beiträge
 
#3

Re: Dateistatus abfragen???

  Alt 15. Mai 2004, 20:08
Also mit dem Button wird wohl nicht funktioniren weil ich nicht 500mal am Tag zum Server laufen kann und nen Button drücken. Wird schwer das meinen Chef zu erklären

Mit dem Timer hab ich auch schon überlegt. Nur finde ich es komisch das die Abfrage FileExist postiv ist wenn die Datei noch nicht komplett fertig geschrieben ist.

Habe was gelesen, das man mit FileCreate abfragen kann ob eine Datei exklusiv in Benutztung ist. Weiß da jemand was genaueres weil ich mit der Delphi-Hilfe nicht so ganz klarkomme bei diesem Befehl
  Mit Zitat antworten Zitat
Madcat

Registriert seit: 13. Mai 2004
3 Beiträge
 
#4

Re: Dateistatus abfragen???

  Alt 15. Mai 2004, 20:11
Also mit dem Button wird wohl nicht funktioniren weil ich nicht 500mal am Tag zum Server laufen kann und nen Button drücken. Wird schwer das meinen Chef zu erklären

Mit dem Timer hab ich auch schon überlegt. Nur finde ich es komisch das die Abfrage FileExist postiv ist wenn die Datei noch nicht komplett fertig geschrieben ist.

Habe was gelesen, das man mit FileCreate abfragen kann ob eine Datei exklusiv in Benutztung ist. Weiß da jemand was genaueres weil ich mit der Delphi-Hilfe nicht so ganz klarkomme bei diesem Befehl
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#5

Re: Dateistatus abfragen???

  Alt 15. Mai 2004, 20:11
HANDLE CreateFile(

LPCTSTR lpFileName, // pointer to name of the file
DWORD dwDesiredAccess, // access (read-write) mode
DWORD dwShareMode, // share mode
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // pointer to security attributes
DWORD dwCreationDistribution, // how to create
DWORD dwFlagsAndAttributes, // file attributes
HANDLE hTemplateFile // handle to file with attributes to copy
);

dwShareMode
Set of bit flags that specifies how the object can be shared. If dwShareMode is 0, the object cannot be shared. Subsequent open operations on the object will fail, until the handle is closed.
To share the object, use a combination of one or more of the following values:

Value Meaning
FILE_SHARE_DELETE Windows NT only: Subsequent open operations on the object will succeed only if delete access is requested.
FILE_SHARE_READ Subsequent open operations on the object will succeed only if read access is requested.
FILE_SHARE_WRITE Subsequent open operations on the object will succeed only if write access is requested.


############################

setzt den share-mode auf "0", das sollte in der tat helfen

PS: "Habe was gelesen, das man mit FileCreate abfragen kann ob eine Datei exklusiv in Benutztung ist. Weiß da jemand was genaueres weil ich mit der Delphi-Hilfe nicht so ganz klarkomme bei diesem Befehl" nicht nachschauen, sondern bestimmen

PS2: der obige Code ist aus dem WindowsSDK, nicht der Delphi-Hilfe direkt, aber das SDK ist normal bei der Hilfe dabei, bei Delphi 7 sogar im Menü integriert

PS3: Hilft natürlich nur, wenns wirklich daran liegt
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: Dateistatus abfragen???

  Alt 15. Mai 2004, 20:15
Delphi-Quellcode:
function FileInUse(FileName: string): Boolean;
var
  hFileRes: HFILE;
begin
  Result := False;
  if not FileExists(FileName) then
    Exit;
  hFileRes := CreateFile(PChar(FileName),
    GENERIC_READ or GENERIC_WRITE,
    0,
    nil,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    0);
  Result := (hFileRes = INVALID_HANDLE_VALUE);
  if not Result then
    CloseHandle(hFileRes);
end;
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:30 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