Last Update 2008/05/18
フォーマットは定型的な出力を行う際に使用します。
formatで宣言・定義を行い、writeで実行します。
STDOUTに対するデフォルトの名前は"STDOUT"となります。
・宣言の書式
formatで宣言・定義を行い、writeで実行します。
STDOUTに対するデフォルトの名前は"STDOUT"となります。
・宣言の書式
format 名前1 =
フォーマット指定の記述(コメント行、式行、データ指定行)
. ← ピリオドで終了
名前1
フォーマット名(省略時はSTDOUT)
・フォーマット指定文字
@ : 通常のフィールドの始まり
^ : 特別フィールドの始まり
< : 左合わせ
| : 中央合わせ
> : 右合わせ
# : 数字(右合わせ)
0 : 右合わせ数値の左側を指定桁まで0で埋める
. : 小数点
@* : 自由幅フィールド(複数行全行)
^* : 自由幅フィールド(複数行1行)
(例1)
$data1 = "氏名";
$data2 = "06/11/30";
$data3 = "12:00:00";
# ***** 見出し行 *****
format STDOUT_TOP =
data1 data2 data3
.
# ***** データ行 *****
format STDOUT =
# 左合わせの10文字幅フィールドを指定
@<<<<<<<<< @<<<<<<<<< @<<<<<<<<<
$data1, $data2, $data3
.
write;
実行結果
data1 data2 data3
氏名 06/11/30 12:00:00
(例2)
$data1 = "氏名";
$data2 = "06/11/30";
$data3 = "12:00:00";
# ***** 見出し行 *****
format STDOUT_TOP =
data1 data2 data3
.
# ***** データ行 *****
format STDOUT =
# 中央合わせの10文字幅フィールドを指定
@||||||||| @||||||||| @|||||||||
$data1, $data2, $data3
.
write;
実行結果
data1 data2 data3
氏名 06/11/30 12:00:00
(例3)
$data1 = "氏名";
$data2 = "06/11/30";
$data3 = "12:00:00";
# ***** 見出し行 *****
format STDOUT_TOP =
data1 data2 data3
.
# ***** データ行 *****
format STDOUT =
# 右合わせの10文字幅フィールドを指定
@>>>>>>>>> @>>>>>>>>> @>>>>>>>>>
$data1, $data2, $data3
.
write;
実行結果
data1 data2 data3
氏名 06/11/30 12:00:00
(例4)
$data1 = 3000.55;
$data2 = 500;
# ***** 見出し行 *****
format STDOUT_TOP =
data1 data2
.
# ***** データ行 *****
format STDOUT =
# 数値フィールドを指定
@#####.### @0########
$data1, $data2
.
write;
実行結果
data1 data2
3000.550 0000000500
(例5)
$data1 = "複数行\nテスト";
$data2 = "1行目\n2行目\n3行目";
# ***** データ行 *****
format STDOUT =
# 複数行の書き出し
@*
$data1
@*
$data2
.
write;
実行結果
複数行
テスト
1行目
2行目
3行目
(例6)
$data1 = "複数行\nテスト";
$data2 = "1行目\n2行目\n3行目";
# ***** データ行 *****
format STDOUT =
# 複数行の内1行目を書き出し
^* ^*
$data1, $data2
.
write;
実行結果
複数行 1行目