L'auteur
FoxInCloud (Th. Nivelet) France Membre Simple # 0000000014 enregistré le 13/10/2004
http://www.foxincloud.com/ Nivelet Thierry 75016 Paris de la société Abaque Fiche personnelle
Note des membres
pas de note
|
Contributions > 05 - API et appels systèmes
c83Address()- version courte (8.3) d'une adresse de fichier ou de dossier EXISTANT
# 0000000021
ajouté le 21/10/2004 10:06:21 et modifié le 21/10/2004
consulté 9156 fois
Niveau
débutant
|
Description |
Fonction utile pour - interfacer avec des programmes DOS - raccourcir les adresses de fichiers stockées dans une table
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 (dada de l'auteur)
|
Code source : |
************************************************************************
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
|
Commentaires |
Aucun commentaire enregistré ...
|