PICTURE(形式)句は、基本項目の一般的性質と編集の形式を示す。
文字列に含められる文字の数は、最大50字である。
ゼロ抑制記号としての星印(*)とBLANK WHEN ZERO句を同じ記述項に指定してもよい。ただし、ゼロ抑制の方がBLANK WHEN ZERO句に優先する。
PICTURE句に書けるデータは、英字、数字、英数字、英数字編集、数字編集、
および外部浮動小数点数
である。以下に、各項類ごとに分けて一般規則を記す。
PICTURE文字列に書ける記号文字は、"A"だけである。
PICTURE文字列で表わせる桁数は、31までである。
PICTUREPICTURE文字列で表わせる桁数は、38までである。
数字データは、標準データ形式以外の形式でも保持できる。(後述のUSAGE(用途)句USAGE(用途)句節、および COBOL言語の概念の章の文字の表現と基数の選定節を参照。)
PICTURE文字列で表わせる桁数は、31までである。
PICTURE文字列で表わせる桁数は、38までである。
仮数部(mantissa)および指数部(exponent)の前に、符号文字を置く。
"+" 符号は、出力値が正であれば正号が付けられ、出力値が負であれば負号が付けられることを表わす。
"-" 符号は、出力値が正であれば符号は空白とされ、出力値が負であれば負号が付けられることを表わす。
各符号は、1バイトの記憶域を占める。
仮数部
仮数部には、下記の記号を含めることができる。
9 . V
実小数点は "."で表わし、想定小数点は "V"で表わす。仮数部には実小数点または想定小数点のどちらかがなければならない。小数点は左端にあっても、中間にあっても、右端にあってもよい。仮数部の長さは1桁以上16桁以下である。
E
指数を示す。
指数部
指数部は、PIC "99" の形式にする。
BLANK WHEN ZERO
JUSTIFIED
VALUE
基本項目の大きさとは、標準データ形式で表わしたときの、基本項目の文字数をいう。基本項目の大きさは、文字位置を表わすのに使用できる記号の数によって決定される。記号文字 "A", ",", "X" , "9", "P", "Z", "*", "B", "/", "0", "+", "-", または通貨記号の後ろにかっこで囲んで書いた整数は、それらの記号を連続して並べる数を示す。 次の記号文字はPICTURE文字列内には1つしか書けないことに注意。
"S"、"V"、"."、
"E"、
"CR"、および"DB"
基本項目を表わすために使用する記号の働きを、以下に説明する。
A | PICTURE文字列中の各 "A" は、1文字の英字または1つの空白だけを含むことのできる文字位置を表わす。 |
B | PICTURE文字列中の各"B" は、空白文字を挿入できる文字位置を表わす。 |
![]() |
外部浮動小数点数項目の指数部の始まりを示す。指数部は、実行時に1バイトの記憶域を占める。 |
P | PICTURE文字列中の各"P" は、想定小数点の位置を合わせるための位取りを表わすものである。データ項目中に現れる位の中に小数点が含まれていないときに、想定小数点の位置を指定するために使用する。位取り文字である "P" は、データ項目の大きさには数えられない。数字編集項目または数字項目の最大桁数(18桁)を判定する際には、位取り文字は数に入れられる。この"P" は、PICTURE文字列の左端または右端に連続してだけ書くことができる。これは、"P" は想定小数点の位置を暗示するからである。つまり、PICTURE文字列の左端に "P" がある場合はその左に想定小数点があることになり、PICTURE文字列の右端に"P" がある場合はその右に想定小数点があることになる。"P"を含むPICTURE文字列の左端ま�
は右端に想定小数点記号の "V" を書くことは、定義の重複である。
"P" と挿入文字の"." 小数点)を、同一のPICTURE文字列に含めてはならない。データ項目の内部表現をあるものから別のものへ変換するときに、対象のデータ項目のPICTURE文字列に "P" が含まれていると、各"P" の位置に値ゼロが入っているものとみなされ、データ項目の大きさにはその桁位置も含まれる。
|
S | PICTURE文字列中の"S" は、演算符号の存在を示す。しかし、演算符号の表現形式や位置までも示すものではない。"S"はPICTURE文字列の左端に書く。この記号文字は標準データ形式で数えた基本項目の大きさには含まれない。ただし、その記述項にSEPARATE CHARACTER句を指定した場合は、 "S" は項目の大きさに含められる。(この章のSIGN(符号)句SIGN(符号)句節を参照。) |
V | PICTURE文字列中の "V" は想定小数点の位置を示す。この記号文字は1つのPICTURE文字列には1つだけ書ける。"V" は文字位置を表わすわけではないので、基本項目の大きさには含まれない。想定小数点がPICTURE文字列の右端の文字の右側にある場合は、"V" を書いても書かなくてもよい。 |
X | PICTURE文字列中の各"X" は、1個の文字の位置を示す。そこには、計算機文字集合で許される任意の文字を含めることができる。 |
Z | PICTURE文字列中の各 "Z" は、先行ゼロ列のゼロを空白に置き換えることを示す。"Z" は項目の大きさに含められる。 |
9 | PICTURE文字列中の各 "9" は、数字を含む1個の桁位置を示す。"9" は項目の大きさに含められる。 |
0 | PICTURE文字列中の各 "0" (ゼロ) は、数字のゼロを挿入すべき1個の桁位置を示す。"0" は項目の大きさに含められる。 |
/ | PICTURE文字列中の各"/"(斜線)は、文字"/"を挿入すべき1個の桁位置を示す。 "/" は項目の大きさに含められる。 |
, | PICTURE文字列中の各"," (カンマ)は、文字"," を挿入すべき1個の桁位置を示す。"," は項目の大きさに含められる。PICTURE文字列の最後には置けない。
|
. | PICTURE文字列中に現れる文字"." (終止符)は、編集記号であり、桁合わせの基準とする小数点の位置を表わすとともに、文字"." を挿入する位置を表わす。"." は項目の大きさに含められる。特殊名段落にDECIMAL-POINT IS COMMAを指定すると、原始単位における終止符とカンマの機能が入れ替えられる。この場合、PICTURE句の中の終止符とカンマに関しても、終止符に関する規則がカンマに適用され、カンマに関する規則が終止符に適用される。挿入文字 " ." は、PICTURE文字列の最後には置けない。
|
+, -, CR, DB | これらの記号文字は符号編集用文字であり、符号編集用文字を置く位置を示す。1つのPICTURE文字列の中では、これらの記号文字のうちのいずれか1つだけ使える。これらの文字は項目の大きさに含められる。 |
* | PICTURE文字列中の各"*" (星印)は、先行ゼロ列のゼロを星印に置き換えることを示す。"*" は項目の大きさに含められる。 |
通貨編集用文字 | PICTURE文字列中の通貨編集用文字は、編集中に通貨編集用文字が収められる文字位置を示す。通貨編集用文字は、通貨記号または特殊名段落にCURRENCY SIGN句で指定した1文字で表わされる。
通貨編集用文字が最初に現れたときに、その文字数が項目の長さに追加される。その後、通貨編集用文字が現れるたびに、1が項目の長さに追加される。 |
PICTURE句の中で指定できる編集方法は、挿入およびゼロ抑制の2つである。挿入による編集には下記の4種類がある。
ゼロ抑制による編集には下記の2種類がある。
項目に行える編集の種類は、その項類によって異なる。表 8-3 にその関係を示す。
項類 | 編集の種類 |
---|---|
英字 | "B" による単純挿入だけ1 |
数字 | なし |
英数字 | なし |
英数字編集 | "0", "B" "/"による単純挿入 |
数字編集 | すべて2 |
2バイト文字 | 単純挿入 |
外部浮動小数点数 | 特殊挿入 |
注:
"," (カンマ), "B" (空白), "0" (ゼロ), " /" (斜線)は、挿入文字として使用される。挿入文字は項目中に文字を挿入すべき位置を表わし、項目の大きさに含められる。
この種の編集は、数字編集項目または外部浮動小数点数項目に対して使用できる。
"." (終止符)は、 は挿入文字として使用されるとともに、桁合わせの基準となる小数点を表わすためにも使用される。実小数点用に使用される挿入文字は、項目の大きさに含められる。同じPICTURE文字列の中に、記号文字"V" で表わされる想定小数点と、この挿入文字で表わされる実小数点を指定することはできない。特殊挿入編集を施すと、PICTURE文字列中に指定した位置に、指定した挿入文字が挿入される。
通貨編集用文字および符号編集用文字の"+" ,"-", "CR", "DB" は、挿入文字である。1つのPICTURE文字列の中では、1つの通貨編集用文字と、符号編集用文字のいずれか1つだけを使用できる。符号編集用文字の "CR" または "DB" を使用する場合は、文字列の右端に置く。これらの符号編集用文字は項目の大きさとしては2文字分に数えられる。符号編集用文字の"+" または "-" を使用する場合は、文字列の右端または左端に置く。これらの符号編集用文字は項目の大きさとして数えられる。通貨編集用記号は、文字列の左端に置く。
PICTURE句の文字列中の編集用記号 | 編集の結果挿入される文字 | |
---|---|---|
データ項目の値が正またはゼロ | データ項目の値が負 | |
+ | + | - |
- | 空白1個 | - |
CR | 空白2個 | CR |
DB | 空白2個 | DB |
通貨編集用文字および符号編集用文字の"+"と"-" は浮動挿入文字である。これらの文字を、1つのPICTURE文字列に同時に指定することはできない。
浮動挿入編集を行うには、PICTURE文字列中に浮動挿入文字を2つ以上指定する。浮動挿入文字列の間または右隣に、単純挿入文字を書くことができる。それらの単純挿入文字は、浮動挿入文字列の一部となる。
浮動挿入文字に通貨編集用文字を使用した場合、その浮動挿入文字列の右隣に符号編集用文字の"+", "-", "CR" ,"DB" のいずれか1つを書くことができる。
浮動挿入文字列の左右両端の文字はそれぞれ、データ項目中で浮動する記号の左右の限界を示す。
左端から2番目の浮動文字は、そのデータ項目の中で数字データを収めることができる左側の限界を示す。それ以降右側の浮動文字は、ゼロでない数字で置き換えられる。
PICTURE文字列の中では、浮動挿入文字を表わす方法は2通りである。1つは、小数点の左側の数字列の先頭の一部または全部を、挿入文字で書く方法である。もう1つは、PICTURE文字列の中のすべての数字位置を、挿入文字で書く方法である。
浮動挿入文字列の左右両端の文字はそれぞれ、データ項目中で浮動する記号の左右の限界を示す。
左端から2番目の浮動文字は、そのデータ項目の中で数字データを収めることができる左側の限界を示す。それ以降右側の浮動文字は、ゼロでない数字で置き換えられる。
PICTURE文字列の中では、浮動挿入文字を表わす方法は2通りである。1つは、小数点の左側の数字列の先頭の一部または全部を、挿入文字で書く方法である。もう1つは、PICTURE文字列の中のすべての数字位置を、挿入文字で書く方法である。
PICTURE文字列の中のすべての数字位置を挿入文字で書いた場合、最低限1つの数字位置を、想定小数点または実小数点の左に置く。
切り捨てが起こらないようにするためには、受取り側のPICTURE句の文字列の文字数を、送出し側のデータ項目の文字数に受取り側で編集するための固定挿入文字の数と浮動挿入文字のための1字とを加えたもの以上にする。
数字位置の先行ゼロ列を抑制するためには、PICTURE文字列の中で英字 "Z" または "*" (星印) を使用する。1つのPICTURE文字列の中では、どちらか一方しか指定してはならない。各抑制文字は、項目の大きさに含められる。抑制文字に "Z" を指定した場合、先行ゼロ列は空白で置き換えられる。抑制文字に"*" を指定した場合、先行ゼロ列は星印で置き換えられる。
ゼロ抑制は、PICTURE文字列の中に1つ以上の抑制文字を並べて示す。この抑制文字列は、先行ゼロ列のゼロの置き換えを行おうとする先行数字位置を示す。抑制文字列の中またはそのすぐ右に書いた単純挿入文字は、その抑制文字の一部となる。
PICTURE文字列の中では、ゼロ抑制文字を表わす方法は2通りである。1つは、小数点の左側の数字列の先頭の一部または全部を、ゼロ抑制文字で書く方法である。もう1つは、PICTURE文字列の中のすべての数字位置を、ゼロ抑制文字で書く方法である。
PICTURE文字列中の小数点の左側にだけゼロ抑制文字を書いた場合、PICTURE文字列中のゼロ抑制文字に対応するデータ中の先行ゼロ列が、置換え文字によって置き換えられる。ゼロ抑制が停止される位置は、小数点またはデータ中のゼロでない最初の数字の、どちらか先に出てきた方となる。
PICTURE文字列の中のすべての数字位置をゼロ抑制文字で書いた場合、結果はデータの値によって異なる。 値がゼロでない場合は、小数点の左側にだけゼロ抑制文字を書いた場合と同じ結果となる。値がゼロである場合は、ゼロ抑制文字に"Z" を使用していれば、そのデータ項目全体は空白で置き換えられ、ゼロ抑制文字に"*" を使用していれば、そのデータ項目全体は実小数点を除いて星印で置き換えられる。
記号文字"+", "-", "*", " Z" および通貨編集用文字は、浮動置換え文字として使用するときは、1つのPICTURE文字列の中ではいずれか1つだけを書く。
PICTURE文字列の中で記号として使用するときの、文字の順序規則を表 8-5に示す。"○" 印は、その列の上段に示した文字を、その行の左端に示した文字の前に書いてもよいことを示す。中かっこ{ }で囲んだ文字群は、その中の1つしか書けないことを示す。 " 通貨" は、通貨編集用文字を示す。PICTURE文字列の中には、文字 "A " , "○", "Z", " 9", "*", の少なくともいずれか1つ、または記号文字 "+" , "-"," 通貨" の少なくともいずれか2つを書く。
表 8-5の中で、固定挿入文字の"+"と"-" 、および浮動挿入文字の"Z", "*", " +","-", " 通貨", および記号文字"P" は、それぞれ2回ずつ示してある。左の列および上の行は、小数点の左側に書く場合を表わす。右の列および下の行は、小数点の右側に書く場合を表わす。
先行文字 | 固定挿入文字 | 浮動挿入文字 | その他の文字 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
後続文字 | B | 0 | / | , | . | + - |
+ - |
CR DB |
通貨 | E | Z * |
Z * |
+ - |
+ - |
通貨 | 通貨 | 9 | A X |
S | V | P | P | G | |
固定挿入文字 | B | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |||||
0 | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |||||||
/ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |||||||
, | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | ||||||||
. | x | x | x | x | x | x | x | x | x | x | ||||||||||||||
+ - |
||||||||||||||||||||||||
+ - |
x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |||||||||
CR DB |
x | x | x | x | x | x | x | x | x | x | x | x | x | x | ||||||||||
通貨 | x | |||||||||||||||||||||||
E | x | x | x | x | ||||||||||||||||||||
浮動挿入文字 | Z * |
x | x | x | x | x | x | x | ||||||||||||||||
Z * |
x | x | x | x | x | x | x | x | x | x | x | |||||||||||||
+ - |
x | x | x | x | x | x | ||||||||||||||||||
+ - |
x | x | x | x | x | x | x | x | x | |||||||||||||||
通貨 | x | x | x | x | x | x | ||||||||||||||||||
通貨 | x | x | x | x | x | x | x | x | x | |||||||||||||||
その他の文字 | 9 | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |||||||
A X |
x | x | x | x | x | |||||||||||||||||||
S | ||||||||||||||||||||||||
V | x | x | x | x | x | x | x | x | x | x | x | x | ||||||||||||
P | x | x | x | x | x | x | x | x | x | x | x | x | ||||||||||||
P | x | x | x | x | x | |||||||||||||||||||
G | x | x |