Intrinsic functions


一つの文字列から一つの単語を得る関数:

res = subwrd(文字列,整数)

戻値は文字列中の「整数」番目の単語(スペースで区切られる)。 もし文字列が短すぎれば、結果は「NULL」文字列。


文字列が含まれる複数行から一つの行を得る:

res = sublin(文字列(複数行を含む,整数)

結果は文字列から「整数」番目の行(リターンで区切られる)。 もし文字列の行が少なすぎれば、「NULL」文字列を返す。


文字列の一部分を得る:

res = substr(文字列,start,length)

文字列の「start」番目から長さ「length」の文字列部分を得る。もし文字列が 短すぎれば結果が短いか「NULL」文字になる。 「start」と「length」は整数でなければならない。


例:'query time'
res = subwrd(result,3)
year = substr(res,9,4)
say year
結果は「1880」(とか)

関数「sublin」は、ある外部のASCIIファイルを開いて読んで書いて閉じるといっ た操作をしたいときに、非常に役に立つ。 例えば、「the_title.txt」というASCIIファイルに次のテキストが書かれてい るとする。

Szenario A 1880 - 2099

以下のスクリプトは、そのファイルを読み込み、テキストを書き出し、ファイル を閉じる。開閉時にはそれぞれのファイル状態をチェックしエラーがある場合 はGrADSを終了する。

ret = read('the_title.txt')
code = subrin(ret,1)
if(code != 0)
    say 'red error #'code
   'quit'
endif
title=sublin(ret,2)
'draw title 'title
ret=close('the_title.txt')
code=sublin(ret,1)
if(code != 0)
   say 'close error #'code
   'quit'
endif