53 lines
1.6 KiB
Prolog
53 lines
1.6 KiB
Prolog
; *******************************************************************************************
|
|
; PROGRAM BY DI BERNARDO GIANFRANCO
|
|
;
|
|
; SCOPO: questa funzione estrae dal file "File_Name_Conf" gli interi "pos" ( vedi formato del file )
|
|
; e li memorizza in un array di interi.
|
|
;
|
|
; PARAMETRI INPUT: - File_Name_Conf
|
|
;
|
|
; PARAMETRI OUTPUT: - ARRAY di interi contenente le posizioni specificate nel file "File_Name_Conf" ( OR )
|
|
; - "stringa" ( descrive l'errore)
|
|
;
|
|
; *******************************************************************************************
|
|
|
|
|
|
|
|
FUNCTION Extract_pos, File_Name_Conf
|
|
|
|
;--Opzioni di compilazione--
|
|
COMPILE_OPT STRICTARR
|
|
|
|
|
|
;-- Legge le posizioni dal file di configurazione e memorizza i dati
|
|
;-- in un array di interi
|
|
;-------------------------------------------------------------------
|
|
GET_LUN, unit_read
|
|
OPENR, unit_read, File_Name_Conf, Error = err
|
|
IF( err NE 0 ) THEN BEGIN
|
|
FREE_LUN, unit_read
|
|
RETURN, !Err_string
|
|
ENDIF
|
|
|
|
intestazione = ''
|
|
;-- Legge l'intestazione
|
|
READF, unit_read, intestazione
|
|
|
|
Array_pos = INTARR(1)
|
|
num_el = 0
|
|
WHILE( NOT EOF(unit_read) ) DO BEGIN
|
|
pos = 0
|
|
name = ''
|
|
type = 0
|
|
READF, unit_read, pos, type, name
|
|
num_el = num_el + 1
|
|
IF( num_el GT 1 ) THEN BEGIN
|
|
Array_pos = [ Array_pos, pos ]
|
|
ENDIF ELSE Array_pos[0] = pos
|
|
ENDWHILE
|
|
FREE_LUN, unit_read
|
|
|
|
RETURN, Array_pos
|
|
|
|
END
|