Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script
Ritorna alla pagina principale
Restituisce una stringa che contiene il carattere comune utilizzato per separare i nomi delle directory in nomi file qualificati per esteso. In Windows e OS/2, esso è una barra retroversa ('\'). In UNIX, è una barra ('/').
FUNCTION $DirSeprStr : STRING;
Questa funzione è utile per analizzare i nomi delle directory e i nomi file qualificati per esteso.
(* Function MakeFilename assembles a fully qualified filename given a list of directory names, a basename, and an extension.*)
FUNCTION MakeFilename(VAL Dir : LIST OF STRING, VAL Base : STRING, VAL Ext : STRING) : STRING IS
ACTIONS
$Result := '';
FOR Dir DO $Result := $Result & $DirSeprStr & Dir[$CURRENT]; END;
$Result := $Result & $DirSeprStr & Base & '.' & Ext; END;
$PathSeprStr
Restituisce una stringa che contiene i caratteri del comando utilizzati dal sistema operativo originale per indicare la fine di una riga in un file. In Windows e OS/2, questa stringa è composta da caratteri "ritorno a capo" (ASCII 13) e "alimentazione della riga" (ASCII 10). In UNIX, questa stringa è composta da un carattere "alimentazione della riga".
FUNCTION $Newline : STRING;
Avvertenza: Durante il trasferimento di file tra sistemi operativi, tener presente che il sistema operativo di origine
può prevedere una stringa fine riga diversa
da quella nel proprio file. Se si verifica ciò, è possibile che il file appaia formattato in modo scorretto.
Questa funzione è utile per scrivere testo formattato su un file. La funzione TSD Script, FWriteLn, accoda automaticamente la stringa fine riga originale a tutte le righe scritte su un file.
(* Function WriteDates: This function writes a list of dates to a file with only one date per line. It returns the number of dates written.*)
FUNCTION WriteDates(VAL Dates : LIST OF DATE, VAL fhdl : FILE) : INTEGER IS
ACTIONS
$Result := 0; FOR Dates DO FWrite(fhdl, Dates[$CURRENT]); FWrite(fhdl, $NewLine); $Result := $Result + 1; END; END;
Restituisce una stringa che contiene il carattere utilizzato per separare i nomi delle directory in percorsi contenenti più nomi directory. Esso è un punto e virgola (';') in Windows e OS/2 e due punti (':') in UNIX.
FUNCTION $PathSeprStr: STRING;
Questa funzione è utile per analizzare percorsi di inquiry.
(* Function MakePath assembles a complete path from a list of directories. *)
FUNCTION MakePath ( VAL Dirs : LIST OF STRING )
: STRING IS
ACTIONS $Result := '';
FOR Dirs DO $Result := $Result & Dirs[$CURRENT] & $PathSeprStr; END; END;
$DirSeprStr
Chiude un file aperto.
FUNCTION FClose (VAL fHdl: FILE): INTEGER;
Nome dell'argomento | Descrizione |
fHdl | L'handle di un file aperto da chiudere |
La funzione FClose fa in modo che il file specificato venga scaricato (se è stato aperto per l'emissione) e chiuso.
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS
CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30;
VARIABLES logFile: FILE; files: $DirectoryList;
ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWrite(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Codice di ritorno | Descrizione |
1 | Completamento riuscito. |
-1 | L'operazione ha avuto esito negativo. |
-2 | Argomento file sconosciuto. |
-6 | Handle non valida. |
FOpen
Indica se il file aperto è alla fine del file.
FUNCTION FEnd (VALUE fHdl: FILE): BOOLEAN;
Avvertenza: Se l'argomento del file è sconosciuto, FEnd restituisce un valore sconosciuto.
Nome dell'argomento | Descrizione |
fHdl | Un'espressione che fornisce un'handle per il file da testare. |
La funzione FEnd restituisce TRUE se il file fornito è aperto per la lettura e l'indicatore è attualmente posizionato alla fine del file (non è possibile leggere nient'altro). Quando FEnd restituisce FALSE, esiste ancora almeno un carattere non letto nel file.
VARIABLES inFile: FILE; line: STRING;
ACTIONS FOpen(inFile,'EMPLOYEES.TXT',$Read); WHILE NOT FEnd(inFile) DO IF FReadLn(inFile,line) = 1 THEN GoProcess(line); END; END;
Codice di ritorno | Descrizione |
TRUE | Il file dato è attualmente collocato sull'indicatore di fine file (in altre parole, nessun elemento dell'immissione è in sospeso dal file). |
$Unknown | L'argomento è valutato $Unknown. |
FALSE | Il file dato non è attualmente collocato sull'indicatore di fine file (in altre parole, l'immissione è in sospeso). |
Cancella un file.
FUNCTION FErase (VAL fileName: STRING): INTEGER;
Avvertenza: Il comportamento di questa funzione non è definito se il file denominato è aperto.
Nome dell'argomento | Descrizione |
fileName | Il nome del file da cancellare |
La funzione FErase fa in modo che il file con quel dato nome venga cancellato. Ogni successivo tentativo di aprire il file utilizzando il nome precedente avrà esito negativo.
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30;
VARIABLES logFile: FILE; files: $DirectoryList;
ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWrite(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-1 | L'operazione ha avuto esito negativo |
-2 | Argomento file sconosciuto |
FOpen
Testa l'esistenza di un file.
FUNCTION FExists (VAL fileName: STRING): BOOLEAN;
Nome dell'argomento | Descrizione |
fileName | Un'espressione di stringa che fornisce un nome file valido. |
If FExists ("C:\MYFILE.DAT") THEN DoProcessFile; ELSE DoCreateFile; END;
Codice di ritorno | Descrizione |
TRUE | Il file esiste |
FALSE | Il file non esiste |
Riporta gli attributi del file system originale associati a un dato file.
FUNCTION FGetAttributes (VAL filename: STRING, REF attributes: INTEGER ) : INTEGER
Nome dell'argomento | Descrizione |
filename | Il percorso completo per il file |
attributes | Questo parametro viene modificato per elencare gli attributi di un dato file. Gli
attributi che è possibile ordinare nella variabile attributi sono:
|
Quanto segue descrive gli indicatori attributo FGetAttributes.
Attributo | Windows & OS/2 | UNIX |
$FILENOPRIVS | Il file è di sola lettura | Impossibile leggere, scrivere o eseguire il file |
$FILEREADABLE | Il file non è di sola lettura | E' possibile leggere il file |
$FILEWRITEABLE | Nessuna | E' possibile scrivere il file |
$FILEEXECUTABLE | Nessuna | E' possibile eseguire il file |
$FILEHIDDEN | Il file è nascosto | Nessuna |
Consultare l'esempio per FSetAttributes.
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-1 | L'operazione ha avuto esito negativo |
-2 | Argomento sconosciuto |
FSetAttributes
Crea un elenco di directory.
FUNCTION FGetDirectory(VAL pattern: STRING, REF directoryList: LIST OF $DIRECTORYRECORD) : INTEGER;
Nome dell'argomento | Descrizione |
pattern | Il modello che specifica quali file sono compresi nell'elenco di directory. E' possibile utilizzare i caratteri jolly * e ?. Tutti i file e le directory i cui nomi corrispondono al modello sono restituiti nell'elenco directory. |
directoryList | Questo parametro deve essere una variabile di tipo $DirectoryRecord. La definizione viene mostrata nella sezione Note. |
$DirectoryRecord è un tipo RECORD dichiarato nel file .kb di sistema (kml.kb). La dichiarazione di $DirectoryRecord è:
$DirectoryRecord IS RECORD filename : STRING; fullname : STRING; filesize : INTEGER; modificationdate : DATE; modificationtime : TIME; isDirectory : BOOLEAN; readOnly : BOOLEAN; flags : INTEGER; END;
Le seguenti sono descrizioni di campo per $DirectoryRecord:
Nome | Descrizione |
fileName | Il nome di un file con estensione. |
fullName | Il nome file del percorso completo. |
filesize | La dimensione di un file in byte. |
modificationDate | La data dell'ultima modifica di un file. |
modificationTime | L'ora dell'ultima modifica di un file. |
isDirectory | Indica se questo è un file o una sottodirectory. |
readOnly | Indica se è possibile o meno scrivere un file. |
flags | Gli attributi del file. |
Il campo indicatori restituisce gli indicatori impostati dal sistema operativo e dipende dalla piattaforma. Consultare la documentazione del sistema operativo per il significato degli indicatori.
KNOWLEDGEBASE DirList; ROUTINES PROCEDURE TestDirectory(VAL pattern: LIST OF STRING);
PRIVATE ROUTINES PROCEDURE TestDirectory(VAL pattern: LIST OF STRING) IS
VARIABLES whdl: WINDOW; dirList: LIST OF $DIRECTORYRECORD;
ACTIONS WinCreateScrollWindow($Desktop,whdl, $NullHandler,0,0,60,0, pattern[1], $SystemMonospaced,10, $WinBorder + $WinTitle + $WinResize + $WinMinMax + $WinTaskList + $WinAutoSize + $WinHScroll + $WinVScroll + $WinSysMenu + $WinAutoPos);
FGetDirectory(pattern[1],dirList); ListSort(dirList); FOR dirList DO WinWrite(whdl,dirList[$CURRENT].fileName); WinGoToXY(whdl,20,WinY(whdl)); WinWrite(whdl,dirList[$CURRENT].fileSize); WinGoToXY(whdl,30,WinY(whdl)); WinWrite(whdl,dirList[$CURRENT].modificationDate); WinGoToXY(whdl,40,WinY(whdl)); WinWrite(whdl,dirList[$CURRENT].modificationTime); WinGoToXY(whdl,50,WinY(whdl)); IF dirList[$CURRENT].isDirectory THEN WinWrite(whdl,'Directory '); END; IF dirList[$CURRENT].readOnly THEN WinWrite(whdl,'Read only'); END; WinWriteLN(whdl); END; WinWait(whdl); END (* Test Directory *);
Codice di ritorno | Descrizione |
Maggiore o uguale a zero | Un valore non negativo restituito da FGetDirectory è il numero di voci (file) in quella directory. |
-1 | La richiesta di directory ha avuto esito negativo. E' possibile che l'unità specificata nel modello non esista o che non sia leggibile. |
-2 | Valore sconosciuto. |
Apre un file.
FUNCTION FOpen (REF fHdl: File, VAL name: String [,$READ|$CREATE|$APPEND] ): Integer;
Nome dell'argomento | Descrizione |
fHdl | Questo parametro viene modificato per riferirsi al file aperto. Se l'operazione FOpen non riesce, il parametro è impostato su $Unknown. |
name | Un PATH relativo o assoluto per il file da aprire. |
$READ $CREATE $APPEND |
Designazione modalità. Il valore di default è $READ. |
La funzione FOpen apre il file di testo con il nome fornito, nella modalità specificata e lo associa al valore fHdl dato. Se non viene fornito alcun argomento modalità, il valore di default è $READ.
Suggerimento: FOpen ha esito negativo se il file specificato è già aperto. Il valore di ritorno in questo caso è -1.
TSD Script non supporta file di testo ad accesso casuale, perciò non esiste un modo per leggere da e scrivere sullo stesso file senza chiuderlo e riaprirlo con la modalità appropriata tra le operazioni.
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30;
VARIABLES logFile: FILE; files: $DirectoryList;
ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWrite(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Codice di ritorno | Descrizione |
1 | Completamento riuscito. |
-1 | L'operazione ha avuto esito negativo al livello del sistema operativo. Viene restituito ciò se il file specificato è già aperto. |
-2 | Nome file sconosciuto |
Legge valori semplici da un file aperto e li assegna alle variabili di riferimento.
FUNCTION FRead (VAL fHdl: FILE [, REF var: ANY SIMPLE TYPE...] ) : INTEGER;
Avvertenza: Le stringhe consumano tutta l'immissione fino alla fine della riga. L'inserimento di argomenti di immissione dopo un argomento stringa fa in modo che FRead abbia esito negativo.
Nome dell'argomento | Descrizione |
fHdl | Un'handle del file impostato da una precedente chiamata di FOpen. E' necessario chiamare FOpen in modalità $READ. |
var | Zero o più espressioni assegnabili (quando è possibile che vengano visualizzate sul lato sinistro di un operazione di assegnazione). |
La funzione FRead legge valori semplici (come BOOLEAN, INTEGER, REAL, STRING, TIME e DATE) da un dato file e li assegna alle variabili associate dall'elenco argomenti ad esse relativo fino a quando non vengono letti i valori per tutti gli argomenti dati.
La tabella che segue mostra i formati in cui FRead prevede di leggere i valori:
Formato | Descrizione |
BOOLEAN | TRUE o FALSE. |
INTEGER | Una sequenza di cifre decimali (0-9) interpretate come un numero intero decimale. La sequenza '0x' o '0X' seguita da una o più cifre esadecimali (0-9, A-F, o a-f) viene interpretata come un numero intero esadecimale. Entrambe le forme possono essere precedute facoltativamente da un segno '+' o '-'. |
REAL | Una sequenza di cifre decimali (0-9) che può essere preceduta da un segno '+' o '-'. La sequenza può essere seguita da una virgola decimale e da una o più cifre decimali, che possono essere seguite da un esponente. L'esponente consiste in una 'E' o 'e', seguita da un segno facoltativo e da una a tre cifre decimali. |
STRING | Ogni carattere fino alla fine della riga. FRead non legge oltre la fine della riga. |
TIME | Una sequenza nel formato hh:mm:ss, dove hh, mm e ss sono una o due cifre decimali. |
DATE | Una sequenza nel formato mm/dd/yy, dove mm, dd e yy sono una o due cifre decimali. La funzione FRead termina se si verifica una delle due seguenti eventualità:
|
Fine lettura
Se l'operazione di lettura termina, non viene elaborata nessuna ulteriore immissione. Viene restituito un codice di errore. Qualsiasi argomento per cui non sono stati letti i valori, non viene modificato da questa condizione di errore. Gli argomenti per cui i valori sono stati letti con esito positivo, vengono aggiornati.
Se una chiamata di FRead termina perché è stata raggiunta la fine della riga, tutte le successive chiamate di FRead hanno esito negativo senza leggere alcun valore fino a quando non viene chiamata la funzione FReadLn per andare alla riga successiva.
Delimitatori spazio bianco
Quando è possibile, è necessario delimitare i valori nel file di input utilizzando uno o più caratteri spazio bianco (spazi e tabulazioni). Tuttavia, in alcuni casi, i valori possono non richiedere alcun carattere di delimitazione.
Ad esempio, un valore REAL e BOOLEAN non richiede l'impiego di spazi bianchi, poiché i caratteri che iniziano o terminano un valore BOOLEAN non possono apparire alle estremità di un valore real, e viceversa.
PROCEDURE PlayTune (VAL fileName: STRING) IS VARIABLES toneFile: FILE; delay, frequency, duration: INTEGER;
ACTIONS IF FOpen(toneFile, fileName) 0 THEN EXIT; END;
WHILE FRead(toneFile, delay, frequency, duration) 0 DO SysDelay(delay); SysTone(frequency, duration); END; FClose(toneFile); END;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-1 | L'operazione ha avuto esito negativo (errore di conversione o fine prematura della riga) |
-2 | File sconosciuto |
-4 | File non aperto |
-5 | Raggiunta la fine del file |
-6 | Handle non valida. |
Legge una riga di immissione da un file aperto, assegnando i valori semplici costitutivi alle variabili di riferimento.
FUNCTION FReadLn (VAL fHdl: FILE [, REF var: ANY SIMPLE TYPE... ] ): INTEGER;
Avvertenza: Le stringhe consumano tutta l'immissione fino alla fine della riga. Perciò, fornendo gli argomenti dell'immissione dopo un argomento stringa FReadLn ha esito negativo.
Nome dell'argomento | Descrizione |
fHdl | Un'handle del file impostato da una precedente chiamata di FOpen. E' necessario chiamare FOpen in modalità $READ. |
var | Zero o più espressioni assegnabili. Le espressioni assegnabili vengono visualizzate sul lato sinistro di un'operazione di assegnazione. |
La funzione FReadLn legge valori semplici (come BOOLEAN, INTEGER, REAL, STRING, TIME e DATE) da un file e li assegna alle variabili associate dall'elenco argomenti ad esse relativo. Tutti i caratteri che rimangono sulla riga di immissione, inclusi quelli che indicano la fine della riga, vengono eliminati.
La tabella che segue mostra i formati in cui FReadLn prevede di leggere i valori:
Formato | Descrizione |
BOOLEAN | TRUE o FALSE. |
INTEGER | Una sequenza di cifre decimali (0-9) interpretate come un numero intero decimale. La sequenza '0x' o '0X' seguita da una o più cifre esadecimali (0-9, A-F, o a-f) viene interpretata come un numero intero esadecimale. Entrambe le forme possono essere precedute facoltativamente da un segno '+' o '-'. |
REAL | Una sequenza di cifre decimali (0-9) che può essere preceduta da un segno '+' o '-'. La sequenza può essere seguita da una virgola decimale e da una o più cifre decimali, che possono essere seguite da un esponente. L'esponente consiste in una 'E' o 'e', seguita da un segno facoltativo e da una a tre cifre decimali. |
STRING | Ogni carattere fino alla fine della riga. FRead non legge oltre la fine della riga. |
TIME | Una sequenza nel formato hh:mm:ss, dove hh, mm e ss sono una o due cifre decimali. |
DATE | Una sequenza nel formato mm/dd/yy, dove mm, dd e yy sono una o due cifre decimali. La funzione FRead termina se si verifica una delle due seguenti eventualità:
|
Fine
Se si raggiunge la fine di una riga prima che i valori vengano letti per tutti gli argomenti dati o se viene letto un valore che non è possibile convertire nel tipo appropriato per il parametro associato, l'operazione di lettura termina senza elaborare nessuna ulteriore immissione (inclusa la fine del designatore di riga).
Nota: Viene restituito un codice di errore. Qualsiasi argomento per cui non sono stati letti i valori, non viene modificato da questa condizione di errore.
Gli argomenti per cui i valori sono stati letti con esito positivo, vengono aggiornati.
Delimitatori spazio bianco
Quando è possibile, è necessario delimitare i valori nel file di input utilizzando uno o più caratteri spazio bianco (spazi e tabulazioni). Tuttavia, in alcuni casi, i valori possono non richiedere alcun carattere di delimitazione.
Ad esempio, i valori REAL e BOOLEAN non richiedono l'impiego di spazi bianchi, poiché i caratteri che iniziano o terminano un valore BOOLEAN non possono apparire alle estremità di un valore real, e viceversa.
VARIABLES lineNumber{ 0 }: INTEGER; scriptFile, logFile: FILE; msgTime, actualTime: TIME; index, msgId: INTEGER; data: STRING;
ACTIONS IF FOpen(scriptFile, 'SCRIPT.TXT') < 0 THEN EXIT FAILCODE; END; IF FOpen(logFile, 'SCRIPT.LOG', $CREATE) < 0 THEN FClose(scriptFile); EXIT FAILCODE; END; WHILE NOT FEnd(scriptFile) DO lineNumber := lineNumber + 1; IF FReadLn(scriptFile, msgTime, index, msgId, data) <1 THEN FWriteLn(logFile, 'Invalid entry on line #' & lineNumber); ELSE SysDelay(TimeDif(msgTime, $Now) * 1000); actualTime := $Now; SendMsg(g_WindowArray[index], msgId, data); FWriteLn(logFile, actualTime & ': Sent ' & msgId & ' ' & $Quote & data & $Quote & ' to window #' & index); END; END; EXIT SUCCESSCODE; END;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-1 | L'operazione ha avuto esito negativo (errore di conversione o fine prematura della riga) |
-2 | File sconosciuto |
-4 | File non aperto |
-5 | Raggiunta la fine del file |
-6 | Handle non valida. |
Legge un file in un elenco di stringhe.
FUNCTION FReadText (VAL fHdl: FILE, REF lst: LIST OF STRING):INTEGER;
Nome dell'argomento | Descrizione |
fHdl | Restituisce un'handle a un file in quel parametro |
lst | Una variabile elenco (stringa) il cui contenuto è sostituito dal contenuto del file. |
FReadText legge il contenuto del file in un elenco di stringhe, una riga per ogni elemento dell'elenco. Se i valori vengono letti dal file dal momento in cui è stato aperto e prima di chiamare FReadText, la restante immissione viene letta.
Nota: Se il completamento riesce, FReadText restituisce il numero di righe lette con esito positivo.
KNOWLEDGEBASE Scroll; CONSTANTS MENU_OPEN IS 101; MENU_EXIT IS 102; MENU_LIST IS {'~File','~Open','E~xit',''}: LIST OF STRING;
TYPES EditorData IS RECORD statusLine: STRING; lines: LIST OF STRING; END;
ROUTINES PROCEDURE FileView;
PRIVATE ROUTINES EVENT EditorEvent(REF editorData: EditorData) IS ROUTINES PROCEDURE ProcessMainMenu(VALUE selection: INTEGER) IS VARIABLES fileName: STRING; editFile: FILE; result : INTEGER; ACTIONS WHEN selection IS MENU_OPEN THEN WinFileDialog($Handle,fileName,'*.KB',5,5, 'Select file to edit',0); IF FOpen(editFile,fileName,$Read) > 0 THEN FReadText(editFile,editorData.lines); FClose(editFile); editorData.statusLine := ' File: ' & fileName; WinClear( $Handle ); WinWriteLN($Handle,editorData.lines); PostMessage($Handle,$MsgPaintStatus); ELSWHEN MENU_EXIT THEN SendMessage($Handle,$MsgClose); END; END; END (* Process Main Menu *); ACTIONS WHEN $Event IS $MsgCreate THEN WinSetMenuBar( $Handle, menuList ); editorData.statusLine := 'File:'; ELSWHEN $MsgMenu THEN ProcessMainMenu($MenuSelection); ELSWHEN $MsgPaintStatus THEN (* Status Bar *) WinClear( $Handle ); WinWrite($Handle,editorData.statusLine); END; END (* Editor Event *); PROCEDURE FileView IS VARIABLES whdl: WINDOW; ACTIONS WinCreateScrollWindow($Desktop,whdl,EditorEvent,0,0,0,0, 'KML File viewer', $SystemMonospaced,10, BitOr($WinBorder,$WinTitle, $WinResize, $WinSysMenu, $WinMenu,$WinStatus, $WinAutoPos,$WinAutoSize, $WinVScroll,$WinHScroll, $WinTaskList)); WinWait(whdl); END (* File View *);
Codice di ritorno | Descrizione |
Maggiore di zero | Riuscito. Restituisce il numero di byte letti. |
-1 | Argomento sconosciuto. |
-2 | L'operazione ha avuto esito negativo. |
-4 | File non aperto. |
-6 | Handle non valida. |
Imposta gli attributi del file al livello del sistema operativo associati al file fornito.
FUNCTION FSetAttributes (VAL filename: STRING, VAL attributes: INTEGER ): INTEGER
Nome dell'argomento | Descrizione |
filename | Il percorso completo per il file |
attributes | Questo parametro è l'elenco degli attributi da impostare su un dato file.
Gli attributi che è possibile ordinare nella variabile attributi sono
|
Quanto segue descrive gli indicatori attributo FSetAttributes.
Attributo | Significato in Windows & OS/2 | UNIX |
$FILENOPRIVS | Il file è di sola lettura | Impossibile leggere, scrivere o eseguire il file |
$FILEREADABLE | Il file non è di sola lettura | E' possibile leggere il file |
$FILEWRITEABLE | Nessuna | E' possibile scrivere il file |
$FILEEXECUTABLE | Nessuna | E' possibile eseguire il file |
$FILEHIDDEN | Il file è nascosto | Nessuna |
PROCEDURE MakeFileReadOnly IS
VARIABLES attributes : INTEGER; retval : INTEGER;
ACTIONS -- Get the current attributes retval := FGetAttributes('c:\sai\ea\mylog.txt', attributes); IF ( retval <> 1 ) THEN -- Handle the error' END; -- Turn on read-only attribute and apply retval := FSetAttributes('c:\sai\ea\mylog.txt', BitOr($FileReadOnly, attributes) ); END;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-1 | L'operazione ha avuto esito negativo |
-2 | Argomento sconosciuto |
FGetAttributes
Scrive i dati formattati su un file.
FUNCTION FWrite (VAL fHdl: FILE, VAL data: [LIST OF] STRING) : INTEGER;
Avvertenza: Nessun carattere nuova riga (fine della riga) viene scritto da FWrite al completamento dell'operazione di emissione.
Nome dell'argomento | Descrizione |
fHdl | Una variabile file impostata da una precedente chiamata di FOpen con l'indicatore di modalità di scrittura $Create o $Append. |
data | Una espressione di stringa (o un elenco di stringhe) che deve essere scritta sul file indicato. |
La funzione FWrite scrive valori semplici su un dato file senza caratteri di terminazione o separatori. E' possibile eseguire la formattazione del testo di emissione utilizzando gli operatori di concatenamento e formattazione di stringa ( : e & ).
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30; VARIABLES logFile: FILE; files: $DirectoryList; ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWrite(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Codice di ritorno | Descrizione |
>=0 | 0 - stringa vuota fornita come argomento alla
funzione, solo il ritorno a capo è stato scritto sul file n - numero positivo >0 che rappresenta il numero di righe scritte sul file |
-1 | Argomento sconosciuto |
-2 | L'operazione ha avuto esito negativo |
-4 | File non aperto |
-6 | Handle non valida |
Scrive una riga di dati formattati su un file.
FUNCTION FWriteLn (VAL fHdl: FILE, VAL data: [LIST OF] STRING): INTEGER;
Nome dell'argomento | Descrizione |
fHdl | Una variabile file impostata da una precedente chiamata di FOpen con una modalità file di $Create o $Append. |
data | Un'espressione di stringa o elenco di stringhe scritte al di fuori del file indicato alla posizione attuale del file. |
Come FWrite, la funzione FWriteLn scrive valori semplici in un file di testo. FWriteLn differisce da FWrite perché emette un carattere di fine riga dopo aver scritto i valori argomento a esso relativi (equivale a $NewLine).
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30; VARIABLES logFile: FILE; files: $DirectoryList; ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWriteLn(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Codice di ritorno | Descrizione |
>=0 | 0 - stringa vuota fornita come argomento alla
funzione, solo il ritorno a capo è stato scritto sul file n - numero positivo >0 che rappresenta il numero di righe scritte sul file |
-1 | Argomento sconosciuto. |
-2 | L'operazione ha avuto esito negativo. |
-4 | File non aperto. |
-6 | Handle non valida. |
Questa funzione consente di caricare e visualizzare un file guida, come WinHelp, guida IPF (per OS/2) o HTML per tutte le piattaforme. HelpOpen richiama il file guida richiesto e visualizza il nome sezione specificato, la Guida nella sezione Guida o la sezione Contenuti.
Per la guida HTML, è necessario specificare la variabile di ambiente, "WebBrowser,". Se questa variabile non è impostata, Windows utilizza il browser di default, mentre UNIX e OS/2 utilizzano Netscape Navigator. Se viene specificata una URL relativa, questa diventa una URL assoluta anteponendola alla variabile di ambiente SAI_ROOT nella modalità originale o al codice base dell'Applet quando le applicazioni vengono abilitate all'utilizzo del web.
FUNCTION HelpOpen( VAL whdl: WINDOW, VAL filename: String, [VAL section: STRING]): INTEGER;
Nome dell'argomento | Descrizione |
whdl | Questa variabile è l'handle della finestra della finestra padre. |
filename | Il nome file del file guida da aprire. Questa variabile può contenere informazioni in uno dei seguenti formati:
|
section | L'argomento del file guida da visualizzare. Questa variabile può essere il nome della sezione o una delle due seguenti costanti di stringa:
|
La funzione HelpOpen avvia il file system guida e apre il file guida per la sezione specificata utilizzando la sezione e il nome file forniti. Se la funzione non riesce, viene restituito il codice di errore appropriato.
KNOWLEDGEBASE HLPEXPL; CONSTANTS HLP IS 'C:\TEST.HLP'; VARIABLES ret: Integer; ROUTINES PROCEDURE TestHelp; PRIVATE ROUTINES PROCEDURE TestHelp IS VARIABLES ACTIONS ret := HelpOpen( $Desktop, HLP, $OSHelpOnHelp); If ret < 1 THEN WinMessageBox($Desktop, 'Help File Read Error', BitOr($MBOK , $MBIconInformation), 'Unknown error reading data from the help file.'); END; -- Test Help -- END OF HLPEXPL.KB
Codice di ritorno | Descrizione |
1 | Completamento riuscito. |
-1 | Argomento sconosciuto. |
-2 | L'operazione ha avuto esito negativo al livello del sistema operativo. |
-3 | Memoria insufficiente. |
-4 | L'operazione ha avuto esito negativo al livello del sistema operativo. Questo valore viene restituito se il parametro sezione contiene un valore sconosciuto. |
-5 | L'inizializzazione del file system guida ha avuto esito negativo. |
-6 | L'associazione della finestra file system guida ha avuto esito negativo. |
-7 | La creazione dell'oggetto file system guida ha avuto esito negativo. |
-8 | Il file system guida non è stato in grado di visualizzare il file. |
Questa funzione legge i dati da un file di inizializzazione. Consente di memorizzare e richiamare informazioni in file di inizializzazione della piattaforma di origine.
FUNCTION IniRead(REF rVal: [ STRING | INTEGER | BOOLEAN ], VAL filename: STRING, VAL section: STRING, VAL item: STRING, default: [STRING| INTEGER | BOOLEAN], [VAL filetype: STRING] ): INTEGER;
Nome dell'argomento | Descrizione |
rVal | Questa variabile può essere un valore STRING, INTEGER o BOOLEAN. Essa riceve i dati letti dal file .ini. |
filename | Il nome file del file .ini da leggere. Questa variabile può contenere informazioni in uno dei seguenti formati:
|
section | La sezione del file .ini da cui devono essere lette le informazioni. |
item | La voce nella sezione del file .ini da cui devono essere lette le informazioni. |
default | Questa variabile può essere un valore STRING, INTEGER o BOOLEAN. Essa contiene i dati di default per rVal se è stato impossibile trovare la voce da leggere. |
La funzione IniRead legge la voce dalla sezione di inizializzazione utilizzando la voce, la sezione e il nome del file forniti. Se la voce non esiste, il valore di default viene collocato in rVal.
KNOWLEDGEBASE EXPL; CONSTANTS INI IS 'C:\TEST.INI';
TYPES IniRecord IS Record Filename:String; FileSection:String; FileItem:String; ItemDefault:String; ItemRVal:String; ItemSData:String; ListSection: List of String; END;
VARIABLES Settings: IniRecord; ret: Integer;
ROUTINES PROCEDURE Read_From_Ini; PROCEDURE TestIni;
PRIVATE ROUTINES PROCEDURE Scan_From_Ini IS VARIABLES fh: FILE; ACTIONS ret := IniRead(Settings.ItemRVal, Settings.Filename, Settings.FileSection, Settings.FileItem, Settings.ItemDefault); if ret < 1 THEN WinMessageBox($Desktop, 'Ini File Read Error', $MBOK + MBIconInformation, 'Unknown error reading data from the file.'); END; END; -- Read from file PROCEDURE TestIni IS
ACTIONS Settings.Filename := INI; Settings.FileSection := 'section'; Settings.FileItem := 'item'; Settings.ItemDefault := 'default'; Settings.ItemSData := 'data'; Scan_From_Ini; WinMessageBox($Desktop, 'Status', $MBOK + MBIconInformation, 'Procedure was successful if no file error messages were reported.'); END; END
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-1 | Argomento sconosciuto |
-2 | L'operazione ha avuto esito negativo al livello del sistema operativo |
-5 | File non trovato |
Con questa funzione si ottiene un elenco di voci da una specifica sezione del file di inizializzazione.
FUNCTION IniScan(REF rVal: List of String, VAL filename: String, Val section: String, [Val filetype: String] ): Integer;
Nome dell'argomento | Descrizione |
rVal | Questa variabile è di tipo Elenco di stringhe. Essa riceve un elenco di dati letti dal file .ini. |
filename | Il nome file del file .ini da leggere. Questa variabile può contenere informazioni in uno dei seguenti formati:
|
section | La sezione del file .ini da cui devono essere lette le informazioni. |
La funzione IniScan legge un elenco di voci dalla sezione di inizializzazione, utilizzando la sezione e il nome del file forniti. Se le voci non esistono, viene restituito il codice di errore appropriato.
KNOWLEDGEBASE EXPL;
CONSTANTS INI IS 'C:\TEST.INI';
TYPES IniRecord IS Record Filename:String; FileSection:String; FileItem:String; ItemDefault:String; ItemRVal:String; ItemSData:String; ListSection: List of String; END;
VARIABLES Settings: IniRecord; ret: Integer;
ROUTINES PROCEDURE Scan_From_Ini; PROCEDURE TestIni;
PRIVATE
ROUTINES PROCEDURE Scan_From_Ini IS
VARIABLES fh: FILE; ACTIONS ret := IniScan(Settings.ListSection, Settings.Filename, Settings.FileSection); if ret < 1 THEN WinMessageBox($Desktop, 'Ini File Read Error', $MBOK + MBIconInformation, 'Unknown error reading data from the file.'); END; END; -- Scan from file
PROCEDURE TestIni IS VARIABLES
ACTIONS Settings.Filename := INI; Settings.FileSection := 'section'; Settings.FileItem := 'item'; Settings.ItemDefault := 'default'; Settings.ItemSData := 'data'; Scan_From_Ini;
WinMessageBox($Desktop, 'Status', $MBOK + MBIconInformation, 'Procedure was successful if no file error messages were reported.');
END;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-1 | Argomento sconosciuto |
-2 | L'operazione ha avuto esito negativo al livello del sistema operativo |
-4 | Nessuna creazione. Il sistema operativo non è stato in grado di creare l'oggetto richiesto. Una possibile causa è che l'handle della finestra padre fa riferimento a una finestra che non esiste più. |
Questa funzione scrive i dati su un file di inizializzazione.
FUNCTION IniWrite(Val filename: String, Val section: String, Val item: String, Val data:[String | Integer | Boolean ], ): Integer;
Nome dell'argomento | Descrizione |
filename | Il nome file del file .ini su cui i dati vengono scritti. Questa variabile può contenere informazioni in uno dei seguenti formati:
|
section | La sezione del file .ini per cui devono essere scritte le informazioni. |
item | La voce nella sezione del file .ini per cui vengono scritte le informazioni. |
data | Questa variabile può essere un valore STRING, INTEGER o BOOLEAN. Essa contiene i dati scritti per la voce della sezione specificata. |
La funzione IniWrite scrive la voce e i dati per la sezione di inizializzazione utilizzando la voce, la sezione e il nome del file forniti. Se la voce esiste, il suo valore viene sovrascritto nel file.
KNOWLEDGEBASE EXPL;
CONSTANTS INI IS 'C:\TEST.INI';
TYPES IniRecord IS Record Filename:String; FileSection:String; FileItem:String; ItemDefault:String; ItemRVal:String; ItemSData:String; ListSection: List of String; END;
VARIABLES Settings: IniRecord; ret: Integer;
ROUTINES PROCEDURE Write_To_Ini; PROCEDURE TestIni;
PRIVATE ROUTINES
PROCEDURE Write_To_Ini IS VARIABLES fh: FILE; ACTIONS ret := IniWrite(Settings.Filename, Settings.FileItem, Settings.ItemSData); if ret < 1 THEN WinMessageBox($Desktop, 'Ini File Read Error', $MBOK + MBIconInformation, 'Unknown error reading data from the file.'); END; END; -- Write to file
PROCEDURE TestIni IS
VARIABLES
ACTIONS Settings.Filename := INI; Settings.FileSection := 'section'; Settings.FileItem := 'item'; Settings.ItemDefault := 'default'; Settings.ItemSData := 'data';
Write_To_Ini;
WinMessageBox($Desktop, 'Status', $MBOK + MBIconInformation, 'Procedure was successful if no file error messages were reported.');
END; -- END OF EXPL.KB
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-1 | Argomento sconosciuto |
-2 | L'operazione ha avuto esito negativo al livello del sistema operativo |
Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script
Ritorna alla pagina principale