C83address() version courte (8.3) de l'adresse d'un fichier/dossier existant

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 729 fois - Téléchargée 33 fois

Contenu du snippet

Fonction utile pour interfacer avec des programmes DOS.

Le code illustre :
- la fonction VarType() pour vérifier le passage du paramètre (particularité VFP, les variables sont créées par défaut avec le type Logique et la valeur .F.)
- la vérification de l'existence d'un dossier ou d'un fichier
- l'appel d'une fonction de l'API Windows à partir de Visual FoxPro
- la fonction IIF()
- l'algorithme positif avec sortie unique en fin de module (mon dada)

Source / Exemple :



FUNCTION c83Address && Version courte (8.3) de l'adresse d'un fichier/dossier EXISTANT LPARAMETER tcPath LOCAL lcResult m.lcResult = Space(0)
  • Si le fichier ou le dossier existe
IF Vartype(m.tcPath) == 'C' m.tcPath = Upper(Alltrim(m.tcPath)) LOCAL llPath m.llPath = Directory(m.tcPath) IF NOT m.llPath && ce doit être une adresse de fichier LOCAL ARRAY laFiles[1] m.llPath = ADir(laFiles, m.tcPath) = 1 && file() ne fonctionne pas avec les adresses courtes ENDIF IF m.llPath
  • Lire l'adresse courte
DECLARE INTEGER GetShortPathName IN Win32API; STRING @lpszLongPath, ; STRING @lpszShortPath,; INTEGER cchBuffer LOCAL lnLength, lcShortName, lnResult m.lnLength = 260 m.lcShortName = SPACE (m.lnLength) m.lnResult = GetShortPathName(@m.tcPath, @m.lcShortName, m.lnLength) m.lcResult = Iif(m.lnResult > 0, ; LEFT (m.lcShortName, m.lnResult),; && la conversion a réussi m.tcPath) && la conversion a échoué : l'adresse spécifiée est 8.3 ENDIF ENDIF RETURN m.lcResult

A voir également

Ajouter un commentaire

Commentaire

Messages postés
16
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
14 novembre 2009
1
Illustre l'appel d'une fonction de l'API Windows à partir de Visual FoxPro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.