JIS X 3003:1993 電子計算機プログラム言語Full BASIC | ページ 19

                                                                                             87
X 3003-1993
作及びwrite操作で入出力することもできる。このときは,それぞれinput操作及びprint操作に対
する規定に従う。
(5.2) 記録形式属性がINTERNALであれば,記録が型をもつ値の列である(又は一つのファイル要素が一
つの値である)ことを示す。これは,プログラム中の変数が値を含むのと同じとする。内部形式の
機能の目的は,(狭義ファイルに対して)値を保存したり取り出したりすることである。すなわち,
数値又は文字列値をプログラム中のある変数から出力し,後で他の変数に入力したとき,初めの変
数の値が変更されていなければ,二つの変数の値は正確に等しい。input操作及びprint操作は,本
質的に文字の列に対するものであるので,内部形式として開いたファイルに対して使用すると例外
状態になる。
(5.3) 記録形式属性がNATIVEであれば,記録が,プログラムに指定した枠 (template) によって記述され
ている欄 (field) の列であることを示す。この枠は,関連する記録操作の作用対象の並びと関連付け
られて,その記録中の欄の大きさ,型,個数及び順序を指定する。これによって,ファイル中のデ
ータを,同じような記録記述能力をもつ他の言語処理系との交換に適するような形に整えることが
できる。値は,記録中の欄の大きさに関する制限に従って保存される。内部形式の場合と同様に,
input操作及びprint操作は,固有形式として開いたファイルに対して使用すると例外状態になる。
(5.4) pen文にrectype句を書かなかったときの記録形式属性は,そのファイルに関して利用可能なシス
テム情報によって決められる。そのような情報が不十分であれば,処理系は,DISPLAYを与えてそ
のファイルを開こうとする。ゼロ番の経路は,DISPLAYを与えて開かれたかのように動作する。
(6) ecsize句 recsize句 (record-size) は,ファイル中の記録の最大長を指定する記録長 (record size) 属性
を与える。この属性は,length句によって明示的に指定できる。
(6.1) ecsize句のもつ機能語VARIABLE(可変長)及び値がこの機能語になる文字列式は,可変長属性を
指定する。将来の拡充規格が固定長 (fixed-length) 記録を提供しない限り,すべてのファイルは,
可変長 (variable-length) 記録すなわち記録の長さが互いに独立な記録で構成される。表示形式記録
の長さは,その記録中の文字数とする。内部形式又は固有形式の記録の長さは,処理系定義とする。
明示的指定又は省略時想定によってopen文で決められた最大長より長い記録に対して,記録操作
を実行しようとすると,例外状態になる。length句に書く記録長の指標の値は,1以上でなければ
ならない。
(6.2) pen文にrecsize句を書かなかったときの記録長属性は,そのファイルに関して利用可能なシステ
ム情報によって決められる。そのような情報が不十分であれば,処理系は,VARIABLEを与え,length
句を省略したとみなしてそのファイルを開こうとする。length句を省略したときの記録の最大長は,
処理系定義とする。ゼロ番の経路は,VARIABLEを与え,length句を省略して開かれたかのように
動作する。
(6.3) 処理系は,狭義ファイルに対して,最低限132の記録長を保証しなければならない。
(7) ollate句 collate句 (collate-sequence) は,索引編成ファイルに対して記録のキーの大小順序を指定す
る大小順序 (collate sequence) 属性を与える。この属性は,collate句のもつ機能語STANDARD(標準
の大小順序),NATIVE(固有の大小順序)のいずれか又は値がこれらの機能語のいずれかになる文字
列式によって指定する。
(7.1) 大小順序属性は,索引編成ファイルに対してだけ意味をもち,他のファイル編成属性をもつファイ
ルに対しては何の効果ももたない。
(7.2) ollate句によって与えられるファイルの大小順序属性は,そのファイルに対するすべての記録操作

――――― [JIS X 3003 pdf 91] ―――――

