AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Prüfen ob Datei frei zum weiterverarbeiten : gelöst
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen ob Datei frei zum weiterverarbeiten : gelöst

Ein Thema von etom291272 · begonnen am 3. Jun 2004 · letzter Beitrag vom 3. Jun 2004
Antwort Antwort
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#1

Prüfen ob Datei frei zum weiterverarbeiten : gelöst

  Alt 3. Jun 2004, 18:24
Hallo zusammen

ich entwickle zur Zeit gearade ein kleines Programm dass mir ein bestimmtes Verzeichnis im
Sekundentakt überwacht. In dieses Verzeichnis wird von einem Scanner ein Multipage TIF File
gestellt dass dann von diesem Programm in einzelne TIF Files zerlegt und als seperate Datei
je TIF Seite abgespeichert wird.
Schön und gut funktioniert auch. Aber mein Programm scannt das Verzeichnis mit TSearchRec nach allen *.TIF Files wenn mein Programm bereits läuft wenn der Scanner das Multipage TIF File erzeugt wartet mein Programm nicht ab ob der Scanner den Vorgang beendet hat mit anderen worten es werden bereits nach der ersten seite die Unterroutinen meines Progs abgearbeitet bei der das Ursprüngliche TIF zum schluss sogar umbenannt wird und der scanner fängt dadurch ein neues TIF an.
Zur Zeit prüfe ich ob mein Prog die Datei die der Scanner erzeugt umbenennen darf was komischerweise erlaubt wird .
ich müsste also überprüfen ob die Datei die ich mit TSearchrec gefunden habe von keiner anderen Anwendung mehr benötigt oder verarbeitet wird.

für alle Lösungsvorschläge bin ich dankbar
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Prüfen ob Datei frei zum weiterverarbeiten

  Alt 3. Jun 2004, 18:26
Moin etom,

versuch' doch die Datei zum Schreiben zu öffnen.
Ich vermute mal, dass das, für den Fall das die Datei noch aufgebaut wird, fehlschlägt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#3

Re: Prüfen ob Datei frei zum weiterverarbeiten

  Alt 3. Jun 2004, 18:28
danke für die Antwort

meinst du mit der fileopen methode ??
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Prüfen ob Datei frei zum weiterverarbeiten

  Alt 3. Jun 2004, 18:30
Moin etom,

damit müsste das auch gehen.
Oder aber z.B. Hier im Forum suchenCreateFile
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#5

Re: Prüfen ob Datei frei zum weiterverarbeiten

  Alt 3. Jun 2004, 19:33
Delphi-Quellcode:
function FileInUse(FileName: string): Boolean;
var
  hFileRes: HFILE;
begin
  Result := False;
  if not FileExists(FileName) then
    Exit;
  hFileRes := CreateFile(PChar(FileName),
    GENERIC_WRITE,
    0,
    nil,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    0);
  Result := (hFileRes = INVALID_HANDLE_VALUE);
  if not Result then
    CloseHandle(hFileRes);
end;
hab mit folgendem code versucht zu prüfen ob die datei bereits fertiggestellt ist obwohl der scanner noch fleissig die seiten hinzufügt verarbeitet mein prog sofort wenn das tif vom scanner angelegt wird die Seiten
hab schon daran gedacht die dateigrösse zu speichern und nach einiger zeit zu prüfen ob sich die grösse verändert hat aber wäre froh wenn es mit weniger programmieraufwand ginge

  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#6

Re: Prüfen ob Datei frei zum weiterverarbeiten

  Alt 3. Jun 2004, 21:28


habs hinbekommen

frage mit folgendem code das Letzte Änderungsdatum der Datei ab die vom Scanner erstellt wird wenn das Änderungsdatum nicht um über 1 minute kleiner ist als now wird die Datei übergangen

Delphi-Quellcode:
 procedure THauptForm.Timer1Timer(Sender: TObject);
var
  i : Integer;
  LSrch: TSearchRec;
  DirScanEing : String;
  DatzuVerarb : String;

begin
VrProgressBar1.Position:=VrProgressBar1.Position+1;
if VrProgressBar1.Position >= 100 then VrProgressBar1.Position:=1;

Timer1.Enabled:=False;
DirScanEing := leseRegValue('ScannerEingang')+'\';
i := FindFirst(DirScanEing + '*.tif', faAnyFile, LSrch);
try
  while i = 0 do if (LSrch.Attr and faDirectory) = 0 then
    begin
      VerzLauf:=0;

      (* Überprüfen ob Datei frei ist nicht in Verwendung von anderem Prg
        Abfrage des Änderungsdatums weitere Operationen nur wenn Änderungsdatum
         < ist wie jetzt mit 1min 5sec *)

      if FileDateToDateTime(LSrch.Time) < (Now-0.00075)
      then begin
      .....
  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 17:18 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