cs_maxusn
Messages postés6Date d'inscriptionmardi 22 mai 2012StatutMembreDernière intervention24 mai 2012
-
22 mai 2012 à 17:31
cs_maxusn
Messages postés6Date d'inscriptionmardi 22 mai 2012StatutMembreDernière intervention24 mai 2012
-
24 mai 2012 à 09:36
Bonjour,
Je code sous Visual FoxPro depuis peu et je cherche le moyen de parcourir tous les éléments d'un dossier(fichiers et sous dossiers) pour trouver tous les fichier portant l'extension ".SCX". et stocker leur nom dans un fichier texte.
Le problème c'est que je n'arrive pas a ouvrir mon dossier : la fonction FOPEN("C:\mondossier") me renvoie toujours -1.
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 20131 22 mai 2012 à 19:19
Bonjour,
il te faut regarder les fonctions ADIR() et GETDIR().
En VFP, toutes les fonctions qui commencent par F comme Fopen, Fwrite, etc.. sont des fonctions dites "de bas niveau", c'est à dire les plus proches du C, et elles ne sont pas destinées aux usages les plus courants.
Merci de préciser ta version de VFP à chaque fois que tu poses une question, les réponses peuvent être différentes.
cs_maxusn
Messages postés6Date d'inscriptionmardi 22 mai 2012StatutMembreDernière intervention24 mai 2012 23 mai 2012 à 08:38
Bonjour,
ma version de foxpro est Microsoft Visual FoxPro 9.0 SP2.
J'ai commencé a regarder les 2 fonctions dont vous m'avez parlé, la fonction ADIR() si j'ai bien compris stock dans un tableau le contenue dans dossier.
Ce que je ne comprend pas c'est comment se placer sur le dossier que je veux parcourir : est-ce la fonction getdir() qui fait cela ?
Cette fonction semble recevoir en paramètre un nom de dossier et pas un chemin.
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 20131 23 mai 2012 à 14:21
ADIR() crée un tableau dont le nom est le premier paramètre que tu lui passes.
Le troisième paramètre te permet précisément de filtrer le contenu ("D" spécifie les dossiers)
Il te suffit de parcourir le tableau.
Mais attention à 2 points importants:
[*] d'une part, ni ADIR ni CURDIR ne se déplacent sur le dossier spécifié, il te faut exécuter la commande CD ou SET DEFAULT TO
[*] ADIR n'a pas de récursivité, tu n'obtiendras que le premier niveau de profondeur