Controlla se un elenco è vuoto<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Potrebbe essere una domanda facile a cui rispondere, ma quello che sto cercando di fare è utilizzare JMP per contare il numero di file contenuti in una directory specifica e restituire un valore pari a 0 se non ne esiste nessuno o il numero di file.
So che l'utilizzo della funzione File nella directory elencherà i file contenuti come elenco, ma quello che voglio fare è convertirlo in un valore numerico:
cioè:
//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());
Se eseguo lo script precedente ottengo quanto segue con un file contenuto nella directory raw:
Tipo(_files) = "Elenco";
È vuoto(_files) = 0;
Manca (_file) = {0};
_file == Vuoto() = 0;
Quando la directory è vuota ottengo:
Tipo(_files) = "Numero";
È vuoto(_files) = 0;
Manca (_file) = 1;
_file == Vuoto() = .;
Come posso utilizzare la variabile Is Missing, ovvero se è 1, assegnare il numero a una variabile come tt=0 e quando la variabile Is Missing è 0, allora tt=1
Qualsiasi aiuto sarebbe apprezzato
Distinti saluti
Colin
Ri: Controlla se un elenco è vuotoManca() su una lista vuota restituirà una lista vuota, perché sta operando su ciascun elemento di una lista.Se l'elenco è vuoto, non sono presenti elementi per Manca() su cui operare, quindi restituisce l'elenco vuoto.Tuttavia, un modo migliore per vederlo è il seguente esempio:
lst = {1,2,.,""};
mancante(lst);
Ri: Controlla se un elenco è vuotoIn JMP 10 e 11 una directory vuota fornisce un elenco vuoto, non un valore mancante e quindi mi aspetterei Manca() per restituire 0. Stranamente, se applicato ad una lista vuota Manca() restituisce una lista vuota, non 0 o 1 che è l'output atteso da una funzione booleana. Non sono sicuro di come funzioni in JMP 9.
Ti suggerisco di usare N Articoli() invece . Per esempio:
tt = ( nitems ( _File ) > 0 ) ;
Se si utilizza Manca() puoi passare da 0 a 1 con l'operatore NOT, ovvero !Is Missing()