Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script

Gestione dei file

Ritorna alla pagina principale


$DirSeprStr

Descrizione

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 ('/').

Sintassi

FUNCTION $DirSeprStr : STRING;

Note

Questa funzione è utile per analizzare i nomi delle directory e i nomi file qualificati per esteso.

Esempio

(* 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;

Consultare anche

$PathSeprStr


$NewLine

Descrizione

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".

Sintassi

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.

Note

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.

Esempio

(* 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;

$PathSeprStr

Descrizione

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.

Sintassi

FUNCTION $PathSeprStr: STRING;

Note

Questa funzione è utile per analizzare percorsi di inquiry.

Esempio

(* 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;

Consultare anche

$DirSeprStr


FClose

Descrizione

Chiude un file aperto.

Sintassi

FUNCTION FClose (VAL fHdl: FILE): INTEGER;

Note argomenti

Nome dell'argomento Descrizione
fHdl L'handle di un file aperto da chiudere

Note

La funzione FClose fa in modo che il file specificato venga scaricato (se è stato aperto per l'emissione) e chiuso.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito.
-1 L'operazione ha avuto esito negativo.
-2 Argomento file sconosciuto.
-6 Handle non valida.

Consultare anche

FOpen


FEnd

Descrizione

Indica se il file aperto è alla fine del file.

Sintassi

FUNCTION FEnd (VALUE fHdl: FILE): BOOLEAN;

Avvertenza: Se l'argomento del file è sconosciuto, FEnd restituisce un valore sconosciuto.

Note argomenti

Nome dell'argomento Descrizione
fHdl Un'espressione che fornisce un'handle per il file da testare.

Note

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.

Esempio

    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;

Codici di ritorno

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).

Consultare anche


FErase

Descrizione

Cancella un file.

Sintassi

FUNCTION FErase (VAL fileName: STRING): INTEGER;

Avvertenza: Il comportamento di questa funzione non è definito se il file denominato è aperto.

Note argomenti

Nome dell'argomento Descrizione
fileName Il nome del file da cancellare

Note

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.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-1 L'operazione ha avuto esito negativo
-2 Argomento file sconosciuto

Consultare anche

FOpen


FExists

Descrizione

Testa l'esistenza di un file.

Sintassi

FUNCTION FExists (VAL fileName: STRING): BOOLEAN;

Note argomenti

Nome dell'argomento Descrizione
fileName Un'espressione di stringa che fornisce un nome file valido.

Esempio

If FExists ("C:\MYFILE.DAT") THEN
 DoProcessFile;
      ELSE
 DoCreateFile;
          END;

Codici di ritorno

Codice di ritorno Descrizione
TRUE Il file esiste
FALSE Il file non esiste

Consultare anche


FGetAttributes

Descrizione

Riporta gli attributi del file system originale associati a un dato file.

Sintassi

FUNCTION FGetAttributes (VAL filename: STRING,
 REF attributes: INTEGER ) : INTEGER

Note argomenti

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:
  • $FILENOPRIVS
  • $FILEREADABLE
  • $FILEWRITEABLE
  • $FILEEXECUTABLE
  • $FILEHIDDEN

Note

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

Esempio

Consultare l'esempio per FSetAttributes.

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-1 L'operazione ha avuto esito negativo
-2 Argomento sconosciuto

Consultare anche

FSetAttributes


FGetDirectory

Descrizione

Crea un elenco di directory.

Sintassi

FUNCTION FGetDirectory(VAL pattern: STRING, REF
 directoryList: LIST OF $DIRECTORYRECORD)
                    : INTEGER;

Note argomenti

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.

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.

Esempio

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 *);

Codici di ritorno

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.

Consultare anche


FOpen

Descrizione

Apre un file.

Sintassi

FUNCTION FOpen (REF fHdl: File, VAL name: String
 [,$READ|$CREATE|$APPEND] ): Integer;

Note argomenti

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.

Note

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.

Esempio

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;

Codici di ritorno

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

Consultare anche


FRead

Descrizione

Legge valori semplici da un file aperto e li assegna alle variabili di riferimento.

Sintassi

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.

Note argomenti

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).

Note

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à:
  • E' stata raggiunta la fine del file o la fine della riga prima che i valori siano stati letti per tutti i dati argomenti.
  • E' stato letto un valore che è impossibile convertire nel tipo appropriato per il parametro associato.

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.

Esempio

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;

Codici di ritorno

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.

Consultare anche


FReadLn

Descrizione

Legge una riga di immissione da un file aperto, assegnando i valori semplici costitutivi alle variabili di riferimento.

Sintassi

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.

Note argomenti

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.

Note

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à:
  • E' stata raggiunta la fine del file o la fine della riga prima che i valori siano stati letti per tutti i dati argomenti.
  • E' stato letto un valore che è impossibile convertire nel tipo appropriato per il parametro associato.

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.

Esempio

    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;

Codici di ritorno

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.

Consultare anche


FReadText

Descrizione

Legge un file in un elenco di stringhe.

Sintassi

FUNCTION FReadText (VAL fHdl: FILE, REF lst: LIST OF STRING):INTEGER;

Note argomenti

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.

Note

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.

Esempio

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 *);