88
X 3003-1993
及びファイル操作であるerase文を制御する。すなわち,read操作,write操作,rewrite操作,delete
文,指示子制御を指定したset文,erase文及びask文によってファイルを操作するとき,ファイル
の論理的な見え方は,collate句によって指定される大小順序に適合したものとなる[(4)及び11.2参
照]。大小順序属性としてファイルに与えられる標準及び固有の大小順序は,option文(6.6参照)
の場合と正確に同じ順序付けを意味する。したがって,ファイルのcollate句に関連する大小順序と
プログラム単位のcollate選択子に関連する大小順序とが一致すれば,常にファイル中のより前のキ
ーがより後のキーより小さいとして比較される。両者が一致していなければ,この関係は成り立た
ない。それでも,ファイルのcollate句に関連する大小順序とは異なったcollate選択子に関連する
大小順序をもつプログラム単位が,索引編成ファイルに入出力することはできる。すなわち,collate
句に関連する大小順序は,記録の論理的順序にだけ影響を与え,その内容には影響を与えない。
(7.3) 索引編成ファイルの機能をもつ処理系は,標準及び固有の両方の大小順序属性を支援しなければな
らない。
(7.4) pen文にcollate句を書かなかったときの大小順序属性は,そのファイルに関して利用可能なシス
テム情報によって決められる。そのような情報が不十分であれば,処理系は,そのopen文を含む
プログラム単位で有効なcollate選択子に関連する大小順序と同じ順序付けを意味する大小順序属性
を与えてそのファイルを開こうとする。ゼロ番の経路は,ファイル編成属性がSEQUENTIALであ
る(索引編成ではない。)ので、大小順序属性は無関係である。
(8) lose文 close文 (close-statement) を実行すると,指定された経路に割り当てられているファイルが閉
じられ,その経路は不活性状態 (inactive) になる。その経路にファイルが割り当てられていなければ,
何も起こらない。外部副プログラム定義,外部関数定義又は外部絵定義から出る時及び並行単位の終
了時には,その手続きによって開かれたすべてのファイルが,その経路が参照仮引き数でない限り自
動的に閉じられる。プログラムの終了時には,開いているすべてのファイルが自動的に閉じられる。
(9) rase文 erase文 (erase-statement) は,指定された経路に割り当てられている狭義ファイルの一部又
は全部のデータを削除する。そのファイルに関連したファイル属性は,変更されない。
(9.1) est指定を書かないと,すべてのファイル要素を削除する。ただし,相対編成ファイルでは,すべ
ての記録領域から記録を削除する。そのファイルは空になり,ファイル指示子はファイルの終りを
指す。このときのファイルの終りは,ファイルの始めと同じとする。
(9.2) est指定を書くと,ファイル指示子が現在指している位置以後(その位置を含む。)のすべてのデー
タを削除する。それより前のすべてのデータは,変更されずに残る。ファイル指示子は,ファイル
の終りを指すように設定される。
(9.3) 装置に対するerase文は,必ずしも有効でない。装置がこの機能を支援するか否かは,ask文によっ
て知ることができる。
(9.4) ゼロ番の経路に対してerase文を実行すると,例外状態になる。そのほかに何の効果も及ぼさない。
(9.5) rase文は,入出力方向属性としてOUTINを与えて開かれたファイルに対してだけ許される。他の
入出力方向属性のときには,例外状態になる。そのとき,ファイルには何の効果も及ぼさない。
(10) sk文 ask文 (ask-statement) を実行すると,指定された経路に現在割り当てられているファイルの
属性に対応する値が,質問項目並び中の変数に代入される。
(10.1) 質問項目と値の対応を表11.5に示す。経路が不活性状態にある場合には,文字列変数には空文字列,
数値変数にはゼロが代入される。
表11.5 質問項目

――――― [JIS X 3003 pdf 92] ―――――

                                                                                             89
