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 | ||
|
||
|
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:
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:
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:
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 |