Tivoli Service Desk 6.0 Developer's Toolkit Script 言語解説書

ファイル・ハンドル

メイン・ページに戻る


$DirSeprStr

説明

完全修飾ファイル名中でディレクトリー名を区切るのに使用される共通文字を含むストリングを戻します。これは、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


$NewLine

説明

ファイル中の行の終わりを示すために固有のオペレーティング・システムで使用される制御文字を含むストリングを戻します。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;

$PathSeprStr

説明

複数のディレクトリー名を含むパス中でディレクトリー名の区切りに使用される文字を含むストリングを戻します。 これは、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


FClose

説明

オープン・ファイルをクローズします。

構文

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


FEnd

説明

オープン・ファイルがファイルの終わりにあるかどうかを指示します。

構文

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 指定されたファイルがファイルの終わりマーカーに現在位置していません (言い換えれば、入力が待っています)。

次も参照してください


FErase

説明

ファイルを消去します。

構文

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


FExists

説明

ファイルの存在をテストします。

構文

FUNCTION FExists (VAL fileName: STRING): BOOLEAN;

引き数の注

引き数名 説明
fileName 有効なファイル名を作成するストリング式。

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

戻りコード

戻りコード 説明
TRUE ファイルが存在します
FALSE ファイルは存在しません

次も参照してください


FGetAttributes

説明

指定されたファイルと関連付けられた、固有のファイル・システム属性が得られます。

構文

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

引き数の注

引き数名 説明
filename ファイルへの全パス
attributes このパラメーターは、指定されたファイルの属性をリストするよう更新されます。属性変数で配列できる属性は、次のとおりです。
  • $FILENOPRIVS
  • $FILEREADABLE
  • $FILEWRITEABLE
  • $FILEEXECUTABLE
  • $FILEHIDDEN

次は、FGetAttributes 属性フラグを説明しています。

属性 Windows & OS/2 UNIX
$FILENOPRIVS ファイルは読み取り専用 ファイルは読み取り可能、書き込み可能、または実行可能
$FILEREADABLE ファイルは読み取り専用でない ファイルは読み取り可能
$FILEWRITEABLE なし ファイルは書き込み可能
$FILEEXECUTABLE なし ファイルは実行可能
$FILEHIDDEN ファイルは隠しファイル なし

FSetAttributes の例を参照してください。

戻りコード

戻りコード 説明
1 正常終了
-1 操作失敗
-2 引き数不明

次も参照してください

FSetAttributes


FGetDirectory

説明

ディレクトリー・リストを作成します。

構文

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 不明な値。

次も参照してください


FOpen

説明

ファイルをオープンします。

構文

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 不明なファイル名

次も参照してください


FRead

説明

オープン・ファイルから単純な値を読み取り、その値を参照された変数に割り当てます。

構文

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 の文字列。ただし、hhmm 、および ss は、 1 桁または 2 桁の 10 進数です。
DATE 形式 mm/dd/yy の文字列。ただし、mmdd 、および 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 無効なハンドル

次も参照してください


FReadLn

説明

構成された単純値を参照変数に割り当てながら、オープンされたファイルから入力された 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 の文字列。ただし、hhmm 、および ss は、 1 桁または 2 桁の 10 進数です。
DATE 形式 mm/dd/yy の文字列。ただし、mmdd 、および 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 無効なハンドル

次も参照してください


FReadText

説明

ストリング・リスト中にファイルを読み取ります。

構文

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 無効なハンドル

FSetAttributes

説明

指定されたファイルと関連付けられた、オペレーティング・システム段階のファイル属性を設定します。

構文

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

引き数の注

引き数名 説明
filename ファイルへの全パス
attributes このパラメーターは、指定されたファイルで設定する属性のリストです。 属性変数で配列できる属性は、次のとおりです。
  • $FILENOPRIVS
  • $FILEREADABLE
  • $FILEWRITEABLE
  • $FILEEXECUTABLE
  • $FILEHIDDEN.

以下には、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


FWrite

説明

定様式データをファイルに書き込みます。

構文

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 無効なハンドル

次も参照してください


FWriteLn

説明

定様式データの 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 無効なハンドル

次も参照してください


HelpOpen

説明

この関数によって、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 つである可能性があります。
  • ストリング定数 $OSHelpOnHelp は、デフォルトの「ヘルプに関するヘルプ」が表示されるように指定します。
  • ストリング定数 $OSHelpContents は、ヘルプ目次が表示されるように指定します。

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 ヘルプ・ファイル・システムはファイルを表示できませんでした。

IniRead

説明

この関数は、初期設定ファイルからデータを読み取ります。これによって、プラットフォーム固有の初期設定ファイル中の情報を保管および検索することが許可されます。

構文

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 つの中の情報が含まれることがあります。
  • ファイルへの全パスをもつファイル名。
  • パスをもたないファイル名。プラットフォームのシステム・ディレクトリーは、ファイルの場所として使用されます。
  • ストリング定数 $OSIni または $SAIni。これはそれぞれ、オペレーティング・システム特定の .ini ファイルまたは Softart.ini ファイルの場所です。
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 ファイルが見つかりません

次も参照してください


IniScan

説明

この関数は、初期設定ファイルの特別なセクションからアイテム・リストを入手します。

構文

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

引き数の注

引き数名 説明
rVal この変数のタイプは「ストリングのリスト」です。これは、.ini ファイルから読み取るデータのリストを受け取ります。
filename 読み取る .ini ファイルのファイル名。 この変数には、次の形式の 1 つの中の情報が含まれることがあります。
  • ファイルへの全パスをもつファイル名。
  • パスをもたないファイル名。プラットフォームのシステム・ディレクトリーは、ファイルの場所として使用されます。
  • ストリング定数 $OSIni または $SAIni。これはそれぞれ、オペレーティング・システム特定の .ini ファイルまたは Softart.ini ファイルの場所です。
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 つの理由は、親ウィンドウ・ハンドルがもはや存在していないウィンドウを参照することです。

次も参照してください


IniWrite

説明

この関数は、初期設定ファイルにデータを書き込みます。

構文

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

引き数の注

引き数名 説明
filename データが書き込まれる .ini ファイルのファイル名。 この変数には、次の形式の 1 つの中の情報が含まれることがあります。
  • ファイルへの全パスをもつファイル名。
  • パスをもたないファイル名。プラットフォームのシステム・ディレクトリーは、ファイルの場所として使用されます。
  • ストリング定数 $OSIni または $SAIni。これはそれぞれ、オペレーティング・システム特定の .ini ファイルまたは Softart.ini ファイルの場所です。
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 言語解説書

メイン・ページに戻る

著作権