<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
C'est peut-être une question facile à répondre, mais ce que j'essaie de faire est d'utiliser JMP pour compter le nombre de fichiers contenus dans un répertoire spécifique et de renvoyer une valeur de 0 s'il n'en existe pas ou le nombre de fichiers.
Je sais que l'utilisation de la fonction Fichiers dans le répertoire répertoriera les fichiers contenus sous forme de liste, mais ce que je veux faire est de convertir cela en une valeur numérique :
c'est à dire:
//set up raw dir
raw_dir = "C:\\My PhotoFilmStrips\";
_files = Files In Directory( raw_dir );
//show files
show(_files);
show( Type(_files), Is Empty(_files), Is Missing(_files), _files==Empty());
Si j'exécute le script ci-dessus, j'obtiens ce qui suit avec un fichier contenu dans le répertoire brut :
Type(_files) = "Liste" ;
Est vide (_files) = 0 ;
Est manquant (_files) = {0} ;
_files == Vide() = 0;
Lorsque le répertoire est vide, j'obtiens :
Type(_files) = "Nombre" ;
Est vide (_files) = 0 ;
Est manquant (_files) = 1 ;
_files == Vide() = .;
Comment puis-je utiliser la variable Is Missing - c'est-à-dire si elle vaut 1, attribuez le numéro à une variable comme tt=0 et lorsque la variable Is Missing est 0, alors tt=1
Toute aide serait appréciée
Rgds
Colin
Est manquant() sur une liste vide renverra une liste vide, car elle opère sur chaque élément d'une liste.Si la liste est vide, il n'y a aucun élément pour Est manquant() sur lequel opérer, il renvoie donc la liste vide.Cependant, une meilleure façon de voir cela est l'exemple suivant :
lst = {1,2,.,""} ;
est manquant (lst);
Dans JMP 10 et 11, un répertoire vide donne une liste vide, pas une valeur manquante et je m'attendrais donc à Est manquant() pour renvoyer 0. Étrangement, si appliqué à une liste vide Est manquant() renvoie une liste vide, pas 0 ou 1 qui est la sortie attendue d'une fonction booléenne. Je ne sais pas comment cela fonctionne dans JMP 9.
Je vous suggère d'utiliser N Items() à la place . Par exemple:
tt = ( articles ( _des dossiers ) > 0 ) ;
Si vous utilisez Est manquant() vous pouvez basculer entre 0 et 1 avec l'opérateur NOT, c'est à dire !Is Missing()