Programma di esempio DEARC.PRT |
; DEARC
;
; Programma per Proteus
;
; (C) 1998-2003 Simone Zanella Productions
;
; Questo programma estrae i file contenuti in un archivio creato con ARC.
; I file sono estratti nella directory corrente.
#!proteus -z
IF LT(ARGC, 5)
CONSOLELN "Sintassi: " ARGV(1) " " ARGV(2) " <archivio>"
ABORT 0
FI
H = FOPEN(ARGV(5), 1)
IF EQ(H, -1)
CONSOLELN "Errore: impossibile aprire " ARGV(5)
ABORT 1
FI
ErrorNum = 0
WHILE NOT(FEOF(H))
NameLen = ASC(FREAD(H, 1))
IF FEOF(H)
BREAK
FI
Name = FREAD(H, NameLen)
SizeLen = ASC(FREAD(H, 1))
Size = FREAD(H, SizeLen)
HDest = FOPEN(Name, 26)
CONSOLELN "Estrazione del file: " Name
IF EQ(HDest, -1)
CONSOLELN "Errore: impossibile creare/scrivere " Name
FSEEK(H, Size, 1)
INC(@ErrorNum)
ELSE
WHILE GT(Size, 0)
L = FREAD(H, MIN(Size, 8192))
FWRITE(HDest, L)
SUB(@Size, STRLEN(L))
LOOP
FCLOSE(HDest)
FI
LOOP
FCLOSE(H)
IF GT(ErrorNum, 0)
CONSOLELN "Attenzione: alcuni file non sono stati estratti."
ABORT 2
ELSE
CONSOLELN "File " ARGV(5) " estratto correttamente."
FI
ABORT 0