Tivoli Service Desk 6.0 Developer's Toolkit Script - Manuel de référence du langage TSD Script

Gestion des fichiers

Retour à la page principale


$DirSeprStr

Description

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.

Syntaxe

FUNCTION $DirSeprStr : STRING;

Remarques

Cette fonction est utile pour analyser les noms complets de fichiers et les noms de répertoire.

Exemple

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

Voir aussi

$PathSeprStr


$NewLine

Description

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

Syntaxe

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

Remarques

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.

Exemple

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

Description

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.

Syntaxe

FUNCTION $PathSeprStr: STRING;

Remarques

Cette fonction est utile pour analyser les chemins de recherche.

Exemple

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

Voir aussi

$DirSeprStr


FClose

Description

Permet de fermer un fichier ouvert.

Syntaxe

FUNCTION FClose (VAL fHdl: FILE): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
fHdl Descripteur du fichier ouvert qui doit être fermé

Remarques

La fonction FClose vide le fichier (s'il était ouvert et utilisé comme fichier de sortie) et le ferme.

Exemple

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;

Codes retour

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

Voir aussi

FOpen


FEnd

Description

Permet d'indiquer que le fichier ouvert est en fin de fichier.

Syntaxe

FUNCTION FEnd (VALUE fHdl: FILE): BOOLEAN;

Attention : si l'argument du ficher est inconnu, FEnd renvoie une valeur inconnue.

Remarques concernant les arguments

Nom de l'argument Description
fHdl Expression qui génère un descripteur pour le fichier qui doit être testé.

Remarques

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.

Exemple

 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;

Codes retour

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

Voir aussi


FErase

Description

Permet d'effacer un fichier.

Syntaxe

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.

Remarques concernant les arguments

Nom de l'argument Description
fileName Nom du fichier à effacer.

Remarques

La fonction FErase permet d'effacer un fichier nommé. Toute tentative ultérieure pour ouvrir le fichier avec le même nom échouera.

Exemple

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;

Codes retour

Code retour Description
1 Opération exécutée avec succès
-1 L'opération a échoué.
-2 Argument de fichier inconnu

Voir aussi

FOpen


FExists

Description

Permet de vérifier l'existence d'un fichier.

Syntaxe

FUNCTION FExists (VAL fileName: STRING): BOOLEAN;

Remarques concernant les arguments

Nom de l'argument Description
fileName Expression de chaîne qui génère un nom de fichier valide.

Exemple

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

Codes retour

Code retour Description
TRUE Le fichier existe
FALSE Le fichier n'existe pas

Voir aussi


FGetAttributes

Description

Renvoie les attributs associés au fichier par le système.

Syntaxe

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

Remarques concernant les arguments

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

Remarques

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

Exemple

Voir les exemples de FSetAttributes.

Codes retour

Code retour Description
1 Opération exécutée avec succès
-1 L'opération a échoué.
-2 Argument inconnu

Voir aussi

FSetAttributes


FGetDirectory

Description

Permet de créer un listage de répertoire.

Syntaxe

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

Remarques concernant les arguments

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.

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.

Exemple

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

Codes retour

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.

Voir aussi


FOpen

Description

Permet d'ouvrir un fichier.

Syntaxe

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

Remarques concernant les arguments

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.

Remarques

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

Exemple

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;

Codes retour

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.

Voir aussi


FRead

Description

Permet de lire des valeurs simples depuis un fichier ouvert et de les assigner à des variables de référence.

Syntaxe

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.

Remarques concernant les arguments

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

Remarques

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/aamm, jj et aa sont un ou deux chiffres décimaux. La fonction FRead prend fin dans les cas suivants :
  • La fin du fichier ou la fin de la ligne sont atteintes avant que les valeurs aient été lues pour tous les arguments donnés
  • Une valeur est lue mais ne peut pas être convertie au type approprié pour le paramètre associé

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.

Exemple

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;

Codes retour

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

Voir aussi


FReadLn

Description

Permet de lire les données dans un fichier ouvert et d'assigner des valeurs simples constitutives à des variables de référence.

Syntaxe

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.

Remarques concernant les arguments

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.

Remarques

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/aamm, jj et aa sont un ou plusieurs chiffres décimaux. La fonction FRead prend fin dans les cas suivants :
  • La fin du fichier ou la fin de la ligne sont atteintes avant que les valeurs aient été lues pour tous les arguments donnés
  • Une valeur est lue mais ne peut pas être convertie au type approprié pour le paramètre associé

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.

Exemple

 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;

Codes retour

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

Voir aussi


FReadText

Description

Permet de lire un fichier et le transforme en une liste de chaînes.

Syntaxe

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

Remarques concernant les arguments

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

Remarques

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.

Exemple

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

Codes retour

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

FSetAttributes

Description

Définit les paramètres du fichier passé en argument au niveau du système d'exploitation.

Syntaxe

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

Remarques concernant les arguments

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

Remarques

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

Exemple

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;

Codes retour

Code retour Description
1 Opération exécutée avec succès
-1 L'opération a échoué.
-2 Argument inconnu

Voir aussi

FGetAttributes


FWrite

Description

Ecrit des données formattées dans un fichier.

Syntaxe

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.

Remarques concernant les arguments

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

Remarques

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

Exemple

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;

Codes retour

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

Voir aussi


FWriteLn

Description

Ecrit une ligne de données formatées dans un fichier.

Syntaxe

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

Remarques concernant les arguments

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.

Remarques

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

Exemple

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;

Codes retour

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

Voir aussi


HelpOpen

Description

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.

Syntaxe

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

Remarques concernant les arguments

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 :
  • Nom du fichier avec le chemin (nom de fichier complet).
  • Nom du fichier sans le chemin. Le répertoire du système de la plateforme est utilisé comme emplacement du fichier.
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 constante $OSHelpOnHelp indique que l'aide par défaut de la rubrique Aide va être affichée.
  • La constante $OSHelpContents indique que le contenu de l'aide est affiché.

Remarques

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

Exemple

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

Codes retour

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.

IniRead

Description

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.

Syntaxe

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

Remarques concernant les arguments

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 :
  • Nom du fichier avec le chemin.
  • Nom du fichier sans le chemin. Le répertoire du système de la plateforme est utilisé comme emplacement du fichier.
  • Constante de chaîne $OSIni ou $SAIni qui sont les emplacements des fichiers .ini spécifiques au système d'exploitation ou Softart respectivement.
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é.

Remarques

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.

Exemple

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

Codes retour

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

Voir aussi


IniScan

Description

Cette fonction permet d'obtenir la liste des éléments dans une section particulière du fichier d'initialisation.

Syntaxe

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

Remarques concernant les arguments

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 :
  • Nom du fichier avec le chemin.
  • Nom du fichier sans le chemin. Le répertoire du système de la plateforme est utilisé comme emplacement du fichier.
  • Constante de chaîne $OSIni ou $SAIni qui sont les emplacements des fichiers .ini spécifiques au système d'exploitation ou Softart respectivement.
section Section du fichier .ini dans laquelle se trouvent les informations.

Remarques

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

Exemple

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;

Codes retour

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.

Voir aussi


IniWrite

Description

Cette fonction écrit des données dans le fichier d'initialisation.

Syntaxe

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

Remarques concernant les arguments

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 :
  • Nom du fichier avec le chemin.
  • Nom du fichier sans le chemin. Le répertoire du système de la plateforme est utilisé comme emplacement du fichier.
  • Constante de chaîne $OSIni ou $SAIni qui sont les emplacements des fichiers .ini spécifiques au système d'exploitation ou Softart respectivement.
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.

Remarques

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.

Exemple

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

Codes retour

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

Voir aussi


Tivoli Service Desk 6.0 Developer's Toolkit Script - Manuel de référence du langage TSD Script

Retour à la page principale

Copyright