X 3003-1993
この表は,ファイルに関連してask文に書く質問項目と,その中の変数に与えられる値を示す。
a$ : 文字列変数,n : 数値変数
質問項目 値
ACCESS a$ ファイルの入出力方向属性。すなわち,“INPUT”,“OUTPUT”又は“OUTIN”。
COLLATH a$ 索引編成ファイルに関連付けられた大小順序属性。すなわち,“STANDARD”又は
“NATIVE”。索引編成以外のファイルに対しては,空文字列。
DATUM a$ ファイル指示子の現在の位置の次にあるデータ要素の型。すなわち,“NUMERIC”,
“STRING”,“NONE”(次のデータ要素がないとき)又は“UNKNOWN”(次のデータ要素
の型又は存在が決定できないとき)。DATUMは,流れ編成の内部形式ファイルに対して
だけ規定する。その他のファイル編成に対しては,処理系定義とする。
ERASABLE a$ そのファイルが消去可能(erase文によってファイル要素が削除できること)であれば
“YES”,消去可能でなければ“NO”。
FILETYPE a$ そのファイルがデータを保存できる狭義ファイルならば“FILE”,装置ならば“DEVICE”。
KEY a$ 索引編成ファイルのファイル指示子によって識別される記録に関連付けられたキーの
値。ファイル指示子がファイルの終りを指しているか又はファイルが索引編成でない場
合には,空文字列。
MARGIN n 表示形式ファイルにおける現在の行幅(記録が任意に長くてよいときには,MAXNUM)。
表示形式以外のファイルに対しては,ゼロ。
NAME a$ その経路に割り当てられているファイルの名前。
ORGANIZATION a$ そのファイルのファイル編成属性。すなわち,“SEQUENTIAL”,“STREAM”,“RELATIVE”
又は“KEYED”。
POINTER a$ そのファイルのファイル指示子の現在の位置。すなわち,“BEGIN”,“MIDDLE”又は
“END”。ここで,“MIDDLE”は,始めでも終りでもないことを示す。空ファイルにおける
ファイル指示子の位置及び相対編成ファイルにおけるファイルの終り以降の位置は,
“END”になる。どの値が正しいかを処理系が決定できない装置の場合には,“UNKNOWN”
が返される。
RECORD n ファイル指示子によって識別される記録領域の番号。相対編成以外のファイルに対して
は,ゼロ。
RECSIZE a$ n そのファイルの記録長属性。すなわち,“VARIABLE”と記録の最大長(記録長の制限が
意味をもたないとき,例えば通信回線では,MAXNUM)。
RECTYPE a$ そのファイルの記録形式属性。すなわち,“DISPLAY”,“INTERNAL”又は“NATIVE”。
SETTER a$ そのファイルが記録設定の能力をもっていれば“YES”,もっていなければ“NO”。
ZONEWIDTH n 表示形式ファイルにおける現在の印字欄幅。表示形式以外のファイルに対しては,ゼロ。
(10.2) ゼロ番の経路に対するask文の実行の効果は,表11.6による。

――――― [JIS X 3003 pdf 93] ―――――

90
X 3003-1993
表11.6 ゼロ番の経路の属性
質問属性 値
ACCESS “OUTIN”
COLLATE 空文字列
DATUM “UNKNOWN”
ERASABLE “NO”
FILETYPE “DEVICE”
KEY 空文字列
MARGIN 現在の行幅
NAME 処理系定義
ORGANIZATION “SEQUENTIAL”
POINTER “UNKNOWN”
RECORD ゼロ
RECSIZE “VARIABLE”, “MAXNUM”
RECTYPE “DISPLAY”
SETTER “NO”
ZONEWIDTH 現在の印字欄幅
11.1.5 例外状態 例外状態は,次による。
(1) 経路式の値が,ゼロ以上処理系定義の最大値以下の範囲にない。(7001,続行不能。)
(2) pen文,close文又はerase文で,ゼロ番の経路を指定している。(7002,続行可能。何もしないで処
理を続ける。)
(3) pen文で指定したゼロ番以外の経路が,既に活性状態にある。(7003,続行不能。)
(4) ファイル属性を指定するための文字列式が許される値をもっていない。(7100,続行不能。)
(5) pen文での明示的な指定又は省略時想定のファイル属性によるファイル参照が,可能でない。(71xx,
続行不能。xxの値と意味は,処理系定義とする。)
(6) 索引編成ファイルを,以前に開いたときの大小順序属性とは異なる大小順序属性で,再び開こうとす
る。(7050,続行不能。)
(7) ength句の指標の値が,1以上でない。(7051,続行不能。)
(8) 装置を,相対編成又は索引編成として開こうとする。(7052,続行不能。)
(9) rase文で指定したゼロ番以外の経路が,不活性状態にある。(7004,続行不能。)
(10) 入出力両用として開いたのでないファイルに対して,erase文を使用する。(7301,続行不能。)
(11) 入出力両用として開いた,消去の能力のない装置に対して,erase文を使用する。(7311,続行可能。
何もしないで処理を続ける。)
11.1.6 注意 注意は,次による。
(1) 処理系が,ファイル名として,少なくとも英大文字の後に03文字の英大文字又は数字が続いた文字
の列を許すことを推奨する。更に,ファイルの安全を保護する目的でオペレーティングシステムが必
要とする情報を,ファイル名の一部とみなして受け渡しをすることを推奨する。
(2) 狭義ファイルを開くのか,通信回線又は行印字装置のような,狭義ファイルでない装置を開くのかを,
処理系が,ファイル名によって区別することを推奨する。
(3) 同時に活性状態になりうる経路の個数は,ゼロ番の経路以外に4個以上とすることを推奨する。
(4) ファイル中の記録の省略時想定の最大長は特に制限をせず,どのような長さの記録も許すことを推奨
する。
(5) 処理系が,内部形式及び固有形式の記録長属性の意味を,表示形式の場合に準じて定めることを推奨

