Programma di esempio TOLOWER.PRT |
; TOLOWER
;
; Programma per Proteus
;
; (C) 2001-2003 Simone Zanella Productions
;
; Questo programma rinomina tutti i file corrispondenti alla specifica in modo che il loro nome risulti
; costituito solo da caratteri minuscoli.
#!proteus -z
IF ISEMPTY(ARGV(5))
CONSOLELN "Sintassi: TOLOWER filespec"
CONSOLELN ""
CONSOLELN "Scopo: Converte tutti i nomi di file indicati in minuscolo."
ABORT 0
FI
; Divide il percorso dal nome del file
Path = SplitPath(ARGV(5))
; Cerca i file corrispondenti alla specifica e li memorizza in un albero AVL
; (l'informazione associata ad ogni elemento è "." e viene successivamente ignorata)
H = DIROPEN(ARGV(5), 1)
F = IIF(NEQ(H, -1), 1, 0)
A = AVLNEW()
WHILE GT(F, 0)
AVLSET(A, DIRLAST(H, 1), ".")
F = DIRNEXT(H)
LOOP
DIRCLOSE(H)
; Attraversa l'albero AVL, rinominando i file in minuscolo
AVLTRAVERSE(A, Rinomina)
ABORT 0
FUNCTION Rinomina(nome, trash)
dossource = LOWER(SHORTNAME(_Path nome))
lfnsource = _Path nome
FRENAME(lfnsource, dossource)
RETURN 0
FUNCTION SplitPath(pathname)
P = STRRSTR(pathname, "\\")
IF NEQ(P, 0)
RETURN LEFT(pathname, P)
FI
RETURN ""