Programma di esempio CHECK.PRT |
; CHECK
;
; Programma per Proteus
;
; (C) 2003 Simone Zanella Productions
;
; Verifica che il file specificato non contenga caratteri al di fuori del range ASCII 32-126, 13, 10.
#!proteus -z
IF STREQ(ARGV(5), "")
CONSOLELN "Sintassi: " ARGV(1) " " ARGV(2) " sorgente"
CONSOLELN ""
CONSOLELN "Scopo: verifica che il file non contenga caratteri al di fuori dell'intervallo"
CONSOLELN "32-126 + CR/LF"
ABORT 0
FI
Admitted = CHR(13) CHR(10)
FOR X = 32 TO 126
Admitted = Admitted CHR(X)
NEXT
H = FOPEN(ARGV(5), 1)
IF EQ(H, -1)
CONSOLELN "File non trovato: " ARGV(5)
FI
N = 0
Primo = 0
WHILE NOT(FEOF(H))
L = FREAD(H, 512)
P = STRCPBRK(L, Admitted)
N2 = N
Rest = L
WHILE NEQ(P, 0)
IF NOT(Primo)
CONSOLELN "Offset caratteri non ammessi:"
Primo = 1
FI
CONSOLELN PFORMAT("06X", ADD(@N2, DEC(P))) " chr(" ASC(SUBSTR(Rest, P, 1)) ")"
Rest = RESTFROM(Rest, INC(P))
P = STRCPBRK(Rest, Admitted)
LOOP
ADD(@N, STRLEN(L))
LOOP
FCLOSE(H)
IF NOT(Primo)
CONSOLELN "Nessun carattere non ammesso."
FI
ABORT 0