Programma di esempio GLOB.PRT |
; GLOB
;
; Programma per Proteus
;
; (C) 1998-2003 Simone Zanella Productions
;
; Stampa la lista dei file che corrispondono a spec (che dovrebbe
; essere specificato tra virgolette).
; Parametri impliciti: input e output predefiniti nulli
;!proteus -z
IF ISEMPTY(ARGV(5))
CONSOLELN "Sintassi: " ARGV(1) " " ARGV(2) " \"specifica\""
CONSOLELN ""
CONSOLELN "Scopo: lista dei file corrispondenti a \"specifica\""
ABORT 0
FI
V = Glob(ARGV(5), 1)
FOR X = 1 TO VECLEN(V)
CONSOLELN VECGET(V, X)
NEXT
ABORT 0
FUNCTION Glob(dirspec, incdir)
q = QUEUENEW()
h = DIROPEN(dirspec, IIF(incdir, 3, 1))
f = IIF(NEQ(h, -1), 1, 0)
WHILE GT(f, 0)
; File trovato
ENQUEUE(q, DIRLAST(h, 1))
f = DIRNEXT(h)
LOOP
DIRCLOSE(h)
y = QUEUELEN(q)
v = VECNEW(y)
IF y
FOR X = 1 TO y
VECSET(v, X, DEQUEUE(q))
NEXT
FI
QUEUEFREE(q)
RETURN v