Identificatori

Un identificatore è il nome di una variabile; in Proteus, una variabile può essere una stringa, un numero intero o un numero in virgola mobile, senza distinzione. Ogni variabile può cambiare il suo tipo durante l'esecuzione e diviene esistente la prima volta che viene menzionata nel programma. 

Un identificatore è semplicemente una sequenza di caratteri (insensibile alle maiuscole) di qualsiasi lunghezza; non sono ammessi spazi, tabulazioni, virgolette o i simboli '=', '&', '|', '^', '*', '\', '/' nel nome, che inoltre non può iniziare con un numero (0-9), con un segno (+/-) o con i caratteri '@' e '!'.

Le variabili non possono essere utilizzate prima di avervi assegnato un valore: nel caso in cui ciò accada, Proteus arresterà l'esecuzione segnalando la variabile che ha causato l'eccezione.

Esempi
Identificatori validi:
STRING X A1
Identificatori non validi:
1A MY"VAR STREQ

Vi sono alcuni identificatori predefiniti:

L riga corrente (stringa)
N numero righe lette
S dimensione del file elaborato (in bytes)
F nome del file elaborato
EOF flag booleano: fine del file?
BOF flag booleano: inizio del file?
ARGC numero parametri sulla linea di comando (minimo 4)
EOL terminatore di riga, utilizzato da PRINTLN, FWRITELN, FINSERT; il valore predefinito dipende dalla versione in uso: CR+LF sotto Dos/Windows™, LF sotto Unix™
CEOL terminatore di riga, utilizzato da CONSOLELN e DEBUG; il valore predefinito dipende dalla versione in uso: CR+LF sotto Dos/Windows™, LF sotto Unix™
EEOL terminatore di riga, utilizzato da ERRORLN; il valore predefinito dipende dalla versione in uso: CR+LF sotto Dos/Windows™, LF sotto Unix™
OS sistema operativo determinato:
0 = Unix™
1 = Ms-Dos™
2 = Windows™
3 = Win32 ISAPI
4 = Win32 Service 
VERSION versione dell'interprete in uso
R_LENGTH lunghezza della massima stringa che soddisfa l'ultima chiamata di REXMATCH/ REXIMATCH
R_START inizio della prima stringa che soddisfa l'ultima chiamata di REXMATCH/ REXIMATCH
MONTHS stringa di 12 parole, separate da spazi o virgole, utilizzate come valori restituiti dalla funzione CMONTH (Gennaio -> Dicembre); il valore predefinito dipende dalla lingua di compilazione
DAYS stringa di 7 parole, separate da spazi o virgole, utilizzate come valori restituiti dalla funzione CDOW (Domenica -> Sabato); il valore predefinito dipende dalla lingua di compilazione
EPOCH valore di riferimento, utilizzato per determinare l'anno completo nelle date con due sole cifre; il valore di default dipende da quanto impostato durante la configurazione e può essere 0 o 1970
DATE_TYPE formato della data; determina l'interpretazione delle stringhe per tutte le funzioni che operano su date; valori possibili:
  • 0 - formato americano - mm/dd/yy[yy]
  • 1 - formato europeo - dd/mm/yy[yy];
  • 2 - formato giapponese - yy[yy]/mm/dd;

il valore predefinito dipende da quanto specificato durante la configurazione; se DATE_TYPE è diverso dai tre valori indicati, è assunto sempre 1 (formato europeo)

TIME_TYPE formato dell'ora (per DIRLAST, TIME); valori possibili:
  • 0 - 12 ore
  • altro - 24 ore

In entrambi i casi l'ora è lunga 9 caratteri; nel modo a 24 ore, l'ultimo carattere è uno spazio; nel modo a 12 ore è una 'a' o una 'p'. Il formato predefinito dipende da quanto specificato durante la configurazione

PROG_DATA questo identificatore è predefinito solo qualora all'interno del programma compaia la direttiva !endprog; esso assume come valore l'offset nello script della riga che segue la direttiva !endprog
FILE_MASK questo identificatore è predefinito solo sotto Unix™; esso imposta i diritti di accesso utilizzati per la creazione di nuovi file per le seguenti funzioni:

Come consuetudine sotto Unix™, questi diritti sono mascherati dal complemento della umask del processo (modificabile con UMASK).

Il valore assegnato a questo identificatore deve essere una stringa di tre numeri ottali, da "000" a "777", rappresentanti i diritti di accesso al file per il proprietario, il gruppo e gli altri, rispettivamente; ogni cifra è composta sommando i seguenti valori:

  • 1 per il diritto di esecuzione
  • 2 per il diritto di scrittura
  • 4 per il diritto di lettura

Inizialmente, FILE_MASK vale "000".

PID questo identificatore è predefinito solo sotto Unix™; all'inizio dell'esecuzione è impostato al valore del process id.

R_LENGTH ed R_START sono inizialmente nulli e cambiano opportunamente il loro valore dopo ogni esecuzione di REXMATCH/ REXIMATCH.

EOL, CEOL, MONTHS, DAYS, EPOCH, DATE_TYPE, TIME_TYPE e FILE_MASK vanno aggiornati durante il programma, qualora necessario; gli altri identificatori possono essere anch'essi ridefiniti, sebbene ciò non sia consigliabile in quanto rende difficoltosa la comprensione del programma per l'utente.

Si utilizzino PSET e PUB per accedere a queste variabili dall'interno delle funzioni definite dall'utente (UDF). In alternativa, prefiggere il carattere '_' al nome dell'identificatore; PUB(VARIABILE) è equivalente a _VARIABILE.

Inizio pagina Prossimo argomento Argomento precedente Indice per argomenti Indice analitico