Programma di esempio TEST.PRT |
; TEST
;
; Programma per Proteus
;
; (C) 1998-2003 Simone Zanella Productions
;
; Vari test.
; Non usa alcun ingresso; l'uscita č inviata alla console.
; Parametri impliciti: input e output predefiniti nulli
;!proteus -z
; Funzione per stampare numeri con separatori per le migliaia
!include "decnum.prt"
; Stampa i numeri usando la UDF DecNum
CONSOLELN DecNum(123456789, 0, 20, ".")
CONSOLELN DecNum(123456789, 1, 20, ".")
CONSOLELN DecNum(123456789, 2, 20, ".")
CONSOLELN DecNum(1234567890, 0, 20, ".")
CONSOLELN DecNum(1234567890, 1, 20, ".")
CONSOLELN DecNum(1234567890, 2, 20, ".")
; Questo evita di eccedere i limiti per gli interi
CONSOLELN DecNum("12345678901", 0, 20, ".")
CONSOLELN DecNum("12345678901", 1, 20, ".")
CONSOLELN DecNum("12345678901", 2, 20, ".")
CONSOLELN DecNum("123456789012", 0, 20, ".")
CONSOLELN DecNum("123456789012", 1, 20, ".")
CONSOLELN DecNum("123456789012", 2, 20, ".")
CONSOLELN DecNum(1, 0, 20, ".")
CONSOLELN DecNum(12, 1, 20, ".")
CONSOLELN DecNum(123, 2, 20, ".")
CONSOLELN DecNum(123456789, 0, 0, ".")
CONSOLELN DecNum(123456789, 1, 0, ".")
CONSOLELN DecNum(123456789, 2, 0, ".")
; Funzioni per manipolare i percorsi sotto Dos, Windows, Unix
!include "filefunc.prt"
FUNCTION TestUDF(file, dummy)
; Questa UDF, utilizzata con SCANUDF, valuta ogni elemento
; in un vettore, poich‚ ritorna sempre 1 ignorando la
; chiave (dummy).
; Verifica che il file sia valido sotto Dos, Unix e
; Windows; se lo č, stampa le sue componenti.
tdos = ChkPathFileDos(file)
tw95 = ChkPathFileWindows(file)
tunx = ChkPathFileUnx(file)
fcomp = VECNEW(4)
IF tdos
DosSplit(file, fcomp)
CONSOLELN "Interpretazione Dos di " file ":"
d = VECGET(fcomp, 1)
CONSOLELN "Drive: " IIF(ISNOTEMPTY(d), d, \
"non specificato")
d = VECGET(fcomp, 2)
CONSOLELN "Percorso: " IIF(ISNOTEMPTY(d), d, \
"non specificato")
d = VECGET(fcomp, 3)
CONSOLELN "Nome: " IIF(ISNOTEMPTY(d), d, \
"non specificato")
d = VECGET(fcomp, 4)
CONSOLELN "Estensione: " IIF(ISNOTEMPTY(d), d, \
"non specificata")
ELSE
CONSOLELN "Il file " file " NON e' valido sotto Ms-Dos."
FI
CONSOLELN ""
IF tw95
DosSplit(file, fcomp)
CONSOLELN "Interpretazione Windows di " file ":"
d = VECGET(fcomp, 1)
CONSOLELN "Drive: " IIF(ISNOTEMPTY(d), d, \
"non specificato")
d = VECGET(fcomp, 2)
CONSOLELN "Percorso: " IIF(ISNOTEMPTY(d), d, \
"non specificato")
d = VECGET(fcomp, 3)
CONSOLELN "Nome: " IIF(ISNOTEMPTY(d), d, \
"non specificato")
d = VECGET(fcomp, 4)
CONSOLELN "Estensione: " IIF(ISNOTEMPTY(d), d, \
"non specificata")
ELSE
CONSOLELN "Il file " file " NON e' valido sotto Windows."
FI
CONSOLELN ""
IF tunx
UnxSplit(file, fcomp)
CONSOLELN "Interpretazione Unix di " file ":"
d = VECGET(fcomp, 1)
CONSOLELN "Percorso: " IIF(ISNOTEMPTY(d), d, \
"non specificato")
d = VECGET(fcomp, 2)
CONSOLELN "Nome: " IIF(ISNOTEMPTY(d), d, \
"non specificato")
d = VECGET(fcomp, 3)
CONSOLELN "Estensione: " IIF(ISNOTEMPTY(d), d, \
"non specificata")
ELSE
CONSOLELN "Il file " file " NON e' valido sotto Unix."
FI
CONSOLELN ""
VECFREE(fcomp)
RETURN 1
; Crea un vettore di percorsi e lo scandisce con la funzione TestUDF
VFILE = VECCREATE("C:\\DOS\\TEST.EXE", "C:\\", \
"C:\\Program Files\\Netscape\\Navigator\\bookmarks.html", \
"/local/usr/zanella/proteus/proteus.c", "test.exe")
SCANUDF(VFILE, "", TestUDF)