Tivoli Service Desk 6.0 Developer's Toolkit Script 言語解説書
メイン・ページに戻る
完全修飾ファイル名中でディレクトリー名を区切るのに使用される共通文字を含むストリングを戻します。これは、Windows および OS/2 中では円記号 ('\') です。UNIX では正方向スラッシュ ('/') です。
FUNCTION $DirSeprStr : STRING;
この関数は、完全修飾ファイル名およびディレクトリー名の構文解析に有効です。
(* Function MakeFilename は、ディレクトリー名のリスト、ベース名、および拡張子で指定された完全修飾ファイル名をアセンブルします。 *)
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
ファイル中の行の終わりを示すために固有のオペレーティング・システムで使用される制御文字を含むストリングを戻します。Windows および OS/2 で、このストリングは "復帰" (ASCII 13) および "改行 " (ASCII 10) 文字から構成されます。UNIX でこのストリングは、"改行" 文字で構成されています。
FUNCTION $Newline : STRING;
注意: オペレーティング・システム間でファイルを転送する時には、固有のオペレーティング・システムがユーザー・ファイル中のもの以外の
行の終わりストリングを予定している可能性があることを忘れないでください。これが起こった場合には、ユーザー・ファイルはフォーマットが間違っているように表示されます。
この関数は、フォーマットされたテキストをファイルに書き込むのに有効です。TSD Script 関数である FWriteLn は、固有の行の終わりストリングをファイルに書き込まれたすべての行に付加します。
(* Function WriteDates: この関数は、1 行につき 1 日だけの日付リストをファイルに書き込みます。これは書き込まれた日付の数値を戻します。*)
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;
複数のディレクトリー名を含むパス中でディレクトリー名の区切りに使用される文字を含むストリングを戻します。 これは、Windows および OS/2 ではセミコロン (';') であり、UNIX ではコロン (':') です。
FUNCTION $PathSeprStr: STRING;
この関数は、検索パスの構文解析に有効です。
(* Function MakePath は、ディレクトリーのリストから完全なパスを アセンブルします。 *)
FUNCTION MakePath ( VAL Dirs : LIST OF STRING )
: STRING IS
ACTIONS $Result := '';
FOR Dirs DO $Result := $Result & Dirs[$CURRENT] & $PathSeprStr; END; END;
$DirSeprStr
オープン・ファイルをクローズします。
FUNCTION FClose (VAL fHdl: FILE): INTEGER;
引き数名 | 説明 |
fHdl | オープン・ファイルをクローズするハンドル |
FClose 関数は、指定されたファイルが (出力用にオープンされていた場合には) フラッシュされ、クローズされる原因となります。
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;
戻りコード | 説明 |
1 | 正常終了。 |
-1 | 操作失敗。 |
-2 | 不明のファイル引き数。 |
-6 | 無効なハンドル |
FOpen
オープン・ファイルがファイルの終わりにあるかどうかを指示します。
FUNCTION FEnd (VALUE fHdl: FILE): BOOLEAN;
注意: ファイルの引き数が不明の場合には、 FEnd は不明な値を戻します
引き数名 | 説明 |
fHdl | テストされるファイルに対するハンドルを作成する式。 |
指定ファイルが読み取り用にオープンされてはいるがファイルの終わりに位置している (それ以上読み取りできるものがない) 場合に、FEnd 関数は TRUE を戻します。FEnd が FALSE を戻した場合には、ファイルの中に読み取りできない文字が少なくとも 1 つ以上あります。
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;
戻りコード | 説明 |
TRUE | 指定されたファイルがファイルの終わりマーカーに現在位置しています (言い換えれば、ファイルからの入力を待っているものはもうありません)。 |
$Unknown | $Unknown と評価された引き数。 |
FALSE | 指定されたファイルがファイルの終わりマーカーに現在位置していません (言い換えれば、入力が待っています)。 |
ファイルを消去します。
FUNCTION FErase (VAL fileName: STRING): INTEGER;
注意: 名前付きファイルがオープンされている場合、この関数の働きは定義されません
引き数名 | 説明 |
fileName | 消去されるファイルの名前 |
FErase 関数によって、指定された名前をもつファイルが消去されます。次に、前の名前を使ってファイルをオープンしようとすると失敗します。
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;
戻りコード | 説明 |
1 | 正常終了 |
-1 | 操作失敗 |
-2 | 不明なファイル引き数 |
FOpen
ファイルの存在をテストします。
FUNCTION FExists (VAL fileName: STRING): BOOLEAN;
引き数名 | 説明 |
fileName | 有効なファイル名を作成するストリング式。 |
If FExists ("C:\MYFILE.DAT") THEN DoProcessFile; ELSE DoCreateFile; END;
戻りコード | 説明 |
TRUE | ファイルが存在します |
FALSE | ファイルは存在しません |
指定されたファイルと関連付けられた、固有のファイル・システム属性が得られます。
FUNCTION FGetAttributes (VAL filename: STRING, REF attributes: INTEGER ) : INTEGER
引き数名 | 説明 |
filename | ファイルへの全パス |
attributes | このパラメーターは、指定されたファイルの属性をリストするよう更新されます。属性変数で配列できる属性は、次のとおりです。
|
次は、FGetAttributes 属性フラグを説明しています。
属性 | Windows & OS/2 | UNIX |
$FILENOPRIVS | ファイルは読み取り専用 | ファイルは読み取り可能、書き込み可能、または実行可能 |
$FILEREADABLE | ファイルは読み取り専用でない | ファイルは読み取り可能 |
$FILEWRITEABLE | なし | ファイルは書き込み可能 |
$FILEEXECUTABLE | なし | ファイルは実行可能 |
$FILEHIDDEN | ファイルは隠しファイル | なし |
FSetAttributes の例を参照してください。
戻りコード | 説明 |
1 | 正常終了 |
-1 | 操作失敗 |
-2 | 引き数不明 |
FSetAttributes
ディレクトリー・リストを作成します。
FUNCTION FGetDirectory(VAL pattern: STRING, REF directoryList: LIST OF $DIRECTORYRECORD) : INTEGER;
引き数名 | 説明 |
pattern | どのファイルがディレクトリー・リストに含まれるかを指定するパターン。* および ? ワイルドカード文字が使用されます。名前がパターンと一致するすべてのファイルおよびディレクトリーが、ディレクトリー・リスト中に戻されます。 |
directoryList | このパラメーターは、タイプ $DirectoryRecord の変数でなければなりません。その定義は、注セクションで表示されます。 |
$DirectoryRecord は、システム知識ベース kml.kb.中で宣言された RECORD タイプです。 $DirectoryRecord の宣言は、次のとおりです。
$DirectoryRecord IS RECORD filename : STRING; fullname : STRING; filesize : INTEGER; modificationdate : DATE; modificationtime : TIME; isDirectory : BOOLEAN; readOnly : BOOLEAN; flags : INTEGER; END;
次は、$DirectoryRecord のフィールド説明です。
名前 | 説明 |
fileName | 拡張子の付いたファイルの名前。 |
fullName | 全パス・ファイル名。 |
filesize | ファイルのバイトでのサイズ。 |
modificationDate | ファイルが最後に変更された日付。 |
modificationTime | ファイルが最後に変更された時刻。 |
isDirectory | これがファイルかサブディレクトリーかを指示します。 |
readOnly | ファイルが書き込み可能かどうかを示します。 |
flags | ファイル属性。 |
フラグ・フィールドは、オペレーティング・システムにより設定されたフラグを戻し、プラットフォームに依存しています。フラグの意味については、ユーザーのオペレーティング・システム資料を参照してください。
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 *);
戻りコード | 説明 |
0 より大きいか等しい | FGetDirectory によって戻される負でない値が、そのディレクトリー中の項目 (ファイル) の数値です。 |
-1 | ディレクトリー要求は失敗しました。パターン中で指定されたドライブは、もはや存在しないか、あるいは読み取り不可能である可能性があります。 |
-2 | 不明な値。 |
ファイルをオープンします。
FUNCTION FOpen (REF fHdl: File, VAL name: String [,$READ|$CREATE|$APPEND] ): Integer;
引き数名 | 説明 |
fHdl | このパラメーターは、オープン・ファイルを参照するよう更新されます。 FOpen オペレーションが失敗した場合には、パラメーターは $Unknown に設定されます。 |
name | オープンされるファイルへの絶対または相対 PATH。 |
$READ $CREATE $APPEND |
モード指定。デフォルトは、$READ です。 |
FOpen 関数は、指定されたモードで指定された名前をもつテキスト・ファイルをオープンし、それを指定された fHdl 値と関連付けます。モード引き数を指定しない場合、デフォルトは $READ です。
ヒント: 指定されたファイルがすでにオープンされている場合には、FOpen は失敗します。この場合の戻り値は、-1 です。
TSD Script は、ランダム・アクセス・テキスト・ファイルをサポートしていないので、該当するモードでクローズおよび再オープンせずにオペレーション間で同じファイルから読み取り、同じファイルへ書き込む方法はありません。
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;
戻りコード | 説明 |
1 | 正常終了。 |
-1 | オペレーティング・システム段階でオペレーションが失敗しました。 指定されたファイルがすでにオープンされている場合には、これが戻されます。 |
-2 | 不明なファイル名 |
オープン・ファイルから単純な値を読み取り、その値を参照された変数に割り当てます。
FUNCTION FRead (VAL fHdl: FILE [, REF var: ANY SIMPLE TYPE...] ) : INTEGER;
注意: ストリングは行の終わりまですべての入力が使用されます ストリング引き数の後に入力引き数を挿入すると、FRead が失敗する原因となります。
引き数名 | 説明 |
fHdl | FOpen への以前の呼び出しによって設定されたファイル・ハンドル。 FOpen は、$READ モードで呼び出されていなければなりません。 |
var | 0 またはそれ以上の割り当て可能な式 (正式には、割り当て操作の左方に表示される式)。 |
指定された引き数について値をすべて読み取るまで、FRead 関数は、指定されたファイルから単純な値 (BOOLEAN、INTEGER、REAL、STRING、TIME、および DATE など) を読み取り、その引き数リストから関連した変数にそれらの値を割り当てます。
次の表には、FRead で値を読み取る必要のある形式が表示されています。
Format | 説明 |
BOOLEAN | TRUE か FALSE か。 |
INTEGER | 10 進整数として解釈される 10 進数 (0-9) の文字列。1 つまたはそれ以上の 16 進数字 (0-9、A-F、または a-f) の前の文字列 '0x' または '0X' は、16 進数として解釈されます。この形式では、'+' または '-' 符号を任意に前に付けることができます。 |
REAL | '+' または '-' 符号を前に付けることができる 10 進数 (0-9) の文字列。この文字列は、後ろに小数点および 1 つまたはそれ以上の 10 進数を付けることができ、さらに後ろに指数部を付けることができます。指数部は、後ろに任意の符号および 1 桁から 3 桁までの 10 進数が付いた 'E' または 'e' から構成されます。 |
STRING | 行の終わりまでの任意の文字。FRead は、行の終わりを超えた読み取りはしません。 |
TIME | 形式 hh:mm:ss の文字列。ただし、hh 、mm 、および ss は、 1 桁または 2 桁の 10 進数です。 |
DATE | 形式 mm/dd/yy の文字列。ただし、mm 、dd 、および yy は、 1 桁または 2 桁の 10 進数です。次のいずれかが起こった場合に、FRead 関数は終了します。
|
読み取り終了
読み取り操作が終了した場合には、これ以上入力を処理しません。エラー・コードが戻されます。値が読み取られていない引き数は、このエラー状態により変換されないままになります。値が正常に読み取られた引き数は、更新されます。
行の終わりに達したために FRead への呼び出しが終了した場合には、FReadLn 関数が呼び出されて次の行に進むまで、それ以降の FRead への呼び出しはすべて値を読まずに失敗します。
空白区切り文字
可能な場合には常に、入力ファイルの値は、1 つまたは複数の空白文字 (スペースとタブ) で区切らなければなりません。ただし、状況によっては値が区切り文字を必要としないことがあります。
たとえば、REAL および BOOLEAN 値には空白文字を挿入する必要はありません。BOOLEAN 値で開始または終了する文字は規則上、実数値の終わりに示されることはないし、その逆も同じだからです。
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;
戻りコード | 説明 |
1 | 正常終了 |
-1 | 操作失敗 (変換の失敗、または予期しない行の終わり) |
-2 | 不明なファイル |
-4 | ファイルがオープンされていない |
-5 | ファイルの終わりになりました |
-6 | 無効なハンドル |
構成された単純値を参照変数に割り当てながら、オープンされたファイルから入力された 1 行を読み取ります。
FUNCTION FReadLn (VAL fHdl: FILE [, REF var: ANY SIMPLE TYPE... ] ): INTEGER;
注意: ストリングは行の終わりまですべての入力が使用されます ストリング引き数の後に入力引き数を提供すると、FReadLn が失敗する原因となります。
引き数名 | 説明 |
fHdl | FOpen への以前の呼び出しによって設定されたファイル・ハンドル。 FOpen は、$READ モードで呼び出されていなければなりません。 |
var | 0 またはそれ以上の割り当て可能な式。割り当て可能な式は、割り当て操作の左側に表示されます。 |
FReadLn 関数は、ファイルから単純値 (BOOLEAN、INTEGER、REAL、STRING、TIME、および DATE) を読み取り、その引き数リストから関連した変数にそれらの値を割り当てます。入力行に残っている文字は、行の終わりを指定する文字を含め、破棄されます。
次の表には、FReadLn で値を読み取る必要のある形式が表示されています。
Format | 説明 |
BOOLEAN | TRUE か FALSE か。 |
INTEGER | 10 進整数として解釈される 10 進数 (0-9) の文字列。1 つまたはそれ以上の 16 進数字 (0-9、A-F、または a-f) の前の文字列 '0x' または '0X' は、16 進数として解釈されます。この形式では、'+' または '-' 符号を任意に前に付けることができます。 |
REAL | '+' または '-' 符号を前に付けることができる 10 進数 (0-9) の文字列。この文字列は、後ろに小数点および 1 つまたはそれ以上の 10 進数を付けることができ、さらに後ろに指数部を付けることができます。指数部は、後ろに任意の符号および 1 桁から 3 桁までの 10 進数が付いた 'E' または 'e' から構成されます。 |
STRING | 行の終わりまでの任意の文字。FRead は、行の終わりを超えた読み取りはしません。 |
TIME | 形式 hh:mm:ss の文字列。ただし、hh 、mm 、および ss は、 1 桁または 2 桁の 10 進数です。 |
DATE | 形式 mm/dd/yy の文字列。ただし、mm 、dd 、および yy は、 1 桁または 2 桁の 10 進数です。次のいずれかが起こった場合に、FRead 関数は終了します。
|
終了
指定された引き数すべてについて値が読み取られる前に行の終わりに達したか、あるいは関連したパラメーターに該当するタイプに変換できないと値が読み取られた場合には、読み取り操作はこれ以上の入力 (行の終わり指定を含む) を処理せずに終了します。
注: エラー・コードが戻されます 値が読み取られていない引き数は、このエラー状態により変換されないままになります。
値が正常に読み取られた引き数は、更新されます。
空白区切り文字
可能な場合には常に、入力ファイルの値は、1 つまたは複数の空白文字 (スペースとタブ) で区切らなければなりません。ただし、状況によっては値が区切り文字を必要としないことがあります。
たとえば、REAL および BOOLEAN 値には空白文字を挿入する必要はありません。BOOLEAN 値で開始または終了する文字は規則上、実数値の終わりに示されることはないし、その逆も同じだからです。
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;
戻りコード | 説明 |
1 | 正常終了 |
-1 | 操作失敗 (変換の失敗、または予期しない行の終わり) |
-2 | 不明なファイル |
-4 | ファイルがオープンされていない |
-5 | ファイルの終わりになりました |
-6 | 無効なハンドル |
ストリング・リスト中にファイルを読み取ります。
FUNCTION FReadText (VAL fHdl: FILE, REF lst: LIST OF STRING):INTEGER;
引き数名 | 説明 |
fHdl | そのパラメーター中のファイルへのハンドルを戻します。 |
lst | ファイルの内容により内容が置き換えられるリスト変数 (ストリング) |
FReadText ファイルの内容をストリング・リスト中にリスト要素あたり 1 行読み取ります。 FReadText への呼び出しの前に、ファイルがオープンされ、そのファイルから値が読み取られた場合には、残っている入力が読み取られます。
注: 正常終了時には、FReadText は正常に読み取られた行数を戻します
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 *);
戻りコード | 説明 |
0 より大 | 成功。読み取られたバイト数を戻します。 |
-1 | 不明な引き数。 |
-2 | 操作失敗。 |
-4 | ファイルがオープンされていない。 |
-6 | 無効なハンドル |
指定されたファイルと関連付けられた、オペレーティング・システム段階のファイル属性を設定します。
FUNCTION FSetAttributes (VAL filename: STRING, VAL attributes: INTEGER ): INTEGER
引き数名 | 説明 |
filename | ファイルへの全パス |
attributes | このパラメーターは、指定されたファイルで設定する属性のリストです。
属性変数で配列できる属性は、次のとおりです。
|
以下には、FSetAttributes 属性フラグが説明されています。
属性 | Windows & OS/2 での意味 | UNIX |
$FILENOPRIVS | ファイルは読み取り専用 | ファイルは読み取り可能、書き込み可能、または実行可能 |
$FILEREADABLE | ファイルは読み取り専用でない | ファイルは読み取り可能 |
$FILEWRITEABLE | なし | ファイルは書き込み可能 |
$FILEEXECUTABLE | なし | ファイルは実行可能 |
$FILEHIDDEN | ファイルは隠しファイル | なし |
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;
戻りコード | 説明 |
1 | 正常終了 |
-1 | 操作失敗 |
-2 | 引き数不明 |
FGetAttributes
定様式データをファイルに書き込みます。
FUNCTION FWrite (VAL fHdl: FILE, VAL data: [LIST OF] STRING) : INTEGER;
注意: 改行 (行の終わり) 文字は、出力操作の完了時に FWrite により書き込まれることはありません
引き数名 | 説明 |
fHdl | $Create または $Append 書き込みモード・フラグでの以前の FOpen への呼び出しによって設定されたファイル変数。 |
data | 示されたファイルに書き込まれているストリング式 (またはストリング・リスト)。 |
FWrite 関数は、囲みの区切り文字または終了文字なしで指定されたファイルに単純値を書き込みます。出力テキストの形式設定は、ストリング形式および連結記号 ( : and & ) の使用によって完成します。
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;
戻りコード | 説明 |
>=0 | 0 - 空ストリングが引き数として関数に渡されました。改行マークだけがファイルに書き込まれます n - ファイルに書き込まれた行数を表す正数 >0 |
-1 | 不明な引き数 |
-2 | 操作失敗 |
-4 | ファイルがオープンされていない |
-6 | 無効なハンドル |
定様式データの 1 行をファイルに書き込みます。
FUNCTION FWriteLn (VAL fHdl: FILE, VAL data: [LIST OF] STRING): INTEGER;
引き数名 | 説明 |
fHdl | $Create または $Append のどちらかのファイル・モードでの以前の FOpen への呼び出しによって設定されたファイル変数。 |
data | 現在のファイル位置で示されたファイルに書き出されているストリング式またはストリング・リスト。 |
FWrite と同様に、FWriteLn 関数はテキスト・ファイルに単純値を書き込みます。 FWriteLn は、引き数値を書き込んだ後に行の終わり文字を出力する点で FWrite と異なります ($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;
戻りコード | 説明 |
>=0 | 0 - 空ストリングが引き数として関数に渡されました。改行マークだけがファイルに書き込まれます n - ファイルに書き込まれた行数を表す正数 >0 |
-1 | 不明な引き数。 |
-2 | 操作失敗。 |
-4 | ファイルがオープンされていない。 |
-6 | 無効なハンドル |
この関数によって、WinHelp, IPF help (OS/2 用)、またはすべてのファイル用の HTML などのヘルプ・ファイルをロードし、表示することが許可されます。 HelpOpen は、要求されたヘルプ・ファイルを起動し、「ヘルプに関するヘルプ」セクション、または「目次」セクションと指定されたセクション名を表示します。
HTML ヘルプについて、環境変数 "WebBrowser," が指定されなければなりません。この変数が設定されていない場合、Windows はデフォルトのブラウザーを使用し、UNIX および OS/2 は Netscape Navigator を使用します。相対 URL が指定されている場合には、固有モードで SAI_ROOT 環境変数を前に付けるか、アプリケーションがウェブ使用で使用可能な時にアプレット・コードベースを前に付けることによって、その URL が絶対 URL となります。
FUNCTION HelpOpen( VAL whdl: WINDOW, VAL filename: String, [VAL section: STRING]): INTEGER;
引き数名 | 説明 |
whdl | この変数は、親ウィンドウのウィンドウ・ハンドルです。 |
filename | オープンされるヘルプ・ファイルのファイル名。この変数には、次の形式の 1 つの中の情報が含まれることがあります。
|
section | 表示するヘルプ・ファイルのトピック。この変数は、セクションの名前または次の 2 つのストリング定数のうち 1 つである可能性があります。
|
HelpOpen 関数は、ヘルプ・ファイル・システムを開始し、指定ファイル名とセクションを使用して、指定されたセクションにそのヘルプ・ファイルをオープンします。この関数が成功しない場合には、該当するエラー・コードが戻されます。
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
戻りコード | 説明 |
1 | 正常終了。 |
-1 | 不明な引き数。 |
-2 | オペレーティング・システム段階でオペレーションが失敗しました。 |
-3 | メモリー不足。 |
-4 | オペレーティング・システム段階でオペレーションが失敗しました。セクション・パラメーターに不明な値が含まれている場合には、この値が戻されます。 |
-5 | ヘルプ・ファイル・システム初期設定が失敗しました。 |
-6 | ヘルプ・ファイル・システム・ウィンドウ関連が失敗しました。 |
-7 | ヘルプ・ファイル・システム・オブジェクト作成が失敗しました。 |
-8 | ヘルプ・ファイル・システムはファイルを表示できませんでした。 |
この関数は、初期設定ファイルからデータを読み取ります。これによって、プラットフォーム固有の初期設定ファイル中の情報を保管および検索することが許可されます。
FUNCTION IniRead(REF rVal: [ STRING | INTEGER | BOOLEAN ], VAL filename: STRING, VAL section: STRING, VAL item: STRING, default: [STRING| INTEGER | BOOLEAN], [VAL filetype: STRING] ): INTEGER;
引き数名 | 説明 |
rVal | この変数は、STRING、INTEGER、または BOOLEAN である可能性があります。これは、.ini ファイルから読み取るデータを受け取ります。 |
filename | 読み取る .ini ファイルのファイル名。この変数には、次の形式の 1 つの中の情報が含まれることがあります。
|
section | 情報を読み取る .ini ファイルのセクション。 |
item | 情報を読み取る .ini ファイルのセクション中のアイテム。 |
default | この変数は、STRING、INTEGER、または BOOLEAN である可能性があります。読み取るアイテムが見つからない場合には、これには rVal のデフォルト・データが含まれています。 |
IniRead 関数は、指定されたアイテム、セクション、およびファイルの名前を使用して、初期設定セクションからアイテムを読み取ります。このアイテムが存在しない場合には、デフォルト値が 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
戻りコード | 説明 |
1 | 正常終了 |
-1 | 不明な引き数 |
-2 | オペレーティング・システム段階でオペレーションが失敗しました |
-5 | ファイルが見つかりません |
この関数は、初期設定ファイルの特別なセクションからアイテム・リストを入手します。
FUNCTION IniScan(REF rVal: List of String, VAL filename: String, Val section: String, [Val filetype: String] ): Integer;
引き数名 | 説明 |
rVal | この変数のタイプは「ストリングのリスト」です。これは、.ini ファイルから読み取るデータのリストを受け取ります。 |
filename | 読み取る .ini ファイルのファイル名。 この変数には、次の形式の 1 つの中の情報が含まれることがあります。
|
section | 情報を読み取る .ini ファイルのセクション。 |
IniScan 関数は、指定されたセクションおよびファイルの名前を使用して、初期設定セクションからアイテム・リストを読み取ります。このアイテムが存在しない場合には、該当するエラー・コードが戻されます。
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;
戻りコード | 説明 |
1 | 正常終了 |
-1 | 不明な引き数 |
-2 | オペレーティング・システム段階でオペレーションが失敗しました |
-4 | 作成しない。オペレーティング・システムが要求されたオブジェクトを作成できませんでした。 考えられる 1 つの理由は、親ウィンドウ・ハンドルがもはや存在していないウィンドウを参照することです。 |
この関数は、初期設定ファイルにデータを書き込みます。
FUNCTION IniWrite(Val filename: String, Val section: String, Val item: String, Val data:[String | Integer | Boolean ], ): Integer;
引き数名 | 説明 |
filename | データが書き込まれる .ini ファイルのファイル名。 この変数には、次の形式の 1 つの中の情報が含まれることがあります。
|
section | 情報が書き込まれる .ini ファイルのセクション。 |
item | 情報が書き込まれる .ini ファイルのセクション中のアイテム。 |
data | この変数は、STRING、INTEGER、または BOOLEAN である可能性があります。これには、指定されたセクションのアイテムに書き込まれたデータが含まれます。 |
IniWrite 関数は、指定されたアイテム、セクション、およびファイルの名前を使用して、初期設定セクションにアイテムおよびデータを書き込みます。このアイテムが存在する場合には、その値はファイルに上書きされます。
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
戻りコード | 説明 |
1 | 正常終了 |
-1 | 不明な引き数 |
-2 | オペレーティング・システム段階でオペレーションが失敗しました |
Tivoli Service Desk 6.0 Developer's Toolkit Script 言語解説書
メイン・ページに戻る