Codici di ritorno

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.

FSetAttributes

Descrizione

Imposta gli attributi del file al livello del sistema operativo associati al file fornito.

Sintassi

FUNCTION FSetAttributes (VAL filename: STRING,
 VAL attributes: INTEGER ): INTEGER

Note argomenti

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
  • $FILENOPRIVS
  • $FILEREADABLE
  • $FILEWRITEABLE
  • $FILEEXECUTABLE
  • $FILEHIDDEN.

Note

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

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-1 L'operazione ha avuto esito negativo
-2 Argomento sconosciuto

Consultare anche

FGetAttributes


FWrite

Descrizione

Scrive i dati formattati su un file.

Sintassi

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.

Note argomenti

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.

Note

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 & ).

Esempio

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;

Codici di ritorno

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

Consultare anche


FWriteLn

Descrizione

Scrive una riga di dati formattati su un file.

Sintassi

FUNCTION FWriteLn (VAL fHdl: FILE, VAL data: [LIST OF] STRING): INTEGER;

Note argomenti

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.

Note

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).

Esempio

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;

Codici di ritorno

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.

Consultare anche


HelpOpen

Descrizione

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.

Sintassi

FUNCTION HelpOpen( VAL whdl: WINDOW, VAL filename: String,
 [VAL section: STRING]): INTEGER;

Note argomenti

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:
  • Il nome file con il percorso completo per il file (nome file qualificato per esteso).
  • Il nome file senza il percorso. La directory del sistema della piattaforma viene utilizzata come ubicazione del file.
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 costante di stringa $OSHelpOnHelp specifica che deve essere visualizzata la guida di default.
  • La costante di stringa $OSHelpContents specifica che viene visualizzato il contenuto della guida.

Note

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.

Esempio

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

Codici di ritorno

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.

IniRead

Descrizione

Questa funzione legge i dati da un file di inizializzazione. Consente di memorizzare e richiamare informazioni in file di inizializzazione della piattaforma di origine.

Sintassi

FUNCTION IniRead(REF rVal: [ STRING | INTEGER | BOOLEAN ],
                 VAL filename: STRING,
                 VAL section: STRING,
                 VAL item: STRING,
                 default: [STRING| INTEGER | BOOLEAN],
                 [VAL filetype: STRING] ): INTEGER;

Note argomenti

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:
  • Il nome file con il percorso completo per il file.
  • Il nome file senza il percorso. La directory del sistema della piattaforma viene utilizzata come ubicazione del file.
  • Le costanti di stringa $OSIni e $SAIni, che sono le ubicazioni, rispettivamente, del file .ini e del file Softart.ini specifiche del sistema operativo.
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.

Note

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.

Esempio

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

Codici di ritorno

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

Consultare anche


IniScan

Descrizione

Con questa funzione si ottiene un elenco di voci da una specifica sezione del file di inizializzazione.

Sintassi

FUNCTION IniScan(REF rVal: List of String,
                 VAL filename: String,
                 Val section: String, [Val filetype:
                 String] ): Integer;

Note argomenti

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:
  • Il nome file con il percorso completo per il file.
  • Il nome file senza il percorso. La directory del sistema della piattaforma verrà utilizzata come l'ubicazione del file.
  • Le costanti di stringa $OSIni e $SAIni, che sono le ubicazioni, rispettivamente, del file .ini e del file Softart.ini specifiche del sistema operativo.
section La sezione del file .ini da cui devono essere lette le informazioni.

Note

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.

Esempio

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;

Codici di ritorno

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ù.

Consultare anche


IniWrite

Descrizione

Questa funzione scrive i dati su un file di inizializzazione.

Sintassi

FUNCTION IniWrite(Val filename: String,
                  Val section: String,
                  Val item: String,
                  Val data:[String | Integer | Boolean ],
                  ): Integer;

Note argomenti

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:
  • Il nome file con il percorso completo per il file.
  • Il nome file senza il percorso. La directory del sistema della piattaforma verrà utilizzata come l'ubicazione del file.
  • Le costanti di stringa $OSIni e $SAIni, che sono le ubicazioni, rispettivamente, del file .ini e del file Softart.ini specifiche del sistema operativo.
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.

Note

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.

Esempio

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

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-1 Argomento sconosciuto
-2 L'operazione ha avuto esito negativo al livello del sistema operativo

Consultare anche


Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script

Ritorna alla pagina principale

Copyright