Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
File in Use Question
Message
De
14/09/1998 11:10:08
Cetin Basoz
Engineerica Inc.
Izmir, Turquie
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Divers
Thread ID:
00135468
Message ID:
00136201
Vues:
22
>>>>>Using vfp6.0
>>>>>
>>>>>I have a program that creates a .dbf file (fox2 format) to be used by MS Word for mail merge. Everytime a user creates labels, it also issues a 'copy to myMrgFile type fox2'. My .exe file never opens the file. But --- heres a scenerio I am expecting:
>>>>>
>>>>>1) User has my .exe and MS Word open.
>>>>>2) User is in the middle of a mail merge and notices names are missing.
>>>>>3) User switches to my vfp .exe and pulls another query.
>>>>>4) Vfp .exe file attempts to 'copy to myMrgFile type fox2' but since Word has it open - it fails.
>>>>>
>>>>>I am dealing with very elderly people, most of which do not know how to use mail merges. I don't want to use a putfile().
>>>>>
>>>>>Question:
>>>>>How can I find out if myMrgFile.dbf is open by another program (not necessarily Word)?
>>>>>
>>>>>Robert
>>>>
function inuse
>>>>lparameters cfilename
>>>>handle=fopen(cfilename)
>>>>if handle>0
>>>> =fclose(handle)
>>>> return .f.
>>>>endif
Cetin
>>>
>>>
>>>Cetin,
>>>This worked great. Thanks.
>>>
>>>Robert
>>
>>Hello Robert,
>>
>> Though Cetin is right but it would be better to find out what caused FOPEN() to return -1. I mean error could be something else. I sugget you to use FERROR() function to determine exact error. It this error is 'File Access Denied'. then do whatever you want to do.
>>
>>Bye
>>Jayesh
>
>Jayesh,
>
>I just looked up ferror() and you are correct, If a user deleted the file, then I could simply recreate it. There are other issues to look at, but that is a good point. Thanks.
>
>Robert
Robert,
I confess it was a quick, careless reply and I really expected this "if file is deleted, doesn't exist", then simply change fopen to fcreate. Ferror while a good programming habbit may become just extra coding though (if only for this purpose).
Instead "error trapping + use" as Ed suggested is better.
Cetin
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform