Tivoli Service Desk 6.0 Developer's Toolkit Script - Manuel de référence du langage TSD Script
Retour à la page principale
Permet de renvoyer une chaîne contenant les caractères utilisés pour séparer les noms de répertoire dans les noms de fichiers complets. Sous Windows et OS/2, une barre oblique inversée ('\') est utilisée. Sous UNIX, une barre oblique ('/') est utilisée.
FUNCTION $DirSeprStr : STRING;
Cette fonction est utile pour analyser les noms complets de fichiers et les noms de répertoire.
(* 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
Permet de renvoyer une chaîne contenant les caractères de contrôles utilisés par le système d'exploitation natif pour indiquer une fin de ligne dans un fichier. Sous Windows et OS/2, cette chaîne est constituée d'un "retour chariot" (ASCII 13) et de caractères (ASCII 10) de "changement de ligne". Sous UNIX, cette chaîne est constituée d'un caractère de "changement de ligne".
FUNCTION $Newline : STRING;
Attention : lors d'un transfert de fichiers d'un
système d'exploitation à un
autre, n'oubliez pas que le système natif peut utiliser
une chaîne de fin de ligne différente de celle de votre fichier. Si
c'est le cas, votre fichier semble mal formaté.
Cette fonction est utile pour enregistrer du texte formaté dans un fichier. La fonction TSD Script FWriteLn, colle automatiquement la chaîne de fin de ligne native à toutes les lignes contenues dans le fichier.
(* 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;
Renvoie une chaîne contenant le caractère utilisé pour séparer les noms de répertoire dans les chemins d'accès contenant plusieurs noms de répertoire. Il s'agit d'un point virgule (';') sous Windows et OS/2 et de deux points (':') sous UNIX.
FUNCTION $PathSeprStr: STRING;
Cette fonction est utile pour analyser les chemins de recherche.
(* 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
Permet de fermer un fichier ouvert.
FUNCTION FClose (VAL fHdl: FILE): INTEGER;
Nom de l'argument | Description |
fHdl | Descripteur du fichier ouvert qui doit être fermé |
La fonction FClose vide le fichier (s'il était ouvert et utilisé comme fichier de sortie) et le ferme.
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;
Code retour | Description |
1 | Opération exécutée avec succès. |
-1 | L'opération a échoué. |
-2 | Argument de fichier inconnu. |
-6 | Descripteur inapproprié. |
FOpen
Permet d'indiquer que le fichier ouvert est en fin de fichier.
FUNCTION FEnd (VALUE fHdl: FILE): BOOLEAN;
Attention : si l'argument du ficher est inconnu, FEnd renvoie une valeur inconnue.
Nom de l'argument | Description |
fHdl | Expression qui génère un descripteur pour le fichier qui doit être testé. |
La fonction FEnd renvoie le code TRUE si le fichier est ouvert en lecture seule et qu'il se trouve en fin de fichier (impossible d'en lire davantage). Lorsque la fonction FEnd renvoie le code FALSE, cela signifie qu'il reste au moins un caractère à lire dans le fichier.
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;
Code retour | Description |
TRUE | Le fichier concerné se trouve actuellement dans le marqueur de fin de fichier (autrement dit, il n'y a plus de données concernant le fichier). |
$Unknown | L'argument correspond au code $Unknown. |
FALSE | Le fichier concerné ne se trouve pas dans le marqueur de fin de fichier (autrement dit, il existe des données concernant le fichier). |
Permet d'effacer un fichier.
FUNCTION FErase (VAL fileName: STRING): INTEGER;
Attention : le comportement de cette fonction n'est pas défini si le fichier passé en argument est ouvert.
Nom de l'argument | Description |
fileName | Nom du fichier à effacer. |
La fonction FErase permet d'effacer un fichier nommé. Toute tentative ultérieure pour ouvrir le fichier avec le même nom échouera.
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;
Code retour | Description |
1 | Opération exécutée avec succès |
-1 | L'opération a échoué. |
-2 | Argument de fichier inconnu |
FOpen
Permet de vérifier l'existence d'un fichier.
FUNCTION FExists (VAL fileName: STRING): BOOLEAN;
Nom de l'argument | Description |
fileName | Expression de chaîne qui génère un nom de fichier valide. |
If FExists ("C:\MYFILE.DAT") THEN DoProcessFile; ELSE DoCreateFile; END;
Code retour | Description |
TRUE | Le fichier existe |
FALSE | Le fichier n'existe pas |
Renvoie les attributs associés au fichier par le système.
FUNCTION FGetAttributes (VAL filename: STRING, REF attributes: INTEGER ) : INTEGER
Nom de l'argument | Description |
filename | Chemin complet du fichier |
attributes | Ce paramètre est modifié pour dresser la liste
des attributs du fichier concerné. Les attributs qui peuvent être
classés dans la même variable d'attribut sont les suivants :
|
Vous trouverez la description des indicateurs
d'attributs de FGetAttributes dans le tableau suivant :
Attribut | Windows & OS/2 | UNIX |
$FILENOPRIVS | Fichier en lecture seule | Impossible de lire, écrire ou exécuter le fichier |
$FILEREADABLE | Le fichier n'est pas en lecture seule | Le fichier est accessible en lecture |
$FILEWRITEABLE | Aucun | Le fichier est accessible en écriture |
$FILEEXECUTABLE | Aucun | Le fichier est exécutable |
$FILEHIDDEN | Le fichier est caché | Aucun |
Voir les exemples de FSetAttributes.
Code retour | Description |
1 | Opération exécutée avec succès |
-1 | L'opération a échoué. |
-2 | Argument inconnu |
FSetAttributes
Permet de créer un listage de répertoire.
FUNCTION FGetDirectory(VAL pattern: STRING, REF directoryList: LIST OF $DIRECTORYRECORD) : INTEGER;
Nom de l'argument | Description |
pattern | L'argument pattern permet de spécifier les fichiers qui sont inclus dans le listage du répertoire. Les caractères génériques * et ? peuvent être utilisés. Tous les fichiers et les répertoires dont les noms correspondent à l'argument pattern sont renvoyés dans la liste du répertoire. |
directoryList | Ce paramètre doit être une variable du type $DirectoryRecord. La définition est disponible dans la section remarques. |
$DirectoryRecord est du type RECORD déclaré dans la base de connaissances kml.kb du système. La déclaration de $DirectoryRecord est la suivante :
$DirectoryRecord IS RECORD filename : STRING; fullname : STRING; filesize : INTEGER; modificationdate : DATE; modificationtime : TIME; isDirectory : BOOLEAN; readOnly : BOOLEAN; flags : INTEGER; END;
Les champs de $DirectoryRecord sont décrits dans le tableau
suivant :
Nom | Description |
fileName | Nom du fichier avec son extension. |
fullName | Chemin absolu du nom de fichier. |
filesize | Taille du fichier en octets. |
modificationDate | Date de la dernière modification du fichier. |
modificationTime | Heure de la dernière modification du fichier. |
isDirectory | Indique s'il s'agit d'un fichier ou d'un répertoire. |
readOnly | Indique si l'on peut écrire dans le fichier ou non. |
indicateurs | Attributs du fichier. |
La zone des indicateurs renvoie les indicateurs paramétrés par le système d'exploitation et dépend de la plateforme. Reportez-vous à la documentation de votre système d'exploitation pour connaître la signification de chaque indicateur.
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 *);
Code retour | Description |
Supérieur ou égal à zéro | Une valeur non négative est renvoyée par FGetDirectory représente le nombre d'entrée (fichiers) dans ce répertoire. |
-1 | La demande de répertoire a échoué. L'unité spécifiée dans l'argument pattern peut ne pas exister ou être illisible. |
-2 | Valeur inconnue. |
Permet d'ouvrir un fichier.
FUNCTION FOpen (REF fHdl: File, VAL name: String [,$READ|$CREATE|$APPEND] ): Integer;
Nom de l'argument | Description |
fHdl | Ce paramètre prend la valeur du descripteur associé au fichier ouvert.Si l'opération FOpen échoue, le paramètre devient $Unknown. |
name | Chemin relatif ou absolu vers le fichier ouvert. |
$READ $CREATE $APPEND |
Identification du mode. La valeur par défaut est $READ. |
La fonction FOpen permet d'ouvrir le fichier texte avec le nom spécifié, dans le mode spécifié et de l'associer avec la valeur spécifiée fHdl. Si aucun argument de mode n'est donné, la valeur par défaut est $READ.
Conseil : FOpen échoue si le fichier spécifié est déjà ouvert. La valeur renvoyée dans ce cas est -1.
TSD Script ne prend pas en charge les fichiers texte en accès direct, c'est pourquoi il est impossible de lire ou d'écrire dans le même fichier sans le fermer puis l'ouvrir à nouveau dans le mode approprié.
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;
Code retour | Description |
1 | Opération exécutée avec succès. |
-1 | L'opération a échoué au niveau du système d'exploitation. Ce code est renvoyé si le fichier spécifié est déjà ouvert. |
-2 | Nom de fichier inconnu. |
Permet de lire des valeurs simples depuis un fichier ouvert et de les assigner à des variables de référence.
FUNCTION FRead (VAL fHdl: FILE [, REF var: ANY SIMPLE TYPE...] ) : INTEGER;
Attention : Le type chaîne de caractère (STRING) s'applique à tous les caractères jusqu'à la fin de la ligne. Tout argument passé après un argument de type STRING fait échouer FRead.
Nom de l'argument | Description |
fHdl | Descripteur de fichier défini par un appel précédent de FOpen. FOpen doit avoir été appelée en mode $READ. |
var | Zéro ou plusieurs expressions affectables (qui doivent normalement apparaître à gauche de l'opération d'affectation). |
La fonction FRead permet de lire des valeurs simples (exemple : BOOLEAN, INTEGER, REAL, STRING, TIME et DATE) depuis le fichier donné et les affecte aux variables associées de sa liste d'arguments jusqu'à ce que les valeurs aient été lues pour tous les arguments donnés.
La table suivante regroupe les formats dans lesquels FRead
doit lire les valeurs :
Format | Description |
BOOLEAN | Valeur TRUE ou FALSE. |
INTEGER | Séquence de chiffres décimaux (0 à 9) interprétée comme un nombre décimal entier. La séquence "0x" ou "0X" suivie d'un ou plusieurs chiffres hexadécimaux (0 à 9, A à F ou a à f) est interprétée comme un nombre hexadécimal entier. Ces deux types d'entiers peuvent être précédés éventuellement d'un signe "+" ou "-". |
REAL | Séquence de chiffres décimaux (0-9) pouvant être précédée d'un signe "+" ou "-". Cette séquence peut être suivie d'une virgule, de plusieurs chiffres après la virgule, eux-mêmes suivis d'un exposant. L'exposant peut être un "E" ou un "e", suivit d'un signe facultatif et d'un ou trois chiffres décimaux. |
STRING | Tous les caractères jusqu'à la fin de la ligne. FRead ne lit pas au-delà de la fin de ligne. |
TIME | Séquence au format hh:mm:ss, où hh, mm et ss sont un ou deux chiffres décimaux. |
DATE | Séquence au format mm/jj/aa
où mm, jj et aa sont un ou deux chiffres
décimaux. La fonction FRead prend fin dans les cas suivants :
|
Fin de lecture
Lorsque la lecture est terminée, aucune autre donnée n'est traitée. Un code d'erreur est renvoyé. Les arguments dont les valeurs n'ont pas été lues ne sont pas modifiés par ce cas d'erreur. Les arguments dont les valeurs ont été correctement lues sont mis à jour.
Si un appel vers FRead se termine parce qu'une fin de ligne a été rencontrée, tous les appels suivants vers FRead échouent sans que les valeurs soient lues, jusqu'à ce que la fonction FReadLn soit appelée pour avancer à la ligne suivante.
Séparateurs d'espace
Lorsque cela est possible, les valeurs du fichier d'entrée doivent être délimitées par un ou plusieurs espaces (espacements ou tabulations). Cependant, dans certaines circonstances, les valeurs n'ont pas besoin d'être délimitées.
Par exemple, les valeurs REAL et BOOLEAN n'ont pas besoin d'être délimitées par un espace étant donné que les caractères qui sont au début ou à la fin d'une valeur BOOLEAN ne peuvent pas se trouver au début ou à la fin d'une valeur REAL et inversement.
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;
Code retour | Description |
1 | Opération exécutée avec succès |
-1 | L'opération a échoué (erreur de conversion ou fin de ligne prématurée) |
-2 | Fichier inconnu |
-4 | Le fichier n'est pas ouvert |
-5 | Fin du fichier |
-6 | Descripteur inapproprié. |
Permet de lire les données dans un fichier ouvert et d'assigner des valeurs simples constitutives à des variables de référence.
FUNCTION FReadLn (VAL fHdl: FILE [, REF var: ANY SIMPLE TYPE... ] ): INTEGER;
Attention : Le type chaîne de caractères s'applique à tous les caractères jusqu'à la fin de la ligne. Par conséquent, entrer des arguments après un argument de chaîne fait échouer FReadLn.
Nom de l'argument | Description |
fHdl | Identificateur de fichier paramétré par un appel précédent vers FOpen. FOpen doit avoir été appelée en mode $READ. |
var | Zéro ou plusieurs expressions affectables. Elles apparaissent à gauche d'une opération d'affectation. |
La fonction FReadLn permet de lire des valeurs simples (exemple : BOOLEAN, INTEGER, REAL, STRING, TIME, and DATE) depuis un fichier et les affecte aux variables associées dans sa liste d'arguments. Tous les caractères qui restent sur la ligne d'entrée, y compris ceux qui désigne la fin de la ligne sont supprimés.
La table suivante regroupe les formats dans lesquels
FReadLn doit lire les valeurs :
Format | Description |
BOOLEAN | Valeur TRUE ou FALSE. |
INTEGER | Séquence de chiffres décimaux (0 à 9) interprétée comme un nombre décimal entier. La séquence "0x" ou "0X" suivie d'un ou plusieurs chiffres hexadécimaux (0 à 9, A à F ou a à f) est interprétée comme un nombre hexadécimal entier. Ces deux types d'entiers peuvent être précédés éventuellement d'un signe "+" ou "-". |
REAL | Séquence de chiffres décimaux (0-9) pouvant être précédée d'un signe "+" ou "-". Cette séquence peut être suivie d'une virgule, de plusieurs chiffres après la virgule, eux-mêmes suivis d'un exposant. L'exposant peut être un "E" ou un "e", suivit d'un signe facultatif et d'un ou trois chiffres décimaux. |
STRING | Tous caractères jusqu'à la fin de la ligne. FRead ne lit pas au-delà de la fin de ligne. |
TIME | Séquence au format hh:mm:ss, où hh, mm et ss sont un ou plusieurs chiffres décimaux. |
DATE | Séquence au format mm/jj/aa
où mm, jj et aa sont un ou plusieurs chiffres
décimaux. La fonction FRead prend fin dans les cas suivants :
|
Fin de l'opération
Si la fin de la ligne est atteinte avant que les valeurs soient lues pour tous les arguments, ou si une valeur ne peut pas être convertie au type approprié pour le paramètre qui y est associé, l'opération de lecture est interrompue sans que les autres données ne soient traitées (y compris l'indicateur de fin de ligne).
Remarque : un code d'erreur est renvoyé. Les arguments dont les valeurs
n'ont pas été lues ne sont pas modifiés par ce cas d'erreur.
Les arguments dont les valeurs ont été correctement lues sont
mis à jour.
Séparateurs d'espace
Lorsque cela est possible, les valeurs du fichier d'entrée doivent être délimitées par un ou plusieurs espaces (espacements ou tabulations). Cependant, dans certaines circonstances, les valeurs n'ont pas besoin d'être délimitées.
Par exemple, les valeurs REAL et BOOLEAN n'ont pas besoin d'être délimitées par un espace étant donné que les caractères qui sont au début ou à la fin d'une valeur BOOLEAN ne peuvent pas se trouver au début ou à la fin d'une valeur REAL et inversement.
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;
Code retour | Description |
1 | Opération exécutée avec succès |
-1 | L'opération a échoué (erreur de conversion ou fin de ligne prématurée) |
-2 | Fichier inconnu |
-4 | Le fichier n'est pas ouvert |
-5 | Fin du fichier |
-6 | Descripteur inapproprié. |
Permet de lire un fichier et le transforme en une liste de chaînes.
FUNCTION FReadText (VAL fHdl: FILE, REF lst: LIST OF STRING):INTEGER;
Nom de l'argument | Description |
fHdl | Retourne un descripteur vers le fichier de ce paramètre |
lst | Variable de liste (chaîne) dont le contenu est remplacé par le contenu du fichier |
FReadText enregistre le contenu du fichier dans la liste des chaînes, une ligne par élément de liste. Si des valeurs ont été lues dans ce fichier depuis son ouverture du fichier et avant l'appel de FReadText, seules les données restantes sont enregistrées.
Remarque : Lorsque l'enregistrement est terminé, FReadText retourne le nombre de lignes qui ont été correctement enregistrées.
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 *);
Code retour | Description |
Supérieur à zéro | L'opération a abouti. Retourne le nombre d'octets enregistrés. |
-1 | Argument inconnu. |
-2 | L'opération a échoué. |
-4 | Le fichier n'est pas ouvert. |
-6 | Descripteur inapproprié. |
Définit les paramètres du fichier passé en argument au niveau du système d'exploitation.
FUNCTION FSetAttributes (VAL filename: STRING, VAL attributes: INTEGER ): INTEGER
Nom de l'argument | Description |
filename | Chemin complet du fichier |
attributes | Ce paramètre représente la liste des attributs à
paramétrer dans le fichier concerné.
Les attributs qui peuvent être classés dans la même variable
d'attribut sont les suivants :
|
Vous trouverez ci-dessous les indicateurs d'attributs de
FSetAttributes.
Attribut | Signification sous Windows & OS/2 | UNIX |
$FILENOPRIVS | Fichier en lecture seule | Impossible de lire, écrire ou exécuter le fichier |
$FILEREADABLE | Le fichier n'est pas en lecture seule | Le fichier est lisible |
$FILEWRITEABLE | Aucun | Fichier inscriptible |
$FILEEXECUTABLE | Aucun | Le fichier est exécutable |
$FILEHIDDEN | Le fichier est caché | Aucun |
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;
Code retour | Description |
1 | Opération exécutée avec succès |
-1 | L'opération a échoué. |
-2 | Argument inconnu |
FGetAttributes
Ecrit des données formattées dans un fichier.
FUNCTION FWrite (VAL fHdl: FILE, VAL data: [LIST OF] STRING) : INTEGER;
Attention : Aucun caractère de nouvelle ligne (fin de ligne) n'est écrit par FWrite à la fin de l'opération d'écriture.
Nom de l'argument | Description |
fHdl | Variable de fichier paramétrée par un précédent appel de FOpen avec un indicateur de mode écriture $Create ou $Append. |
data | Expression de chaîne (ou liste de chaînes) à écrire dans le fichier indiqué. |
La fonction FWrite écrit des valeurs simples dans le fichier concerné sans séparateur ni caractères de fin. Le formatage du texte de sortie peut être fait à l'aide des opérateurs de concaténation et de formatage des chaînes ( : et & ).
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;
Code retour | Description |
>=0 | 0 - une chaîne vide a été indiquée en tant
qu'argument de la fonction, seul le retour chariot a été
inscrit dans le fichier n - entier positif >0 représentant le nombre de lignes inscrites dans le fichier |
-1 | Argument inconnu |
-2 | L'opération a échoué. |
-4 | Le fichier n'est pas ouvert |
-6 | Descripteur inapproprié. |
Ecrit une ligne de données formatées dans un fichier.
FUNCTION FWriteLn (VAL fHdl: FILE, VAL data: [LIST OF] STRING): INTEGER;
Nom de l'argument | Description |
fHdl | Variable de fichier paramétrée par un précédent appel de FOpen avec $Create ou $Append en mode fichier. |
data | Expression de chaîne ou liste de chaînes écrites dans le fichier indiqué, à l'emplacement actuel du fichier. |
Tout comme FWrite, la fonction FWriteLn écrit des valeurs simples dans un fichier texte. FWriteLn est différent de FWrite en ce sens qu'il produit un caractère de fin de ligne après avoir écrit les valeurs de ces arguments (comme $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;
Code retour | Description |
>=0 | 0 - une chaîne vide a été indiquée en tant
qu'argument de la fonction, seul le retour chariot a été
inscrit dans le fichier n - entier positif >0 représentant le nombre de lignes inscrites dans le fichier |
-1 | Argument inconnu. |
-2 | L'opération a échoué. |
-4 | Le fichier n'est pas ouvert. |
-6 | Descripteur inapproprié. |
Cette fonction vous permet de charger et afficher un fichier d'aide, tel que WinHelp, IPF help (pour OS/2), ou HTML pour toutes les plateformes. HelpOpen permet d'ouvrir le fichier d'aide requis et d'afficher le nom de la rubrique spécifiée, l'aide de la rubrique Aide ou la rubrique Contenus.
Pour l'aide HTML, la variable d'environnement "WebBrowser," doit être spécifiée. Si la variable n'est pas paramétrée , Windows utilise le navigateur par défaut et UNIX et OS/2 se servent de Netscape Navigator. Si un URL relatif est spécifié, il devient absolu en maintenant la variable d'environnement SAI_ROOT en mode natif ou en suspendant le codebase de l'applet lorsque les applications sont activées pour pouvoir utiliser le web.
FUNCTION HelpOpen( VAL whdl: WINDOW, VAL filename: String, [VAL section: STRING]): INTEGER;
Nom de l'argument | Description |
whdl | Cette variable est le descripteur de la fenêtre mère. |
filename | Nom du fichier d'aide à ouvrir. Cette variable peut contenir les informations
dans les formats suivants :
|
section | Rubrique du fichier d'aide à afficher. Cette
variable peut correspondre au nom de la rubrique de l'une des deux
constantes de type chaîne suivantes :
|
La fonction HelpOpen lance le système de fichier d'aide et l'ouvre à la rubrique spécifiée à l'aide du nom du fichier et du nom de la rubrique. Si la fonction n'aboutit pas, un code d'erreur est retourné.
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
Code retour | Description |
1 | Opération exécutée avec succès. |
-1 | Argument inconnu. |
-2 | L'opération a échoué au niveau du système d'exploitation. |
-3 | Mémoire insuffisante. |
-4 | L'opération a échoué au niveau du système d'exploitation. Cette valeur est retournée si le paramètre de la section contient une valeur inconnue. |
-5 | Le lancement du système de fichier d'aide a échoué. |
-6 | L'association avec la fenêtre du système d'aide a échoué. |
-7 | La création d'un objet du système de fichier d'aide a échoué. |
-8 | Le système de fichier d'aide n'a pas pu afficher le fichier. |
Cette fonction permet de lire des données dans un fichier d'initialisation. Cela vous permet d'enregistrer et d'extraire des informations depuis les fichiers d'initialisation de la plateforme native.
FUNCTION IniRead(REF rVal: [ STRING | INTEGER | BOOLEAN ], VAL filename: STRING, VAL section: STRING, VAL item: STRING, default: [STRING| INTEGER | BOOLEAN], [VAL filetype: STRING] ): INTEGER;
Nom de l'argument | Description |
rVal | Cette variable peut avoir la valeur STRING, INTEGER ou BOOLEAN. Elle reçoit les données enregistrées dans la fichier .ini. |
filename | Nom du fichier à ouvrir se trouvant dans le
fichier .ini. Cette variable peut contenir les informations
dans les formats suivants :
|
section | Section du fichier .ini dans laquelle se trouvent les informations. |
item | Elément de la section du fichier .ini dans laquelle se trouvent les informations. |
default | Cette variable peut avoir la valeur STRING, INTEGER ou BOOLEAN. Elle contient les données par défaut de rVal si l'élément ne peut pas être trouvé. |
La fonction IniRead lit l'élément de la section d'initialisation à l'aide de l'élément, de la section et du nom du fichier. Si l'élément n'existe pas, la valeur par défaut est placée dans 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
Code retour | Description |
1 | Opération exécutée avec succès |
-1 | Argument inconnu |
-2 | L'opération a échoué au niveau du système d'exploitation |
-5 | Fichier introuvable |
Cette fonction permet d'obtenir la liste des éléments dans une section particulière du fichier d'initialisation.
FUNCTION IniScan(REF rVal: List of String, VAL filename: String, Val section: String, [Val filetype: String] ): Integer;
Nom de l'argument | Description |
rVal | Cette variable est du type Liste de chaîne. Elle reçoit la liste des données lues dans le fichier .ini. |
filename | Nom du fichier à ouvrir se trouvant dans
le fichier .ini. Cette variable peut contenir les informations
dans les formats suivants :
|
section | Section du fichier .ini dans laquelle se trouvent les informations. |
La fonction IniScan lit la liste des éléments de la section d'initialisation à l'aide de la section et du nom du fichier. Si les éléments n'existent pas, un code d'erreur est retourné.
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;
Code retour | Description |
1 | Opération exécutée avec succès |
-1 | Argument inconnu |
-2 | L'opération a échoué au niveau du système d'exploitation |
-4 | Aucune création. Le système d'exploitation n'a pas pu créer l'objet demandé. Un descripteur de fenêtre parent fait peut-être référence à une fenêtre qui n'existe plus. |
Cette fonction écrit des données dans le fichier d'initialisation.
FUNCTION IniWrite(Val filename: String, Val section: String, Val item: String, Val data:[String | Integer | Boolean ], ): Integer;
Nom de l'argument | Description |
filename | Nom du fichier .ini dans lequel sont
écrites les données. Cette variable peut contenir les informations
dans les formats suivants :
|
section | Section du fichier .ini vers laquelle les informations doivent être enregistrées. |
item | Elément de la section du fichier .ini dans lequel les informations doivent être écrites. |
data | Cette variable peut avoir la valeur STRING, INTEGER ou BOOLEAN. Elle contient les données écrites dans l'élément de la section spécifiée. |
La fonction IniWrite écrit l'élément et les données vers la section d'initialisation à l'aide de l'élément, de la section et du nom du fichier. Si l'élément existe, sa valeur est écrasée dans le fichier.
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
Code retour | Description |
1 | Opération exécutée avec succès |
-1 | Argument inconnu |
-2 | L'opération a échoué au niveau du système d'exploitation |
Tivoli Service Desk 6.0 Developer's Toolkit Script - Manuel de référence du langage TSD Script
Retour à la page principale