ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Attendre la disponibilité exclusive d'un fichier   



L'auteur

Christophe Chenavier
France France
Membre Simple
# 0000000023
enregistré le 14/10/2004
http://www.corwin.fr
58 ans
CHENAVIER Christophe
80440 BOVES
de la société Corwin
Fiche personnelle


Note des membres
pas de note

Contributions > 20 - Trucs et Astuces

Attendre la disponibilité exclusive d'un fichier
# 0000000267
ajouté le 22/12/2005 08:03:27 et modifié le 22/12/2005
consulté 8831 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0

Description

Cette fonction est utilisée dans les échanges avec d'autres applications au travers de fichiers textes. Elle permet de s'assurer que le fichier d'échange est bien disponible pour traitement et non pas encore en cours de remplissage par l'autre application.

Note : pour les versions antérieures à VFP8, la commande DOEVENTS FORCE doit être remplacée par un INKEY()

Code source :
*!* Objet : Attendre la disponibilité exclusive d'un fichier avant de le traiter
*!* Auteur : C.Chenavier
*!* Version : 1.00 - 05/08/2005

FUNCTION WaitForFile

LPARAMETERS cFileName, nSeconds
LOCAL nHandle, lOK, tAttente

IF EMPTY(M.nSeconds)
   M.nSeconds = 30
ENDIF

*** Attente - Présence fichier
M.tAttente = DATETIME()
DO WHILE NOT FILE(M.cFileName) AND M.tAttente + M.nSeconds > DATETIME()
   DOEVENTS FORCE
ENDDO
IF FILE(M.cFileName)
   *** Attente - Fichier complet (accès en écriture)
   M.nHandle = FOPEN(M.cFileName, 2)
   DO WHILE M.nHandle = -1
      DOEVENTS FORCE
      M.nHandle = FOPEN(M.cFileName, 2)
   ENDDO
   FCLOSE(M.nHandle)
   M.lOK = .T.
ENDIF

RETURN M.lOK

Commentaires
Aucun commentaire enregistré ...

Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3