――――― [JIS X 3003 pdf 94] ―――――

                                                                                             91
X 3003-1993
する。すなわち,記録長属性で記録中の文字(バイト)の最大数を指定するようにすることを推奨す
る。
(6) この規格で定める以外に追加の入出力方向属性,ファイル編成属性,記録形式属性,記録長属性又は
大小順序属性を支援する処理系は,ask文によって追加の値を返してもよい。
(7) 処理系が,種々のファイル操作に伴う状態符号 (status code) を返すのであれば,一つの文字列値を返
す属性名IOSTATを追加して行うことを推奨する。
例 ASK IOSTAT S$は,最後に行った操作に伴うファイルの状態を表す値をS$に返す。
(8) キーの最大長は,処理系定義とする。

11.2 ファイル指示子の操作

11.2.1 概要 開いているファイルに対する指示子 (file pointer) は,データ転送を伴わずに,幾つかの方法
によって変更することができる。指示子制御 (pointer-items) を,set文 (set-statement) に指定したときのフ
ァイル指示子操作の規則は,他の記録操作と組み合わせて使用するときにも適用する。
11.2.2 構文 構文は,次による。ここで,(1)(7)は中核の生成規則,(8)(12)は拡充ファイルの生成規
則とする。
中核の生成規則
(1) 設定対象⊃経路指定 指示子制御
(2) 指示子制御=指示子制御項目|データ存否|指示子制御項目 コンマ データ存否
(3) 指示子制御項目⊃POINTER 中核記録設定
(4) 記録設定⊃中核記録設定
(5) 中核記録設定=BEGIN|END|NEXT|SAME
(6) データ存否=if-missing句|if-there句
(7) f-there句=IF THERE THEN データ存否動作
拡充ファイルの生成規則
(8) 指示子制御項目⊃拡充記録設定
(9) 記録設定⊃拡充記録設定
(10) 拡充記録設定=RECORD 指標|KEY{等値探索|大号探索} 文字列式
(11) 等値探索=等号?
(12) 大号探索=大号|非小
11.2.3 例 構文の例を次に示す。
#N : POINTER BEGIN (1)
#3 : RECORD N+1, IF MISSING THEN 1200 (1)
#4 : KEY ”Jones”, IF THERE THEN EXIT DO (1)
11.2.4 意味 意味は,次による。
(1) 指示子制御を指定したset文
(1.1) 指示子制御を指定したset文を実行すると,その経路に割り当てられたファイルに対する指示子の
設定が行われる。データ存否 (io-recovery) が指定されていれば,それは指示子の位置付けが行われ
た後に実行される。
備考 記録設定 (record-setter) に関する意味及びデータ存否の実行される時点は,すべての記録操作
を通じて同じとする(11.3,11.4及び11.5参照)。
(1.2) 11.2.5に示す例外状態のいずれかが起こると,ファイル指示子は,そのset文が実行される前の状態

――――― [JIS X 3003 pdf 95] ―――――

次のページ PDF 96

JIS X 3003:1993の引用国際規格 ISO 一覧

  • ISO/IEC 10279:1991(IDT)

JIS X 3003:1993の国際規格 ICS 分類一覧

JIS X 3003:1993の関連規格と引用規格一覧