...

使用手引書 - ソフトウェア

by user

on
Category: Documents
97

views

Report

Comments

Transcript

使用手引書 - ソフトウェア
B1WW-8781-01Z0(00)
Microsoft® Windows® 2000
Microsoft® Windows Server™ 2003
PowerSORT Server V5.0
使用手引書
まえがき
このたびは、PowerSORT Serverをお買い上げいただきまして、誠にありがとうございます。
PowerSORT Serverは、サーバ上で行う事務処理で使用可能な高性能ソートマージ製品です。
グローバルサーバ上で培ってきた高度なソート技法をシステムに合わせて最適化し、事務処理で取り
扱う少量のデータから大容量のデータまで、効率よくソート処理できます。
製品の呼び名について
本書に記載されている製品の名称を、以下のように略して表記します。
● 「Microsoft(R) Windows(R) 2000 Server operating system」 → 「Windows 2000 Server」
または「Windows 2000」
● 「Microsoft(R) Windows(R) 2000 Advanced Server operating system」 → 「Windows
2000 Advanced Server」または「Windows 2000」
● 「Microsoft(R) Windows Server(TM) 2003, Standard Edition」 → 「Windows Server
2003 SE」または「Windows Server 2003」
● 「Microsoft(R) Windows Server(TM) 2003, Enterprise Edition」 → 「Windows Server
2003 EE」または「Windows Server 2003」
● 「Microsoft(R) Windows Server(TM) 2003, Standard x64 Edition」 → 「Windows Server
2003 SE (x64)」または「Windows Server 2003」
● 「Microsoft(R) Windows Server(TM) 2003, Enterprise x64 Edition」 → 「Windows
Server 2003 EE (x64)」または「Windows Server 2003」
● 以上を総称して「Windows」
● 「PowerSORT Server」 → 「PowerSORT」
本書の目的
本書は、PowerSORTの使用方法について説明しています。
本書の対象読者
本書は、PowerSORTを使用する人を対象としています。
本書の構成
本書の構成と内容は、以下のとおりです。
第 1 章
PowerSORTの概要
PowerSORTの機能概要、PowerSORTの入出力環境およびオプション機能について説明しています。
第 2 章
PowerSORTの使い方
PowerSORTの実行方法について説明しています。
第 3 章
PowerSORTのbsortコマンドを使用する
bsortコマンドの記述形式について説明しています。
第 4 章
PowerSORTのbsortexコマンドを使用する
bsortexコマンドの記述形式について説明しています。
第 5 章
OCXを使用してPowerSORTを使用する
プロパティの仕様について説明しています。
第 6 章
COBOLプログラムからPowerSORTを使用する
COBOLプログラムからPowerSORTを使用する方法を説明しています。
第 7 章
C言語プログラムからPowerSORTを使用する
BSORT関数の仕様について説明しています。
第 8 章
メッセージとエラーコード
bsort、bsortexの各コマンドおよびBSORT関数が出力するメッセージと、PowerSORT OCXおよびBSORT
関数が返すエラー詳細コードについて説明しています。
付録
PowerSORTの使用例および使用時の留意事項について説明しています。
登録商標について
本書に記載されている登録商標を、以下に示します。
● Microsoftは、米国Microsoft Corporationの米国およびその他の国における登録商標です。
● Btrieveは、米国Pervasive Software Inc.の商標です。
● Micro FocusおよびMicro Focus COBOLは、英国マイクロフォーカス社の商標です。
● Netscape、Netscape NavigatorおよびNetscape Communicatorは、Netscape Communications
Corporationの米国および諸外国における商標または登録商標です。
● そのほか、本書に記載されている会社名および製品名は、それぞれ各社の商標または登録
商標です。
2006年 6月
初
版
All Rights Reserved, Copyright(C) 富士通株式会社 2000-2006
ii
目次
第1章 PowerSORTの概要 .............................................................................. 1
1.1 主要機能 ..................................................................................... 2
1.2 オプション機能 ............................................................................... 3
1.3 オプション機能と主要機能の組合せ ............................................................. 6
1.4 漢字ソートマージ機能 ......................................................................... 7
1.4.1 基本方式 ................................................................................. 7
1.4.2 国語辞典方式 ............................................................................. 7
1.4.3 漢字ソートマージ機能の留意事項 ........................................................... 8
1.5 環境変数 ..................................................................................... 9
1.6 PowerSORTの入出力環境 ....................................................................... 13
1.7 フィールドとデータ形式 ...................................................................... 15
1.7.1 フィールド .............................................................................. 15
1.7.2 データ形式 .............................................................................. 16
1.7.3 各フィールドで指定可能なデータ形式 ...................................................... 20
1.8 環境設定 .................................................................................... 29
第2章 PowerSORTの使い方 ........................................................................... 30
第3章 PowerSORTのbsortコマンドを使用する .......................................................... 32
3.1 bsortコマンドの形式 ......................................................................... 33
3.1.1 ソート機能を使用する場合 ................................................................ 33
3.1.2 マージ機能を使用する場合 ................................................................ 33
3.1.3 コピー機能を使用する場合 ................................................................ 34
3.1.4 処理定義ファイルを使用する場合 .......................................................... 34
3.2 bsortコマンドオプション ..................................................................... 35
3.2.1 アーギュメントファイルオプション(-a) .................................................. 35
3.2.2 再編成フィールドオプション(-e) ........................................................ 36
3.2.3 入出力ファイルシステムオプション(-F) .................................................. 38
3.2.4 先入力先出力(FIFO)機能オプション(-f) ................................................ 39
3.2.5 メッセージファイルオプション(-G) ...................................................... 39
3.2.6 集約フィールドオプション(-g) .......................................................... 40
3.2.7 ヘルプオプション(-h) .................................................................. 42
3.2.8 インデックス作成方法オプション(-I) .................................................... 42
3.2.9 入力ファイルオプション(infile) ........................................................ 43
3.2.10 キーフィールドオプション(-key-def) ................................................... 43
3.2.11 レコード分離文字オプション(-L) ....................................................... 45
3.2.12 メッセージレベルオプション(-l) ....................................................... 45
3.2.13 漢字ソートマージオプション(-M) ....................................................... 46
3.2.14 出力ファイルオプション(-o) ........................................................... 47
3.2.15 処理定義ファイルオプション(-P) ....................................................... 47
3.2.16 選択フィールドオプション(-p) ......................................................... 48
3.2.17 文字コード系変換オプション(-Q) ....................................................... 51
3.2.18 入力コード系オプション(-q) ........................................................... 51
3.2.19 レコード読み飛ばしオプション(-R) ..................................................... 52
3.2.20 降順オプション(-r) ................................................................... 52
3.2.21 処理(ソート、マージ、コピー)オプション(-s、-m、-c) ................................. 52
3.2.22 テキストファイルオプション(-T) ....................................................... 53
3.2.23 フィールド分離文字オプション(-t) ..................................................... 54
3.2.24 サプレスオプション(-u) ............................................................... 55
3.2.25 入出力上書きオプション(-v) ........................................................... 55
3.2.26 標準出力オプション(-w) ............................................................... 55
iii
3.2.27 インデックス指定オプション(-X) ....................................................... 55
3.2.28 照合順序変更オプション(-x) ........................................................... 56
3.2.29 メモリサイズオプション(-y) ........................................................... 57
3.2.30 レコード形式オプション(-Z) ........................................................... 57
3.2.31 レコード長オプション(-z) ............................................................. 57
第4章 PowerSORTのbsortexコマンドを使用する ........................................................ 59
4.1 bsortexコマンドの形式 ....................................................................... 60
4.1.1 ソート機能を使用する場合 ................................................................ 61
4.1.2 マージ機能を使用する場合 ................................................................ 62
4.1.3 コピー機能を使用する場合 ................................................................ 63
4.2 bsortexコマンドオプション ................................................................... 64
4.2.1 アーギュメントファイルオプション(-a) .................................................. 64
4.2.2 コピーオプション(-copy) ............................................................... 65
4.2.3 定義オプション(-define) ............................................................... 65
4.2.4 ヘルプオプション(-h) .................................................................. 66
4.2.5 入力ファイル情報オプション(-input) .................................................... 66
4.2.6 マージオプション(-merge) .............................................................. 76
4.2.7 実行環境オプション(-option) ........................................................... 79
4.2.8 出力ファイル情報オプション(-output) ................................................... 83
4.2.9 入力レコード情報オプション(-record) ................................................... 88
4.2.10 ソートオプション(-sort) .............................................................. 89
4.2.11 レコード集約オプション(-summary) ..................................................... 90
第5章 OCXを使用してPowerSORTを使用する ............................................................ 94
5.1 PowerSORT OLEカスタムコントロールとは ....................................................... 95
5.2 PowerSORT OCXのプロパティシート ............................................................. 96
5.2.1 「File」プロパティページ ................................................................ 96
5.2.2 「Disposal」プロパティページ ............................................................ 98
5.2.3 「KeyField」プロパティページ ............................................................ 98
5.2.4 「Record」プロパティページ .............................................................. 99
5.2.5 「Option」プロパティページ ............................................................. 100
5.2.6 「Environment」プロパティページ ........................................................ 100
5.3 実行前に設定するプロパティ ................................................................. 102
5.3.1 AlphaNumOnlyプロパティ ................................................................. 102
5.3.2 AlternateModeプロパティ ................................................................ 102
5.3.3 BtrieveFileInfoプロパティ .............................................................. 103
5.3.4 BtrieveIndexKeyプロパティ .............................................................. 104
5.3.5 BtrieveInfileOwnerNameプロパティ ....................................................... 105
5.3.6 CollationOrderプロパティ ............................................................... 106
5.3.7 CompareAsUpperCaseプロパティ ........................................................... 107
5.3.8 DispMessageプロパティ .................................................................. 108
5.3.9 DisposalNumberプロパティ ............................................................... 108
5.3.10 EnableOverwriteInputFileプロパティ .................................................... 109
5.3.11 FieldDefinitionプロパティ ............................................................. 110
5.3.12 FieldDelimiterプロパティ .............................................................. 110
5.3.13 FjcobAlternateKeyプロパティ ........................................................... 111
5.3.14 FjcobDataCompressionプロパティ ........................................................ 113
5.3.15 FjcobKeyCompressionプロパティ ......................................................... 113
5.3.16 FjcobPrimeKeyプロパティ ............................................................... 114
5.3.17 HandlingSameKeyプロパティ ............................................................. 115
5.3.18 IgnoreControlCodeプロパティ ........................................................... 116
5.3.19 InputDataCodeプロパティ ............................................................... 117
5.3.20 InputFilesプロパティ .................................................................. 117
iv
5.3.21 InputFileTypeプロパティ ............................................................... 118
5.3.22 InputFilesSkiprecプロパティ ........................................................... 120
5.3.23 KeyCmdStrプロパティ ................................................................... 120
5.3.24 LineDelimiterプロパティ ............................................................... 122
5.3.25 MaxRecordLengthプロパティ ............................................................. 122
5.3.26 MessageFileNameプロパティ ............................................................. 123
5.3.27 MessageLevelプロパティ ................................................................ 123
5.3.28 OutputFileプロパティ .................................................................. 124
5.3.29 OutputFileTypeプロパティ .............................................................. 125
5.3.30 RconCmdStrプロパティ .................................................................. 126
5.3.31 Reverseプロパティ ..................................................................... 128
5.3.32 SelCmdStrプロパティ ................................................................... 128
5.3.33 SkipLeadingBlankプロパティ ............................................................ 131
5.3.34 SumCmdStrプロパティ ................................................................... 131
5.3.35 TempDirプロパティ ..................................................................... 133
5.3.36 UsableMemorySizeプロパティ ............................................................ 133
5.4 実行後に参照するプロパティ ................................................................. 135
5.4.1 ErrorCodeプロパティ .................................................................... 135
5.4.2 ErrorDetailプロパティ .................................................................. 135
5.4.3 SubErrorCodeプロパティ ................................................................. 136
5.5 メソッド ................................................................................... 137
5.5.1 Actionメソッド ......................................................................... 137
第6章 COBOLプログラムからPowerSORTを使用する ..................................................... 138
第7章 C言語プログラムからPowerSORTを使用する ..................................................... 139
7.1 BSORT関数とは .............................................................................. 140
7.2 BSORT関数の使い方 .......................................................................... 141
7.2.1 ソート機能を使用する場合 ............................................................... 141
7.2.2 マージ機能を使用する場合 ............................................................... 142
7.2.3 コピー機能を使用する場合 ............................................................... 143
7.3 BSORT関数の種類 ............................................................................ 144
7.3.1 bsrtopen関数 ........................................................................... 144
7.3.2 bsrtclse関数 ........................................................................... 145
7.3.3 bsrtput関数 ............................................................................ 146
7.3.4 bsrtget関数 ............................................................................ 147
7.3.5 bsrtmrge関数 ........................................................................... 148
7.4 BSORT関数で使用する構造体 .................................................................. 150
7.4.1 BSRTPRIM構造体 ......................................................................... 150
7.4.2 BSRTREC構造体 .......................................................................... 156
7.4.3 BSRTKEY構造体 .......................................................................... 158
7.4.4 BSKEY構造体 ............................................................................ 158
7.4.5 BSKANJI構造体 .......................................................................... 161
7.4.6 BSCOL構造体 ............................................................................ 162
7.4.7 BSRTFILE構造体 ......................................................................... 162
7.4.8 BSFILE構造体 ........................................................................... 164
7.4.9 BSFSYS構造体 ........................................................................... 165
7.4.10 BSIDX構造体 ........................................................................... 166
7.4.11 BSIDXKEY構造体 ........................................................................ 166
7.4.12 BSFILE_EXT構造体 ...................................................................... 167
7.4.13 BSFILE_BTRV構造体 ..................................................................... 168
7.4.14 BSFILE_BASE構造体 ..................................................................... 170
7.4.15 BSRTOPT構造体 ......................................................................... 171
7.4.16 BSRTSUM構造体 ......................................................................... 172
v
7.4.17 BSSUM構造体 ........................................................................... 172
7.4.18 BSRTSELE構造体 ........................................................................ 174
7.4.19 BSSELE構造体 .......................................................................... 174
7.4.20 BSRTRCON構造体 ........................................................................ 178
7.4.21 BSRCON構造体 .......................................................................... 178
7.4.22 BSRTSKIP構造体 ........................................................................ 179
7.4.23 BSRTFUNC構造体 ........................................................................ 180
第8章 メッセージとエラーコード ................................................................... 181
8.1 メッセージ ................................................................................. 182
8.1.1 情報メッセージ ......................................................................... 182
8.1.2 エラーメッセージ ....................................................................... 183
8.1.3 アプリケーションログへの出力メッセージ ................................................. 226
8.2 エラーコード ............................................................................... 227
8.2.1 BSORT関数のエラー詳細コード(errdetail) ............................................... 227
8.2.2 富士通COBOLファイルに関するエラーコード ................................................ 238
8.2.3 Btrieveファイルに関するエラーコード .................................................... 238
8.2.4 ADJUSTに関するエラーコード ............................................................. 238
8.2.5 ICONVに関するエラーコード .............................................................. 238
8.2.6 OCX使用時のエラー詳細コード ............................................................ 239
付録A 使用例 ..................................................................................... 247
A.1 bsortコマンドの使用例 ...................................................................... 247
A.2 bsortexコマンドの使用例 .................................................................... 249
A.3 PowerSORT OCXの使用例 ...................................................................... 252
A.3.1 ソート処理(バイナリファイル)の例 ..................................................... 252
A.3.2 ソート処理(テキストファイル)の例 ..................................................... 252
A.3.3 マージ処理(バイナリファイル)の例 ..................................................... 253
A.3.4 マージ処理(テキストファイル)の例 ..................................................... 254
A.3.5 コピー処理(バイナリファイル)の例 ..................................................... 255
A.3.6 コピー処理(テキストファイル)の例 ..................................................... 255
A.3.7 レコード選択機能を使った例 ............................................................. 256
A.3.8 レコード再編成機能を使った例 ........................................................... 256
A.3.9 レコード集約機能を使った例 ............................................................. 257
A.3.10 レコード選択機能、レコード再編成機能、レコード集約機能を組み合わせた例 ................ 258
A.3.11 サプレス機能を使った例 ................................................................ 259
A.3.12 FIFO機能を使った例 .................................................................... 260
A.3.13 富士通COBOL索引ファイルのソート例 ..................................................... 260
A.4 BSORT関数の使用例 .......................................................................... 261
付録B 留意事項 ................................................................................... 265
B.1 メモリ不足への対処方法 ..................................................................... 265
B.2 一時ファイルのフォルダ指定方法 ............................................................. 265
B.3 レコード集約機能使用時の留意事項 ........................................................... 265
B.4 フィールド位置の指定方法 ................................................................... 266
B.5 文字/数字混在のデータの並びに関する留意事項 ................................................ 267
B.6 ファイル種別に関する留意事項 ............................................................... 267
B.7 富士通COBOLファイルシステムの行順ファイルに関する留意事項 .................................. 268
B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関係 ........................................ 269
B.9 PowerSORT VBXからの移行方法 ................................................................ 269
用語集 ........................................................................................... 272
索引 ............................................................................................. 275
vi
第1章 PowerSORTの概要
PowerSORTは、本格的な事務処理で使用できる高性能ソートマージ機能を実現するソフトウェアです。
PowerSORTには、ソート機能、マージ機能およびコピー機能の主要機能と各種オプション機能があり、
これらの機能を組み合わせることでさまざまな処理を同時に使用できます。
第1章 PowerSORTの概要
1.1 主要機能
PowerSORTの代表的な機能には、ソート機能、マージ機能およびコピー機能の3つがあります。
PowerSORTでは、これら3つの機能を特に主要機能と呼んでいます。
● ソート機能
● マージ機能
● コピー機能
ソート機能
指定された1つ以上のキーフィールドにより昇順(0から9、AからZの順)または降順(ZからA、9から
0の順)にレコードを並び替える機能です。
マージ機能
ソート済みの複数のファイルを併合する(まとめる)機能です。
コピー機能
1つ以上の入力ファイルを出力ファイルに複写する機能です。
2
1.2 オプション機能
1.2 オプション機能
PowerSORTには、以下のオプション機能があります。オプション機能は、主要機能と同時に指定しま
す。
● レコード選択機能
●
●
●
●
レコード再編成機能
レコード集約機能
サプレス機能
先入力先出力(FIFO)機能
レコード選択機能
レコード選択機能とは、処理対象のレコードの選択方法を指定して、必要なレコードだけを選択する
機能です。主要機能と組み合わせて使用します。この機能を使用する場合は、被比較フィールドと比
較フィールドとの比較方法、または被比較フィールドと自己規定値との比較方法を指定します。また、
bsortexコマンドではレコード件数を選択条件とすることが可能です。
以下にレコード選択機能を使用した例を示します。
例) キーフィールド順にソートし、被比較フィールドと比較フィールドを比較します。被比較フィ
ールドが比較フィールドより大きい値のレコードを選択します。
レコード再編成機能
レコード再編成機能とは、フィールドの位置を変更したり、自己規定値をレコードに埋め込む機能で
す。主要機能と組み合わせて使用します。この機能を使用する場合は、出力レコードの左端から順番
にフィールドを指定します。入力レコードのフィールドの位置を変更する場合はその位置と長さを、
自己規定値を埋め込む場合はその自己規定値を指定します。
以下にレコード再編成機能を使用した例を示します。
例) キーフィールド順にソートし、再編成フィールド1、再編成フィールド2および再編成フィール
ド3で再編成します。
3
第1章 PowerSORTの概要
レコード集約機能
レコード集約機能とは、同値のキーフィールドをもつレコードが複数あるファイルまたはレコード群
をソート処理またはマージ処理する際、集約フィールドの値を加算して1つのレコードにする機能で
す。ソート機能またはマージ機能と組み合わせて使用します。サプレス機能および先入力先出力
(FIFO)機能とは、排他関係にあります。
以下にレコード集約機能を使用した例を示します。
例) キーフィールド順にソートし、同値のキーフィールドをもつレコードの集約フィールドを集約
します。
サプレス機能
サプレス機能とは、同値のキーフィールドをもつレコードが複数あるファイルまたはレコード群をソ
ート処理またはマージ処理する際、1つを残して他を削除する機能です。ソート機能またはマージ機
能と組み合わせて使用します。レコード集約機能および先入力先出力(FIFO)機能とは、排他関係に
あります。
以下にサプレス機能を使用した例を示します。
例) キーフィールド順にソートし、同値のキーフィールドをもつレコードは1つを残して他を削除し
ます。
4
1.2 オプション機能
先入力先出力(FIFO)機能
先入力先出力(FIFO)機能とは、同値のキーフィールドをもつレコードが複数あるファイルまたはレ
コード群をソート処理する際、先に入力したレコードを先に出力する機能です。ソート機能と組み合
わせて使用します。bsortexコマンドでは、マージ機能とも組み合わせて使用できます。レコード集
約機能およびサプレス機能とは、排他関係にあります。
以下に先入力先出力(FIFO)機能を使用した例を示します。
例) キーフィールド順にソートし、同値のキーフィールドをもつレコードは入力順に出力します。
5
第1章 PowerSORTの概要
1.3 オプション機能と主要機能の組合せ
オプション機能と主要機能の組合せの可否を以下に示します。
オプション機能と主要機能の組合せの可否
オプション機能
主要機能
ソート機能
マージ機能
コピー機能
レコード選択機能
○
○
○
レコード再編成機能
○
○
○
レコード集約機能
○
○
×
サプレス機能
○
○
×
△
×
先入力先出力(FIFO)機能
○
○:組合せ可能
△:bsortexコマンド使用時に組合せ可能
×:組合せ不可能
6
1.4 漢字ソートマージ機能
1.4 漢字ソートマージ機能
漢字ソートマージ機能は、漢字コードで表現された文字(日本語)を含むレコードを、文字の持つ属性
に従って並べる機能です。
一般に漢字の読みは一意に決まらず、文字の属性(音読みや訓読み)だけでは使用者の意図どおり並ば
ないことがあります。このような場合、キーフィールドに対する読みがレコード内にあれば、それら
を参照して並べることができます。漢字ソートマージ機能では、レコード内の漢字コードで表現され
たフィールドのことを漢字フィールド、それに対応する読みが入っているフィールドをふりがなフィ
ールドと呼びます。ふりがなフィールドは、ひらがな文字およびカタカナ文字で表現します。
漢字ソートマージ機能で実現している並べ方には、基本方式と国語辞典方式の2つの方式があります。
1.4.1 基本方式
基本方式は、文字の属性に従って並べます。
各属性は“JEF文字コード索引辞書”に従っています。必要に応じて“JEF文字コード索引辞書”を参
照してください。基本方式では、漢字フィールドだけで並べることができます。
照合順序
基本方式の照合順序は、以下の属性によって決まります。属性は最大4つまで指定でき、指定した順
序で並べます。
● 総画数
総画数の小さいものから大きい順(またはその逆)に並べます。
● 部首
部首の画数の小さいものから大きい順(またはその逆)に並べます。
● 音読み
音読みの50音順(またはその逆)に並べます。
● 訓読み
訓読みの50音順(またはその逆)に並べます。
● コード
漢字コードの小さいものから大きい順(またはその逆)に並べます。
1.4.2 国語辞典方式
国語辞典方式は、国語辞典に採用されている読み(清音読み)を基本として並べます。
国語辞典方式では、漢字フィールドに加えてふりがなフィールドが必要となります。
照合順序
昇順に並べることを例に説明します。
1. ふりがなフィールドのかな文字を50音順に並べます。
例)あ→が→き→っ→ぱ→ゅ
2. ふりがなフィールドのかな文字を濁点や半濁点の付いていない文字、濁点の付いている文
字、半濁点の付いている文字の順に並べます。
例)は→ば→ぱ
フ→ブ→プ
3. ふりがなフィールドのかな文字を直音で表す文字、その小文字の順に並べます。
例)や→ゃ
ヨ→ョ
4. ふりがなフィールドのかな文字をひらがな、カタカナの順に並べます。
例)け→ケ
ゅ→ュ
5. 漢字フィールドに対する文字の属性の指定があれば、基本方式と同様の照合順序で並べま
す。
7
第1章 PowerSORTの概要
1.4.3 漢字ソートマージ機能の留意事項
漢字ソートマージ機能使用時の留意事項を以下に示します。
漢字フィールドに含まれる特殊文字の扱い
● 漢字フィールド中の繰返し記号(々)は直前の文字に置き換えます。ただし、漢字フィール
ドの先頭に存在する場合は置き換えません。
● 漢字フィールド内に1バイト系の文字が含まれていた場合には、その1バイト系の文字は無
いものとして扱い、漢字コードの後に1バイト系の文字が現れた場合はその後のコードを
無視します。
例)漢字フィールドが以下の文字列の場合、すべて“漢字”として処理します。
― 漢字
― abc漢字
― 漢字abc
― 漢字abc日本def
― abc漢字def日本
● 文字の属性を取り出すことができなかったコード(たとえば、拡張漢字など)は空白として
処理します。
ふりがなフィールドに含まれる特殊文字の扱い
● ふりがなフィールド内の繰返し記号(ヽ、ゝ、ヾ、ゞ)は直前の文字に置き換えます。濁点
付きの繰返し記号は直前の文字に濁点を付けて置き換えます。また、ひらがな繰返しは直
前の文字をひらがなとして置き換え、カタカナ繰返しは直前の文字をカタカナとして置き
換えます。
● ふりがなフィールド内の長音記号(ー、―、-、-)は直前の文字の母音を表す文字に置き
換えます。
● ふりがなフィールド内の濁点(゛)は直前の文字に濁点を付けます。また、半濁点(゜)は直
前の文字に半濁点を付けます。
● 以上の文字は、直前の文字がない場合には空白に置き換えます。その他の文字(たとえば、
数字、特殊文字など)はすべて空白に置き換えます。
8
1.5 環境変数
1.5 環境変数
環境変数を設定することにより、PowerSORTの省略値や動作条件を設定することができます。
以下に、PowerSORTで設定可能な環境変数を示します。
なお、環境変数は実行時オプションの省略値または補助情報となります。PowerSORTの実行時に、対
応するオプションの指定がある場合は、指定したオプションの値が環境変数より優先されます。
環境変数
意味
BSORT_CHKLEVEL
チェックレベルの指定
BSORT_COBFSYS_MODE
富士通COBOLファイルシステムオプションの指定
BSORT_EVENTLOG
アプリケーションログへの出力指定
BSORT_MEMSIZE
作業域の大きさの指定
BSORT_MSGFILE
メッセージ出力ファイル名の指定
BSORT_MSGLEVEL
メッセージ出力レベルの指定
BSORT_MSGOUT
情報、エラーメッセージ出力先の指定
BSORT_RDM_EMPTY
0件のRDMファイルを入力した場合の処理方法
BSORT_SUMOVERCONT
レコード集約処理実行中にオーバフローが発生した場合の、それ
以後のレコード集約処理を継続するか否かの指定
BSORT_TMPDIR
一時ファイルフォルダ名の指定
BSORT_TOPYY
2桁年号データの照合順序定義の指定
BSORT_UCS2TYPE
Unicode UCS-2形式のバイトオーダの指定
BSORT_UNICODEBOM
BOMの読み飛ばしの有無の指定
BSORT_CHKLEVEL={0 | 1}
PowerSORTの内部のチェック機能を指定します。
指定値
意味
0
何もチェックしません。(省略値)
1
BSORT関数でインタフェースチェックをします。
BSORT_COBFSYS_MODE={NORMAL | BSAM}
入出力ファイルのファイルシステムに"富士通COBOLファイルシステム(順ファイル)"を指定した場合
に、動作させるファイルシステムを指定します。BSAM対応については富士通COBOLファイルシステム
(BSAM対応順ファイル)についてを参照してください。
指定値
意味
NORMAL
"富士通COBOLファイルシステム(順ファイル)"として動作します。(省略
値)
BSAM
"富士通COBOLファイルシステム(BSAM対応順ファイル)"として動作しま
す。
● この環境変数は、入出力ファイルのファイルシステムに"富士通COBOLファイルシステム
(順ファイル)"を指定した場合に有効です。
● BSAMを指定しても、使用する富士通COBOLファイルシステムがBSAMに対応していない場合
はNORMALで動作します。
BSORT_EVENTLOG={YES | NO}
PowerSORTが検出した重大なエラー情報のアプリケーションログへの出力を指定します。
出力対象となるメッセージは、PowerSORTが動作するために必要なメモリサイズが不足した場合、フ
ァイルシステムがI/Oエラーを検出した場合および漢字ソートマージ機能でエラーを検出した場合に
9
第1章 PowerSORTの概要
出力されるメッセージです。詳細はアプリケーションログへの出力メッセージを参照してください。
指定値
意味
YES
エラー情報をアプリケーションログへ出力します。
NO
エラー情報をアプリケーションログへ出力しません。(省略値)
BSORT_MEMSIZE=n
PowerSORTが使用する作業域の大きさ(メモリサイズ)をキロバイト数で指定します。
メモリサイズは32~2097151キロバイトの範囲で指定します。0を指定した場合、または環境変数
BSORT_MEMSIZEの指定を省略した場合は、メモリサイズは自動的に設定されます。2097152以上の値を
指定した場合は、2097151を指定したとみなされます。
メモリサイズは入力データ量の1/50以上とすることをお薦めします。ただし、入力データ量の1/50
が8192キロバイト未満の場合は、8192キロバイトとすることをお薦めします。
BSORT_MSGFILE=メッセージ出力ファイル名
PowerSORTが出力するメッセージを格納するファイルパス名を指定します。
ファイル名に空白を含む場合も、ファイル名をダブルクォーテーション( " )で囲む必要はありませ
ん。
BSORT_MSGLEVEL={0 | 1 | 2}
PowerSORTが出力するメッセージのレベルを指定します。
指定値
意味
0
何も出力しません。
1
エラーメッセージを出力します。(省略値)
2
エラーメッセージと情報メッセージを出力します。
BSORT_MSGOUT={STDOUT | STDERR}
情報メッセージ、エラーメッセージの出力先を指定します。
指定値
意味
STDOUT
エラーメッセージを標準出力に出力します。情報メッセージは標準出力に
出力されません。
メッセージファイルの指定がある場合は、エラーメッセージを標準出力に
出力するとともに、情報メッセージおよびエラーメッセージをメッセージ
ファイルに出力します。
STDERR
情報メッセージおよびエラーメッセージを標準エラー出力に出力します。
メッセージファイルの指定がある場合は、エラーメッセージを標準エラー
出力に出力するとともに、情報メッセージおよびエラーメッセージをメッ
セージファイルに出力します。(省略値)
以下にPowerSORTの出力ファイルに標準出力を指定し、処理結果をリダイレクトして別ファイルに出
力した場合の例を示します。
例1) 環境変数BSORT_MSGOUTにSTDOUTを指定した場合のエラーメッセージ、情報メッセージおよび処
理結果の出力先は以下のようになります。
PowerSORTの動作
エラーメッセージ
情報メッセージ
処理結果
正常終了
異常終了
なし
なし
リダイレクトされた
ファイル
リダイレクトされた
ファイル
なし
なし
例2) 環境変数BSORT_MSGOUTにSTDERRを指定した場合のエラーメッセージ、情報メッセージおよび処
理結果の出力先は以下のようになります。
10
1.5 環境変数
PowerSORTの動作
正常終了
異常終了
エラーメッセージ
情報メッセージ
処理結果
なし
画面(標準エラー出
力)
リダイレクトされた
ファイル
画面(標準エラー出
力)
画面(標準エラー出
力)
なし
BSORT_RDM_EMPTY={CONTINUE | ERROR}
0件のRDMファイルを入力した場合の処理方法を指定します。
指定値
意味
CONTINUE
格納レコード件数が0件のRDMファイルを入力した場合、0件のレコードを
入力したものとして処理を継続します。この場合、格納レコード0件の出
力ファイルが作成されます。
ERROR
格納レコード件数が件のRDMファイルを入力した場合、入力処理でエラー
とします。この場合、出力ファイルは作成されません。(省略値)
BSORT_SUMOVERCONT={ON | OFF}
レコード集約処理でオーバフローが発生した場合に、それ以後のレコード集約処理の動作を指定しま
す。
指定値
意味
ON
オーバフローする直前まで集約されたレコードを出力し、それ以後の同値
のキーフィールドを持つレコードに対しては、別レコードとしてレコード
集約処理を継続します。以降、オーバフローするたびに同様の処理を行い
ます。
OFF
オーバフローする直前まで集約されたレコードを出力し、それ以後の同値
のキーフィールドを持つレコードに対しては、レコード集約処理を行いま
せん。(省略値)
BSORT_TMPDIR=一時ファイルフォルダ名[;一時ファイルフォルダ名...]
PowerSORTのソート処理に必要となる一時ファイルを作成するフォルダ名を指定します。
メモリ内だけでは処理できない量のレコードをソート処理する場合、環境変数BSORT_TMPDIRで指定さ
れたフォルダに一時ファイルを作成します。指定されたフォルダが存在しない場合は、エラーとなり
ます。また、セミコロン( ; )で区切ることで複数のフォルダ名を指定できます。ドライブの異なる
複数のフォルダ名を指定すると、指定されたフォルダに一時ファイルが分散されるため、空きスペー
ス不足によるエラーを回避できることがあります。フォルダ名を複数指定する場合は、セミコロン
( ; )の前後に空白などの不要な文字列を置かないようにしてください。
なお、PowerSORTは以下の優先順位に従って、一時ファイルを作成するフォルダを決定します。
1. BSORT 関 数 に お け る BSRTFILE 構 造 体 の tmpfile_tbl ま た は bsortex コ マ ン ド に お け る
-optionオプションのtmpdirオペランドで指定されたフォルダ
2. 環境変数BSORT_TMPDIRで指定されたフォルダ
3. 環境変数TEMPで指定されたフォルダ
4. 環境変数TMPで指定されたフォルダ
5. Windowsシステムのフォルダ
BSORT_TOPYY=yy
2桁年号データ形式を使ってソートマージ処理する場合に、並替えのしきい値を設定します。
ここで指定したyy年が最小値となります。たとえば、BSORT_TOPYY=60とした場合、最小値が60、最大
値が59となり、年号データを下2桁で並べた場合は、1960年から2059年の順に大小関係が決定します。
省略値は60です。キーフィールドおよび選択フィールドのデータ形式として2桁年号データ形式を指
定した場合に有効となります。
11
第1章 PowerSORTの概要
BSORT_UCS2TYPE={LITTLE_ENDIAN | BIG_ENDIAN}
Unicode UCS-2形式のバイトオーダを指定します。
bsortexコマンドおよびbsortコマンドでUnicode UCS-2形式のデータ形式を指定した場合に有効です。
指定値
意味
LITTLE_ENDIAN Little endianとします。(省略値)
BIG_ENDIAN
Big endianとします。
BSORT_UNICODEBOM={ON | OFF}
入力ファイルがテキストファイルで、かつ入力ファイルのコード系がUnicode系(UCS-2形式または
UTF-8形式)のとき、BOMの読み飛ばしの有無を指定します。
入力ファイルにBOMが存在し、BOMを読み飛ばした場合、出力ファイルにBOMを付加します。複数の入
力ファイルを指定している場合は、先頭に指定した入力ファイルにBOMが存在し、BOMを読み飛ばした
場合、出力ファイルにBOMを付加します。
指定値
意味
12
ON
BOMを読み飛ばします。ただし、先頭がBOMでない場合は読み飛ばしません。
入力ファイルの先頭にBOMが存在する場合にレコードからBOMを除外する
ことができます。(省略値)
OFF
BOMを読み飛ばしません。
1.6 PowerSORTの入出力環境
1.6 PowerSORTの入出力環境
PowerSORTの入出力の対象となるファイル種別について説明します。
対象となるファイル種別
PowerSORTでは、以下のファイルを使用できます。
テキストファイル
文字列データと改行コードおよびEOFコードで構成されたシステムの標準ファイルシステム上の文書
ファイルです。
バイナリファイル
文字列や16進データによる、長さが一定のレコード(固定長レコード形式)で構成されているシステム
の標準ファイルシステム上のファイルです。
富士通COBOL順編成、索引、相対ファイル
富士通のNetCOBOL、PowerCOBOL97、COBOL97およびCOBOL85などでサポートしているファイル形式で、
それぞれに固定長レコード形式、可変長レコード形式があります。PowerSORTはBSAMに対応した富士
通COBOL順編成ファイルにも対応しています。BSAMに対応した富士通COBOL順編成ファイルについては
富士通COBOLファイルシステム(BSAM対応順ファイル)についてを参照してください。
Micro Focus COBOL順編成、索引、相対ファイル
Micro Focus COBOLでサポートしているファイル形式で、それぞれに固定長レコード形式、可変長レ
コード形式があります。
Btrieveファイル
Btrieveで取り扱うファイルで、固定長レコード形式と可変長レコード形式があります。
RDMファイル
PowerRW+でサポートしているファイル形式で、固定長レコード形式で構成されているファイルです。
入力と出力のファイル種別の組合せについて
入力と出力のファイル種別は、以下の組合せの範囲で異なるファイル種別を指定できます。
レコード形式は、入力ファイルのレコード形式が出力ファイルのレコード形式となり、変更すること
はできません。
入力ファイル種別
出力ファイル種別
テキストファイル
テキストファイル
バイナリファイル
バイナリファイル
富士通COBOL順編成、索引、相対ファイル
Micro Focus COBOL順編成、相対ファイル
Btrieveファイル
RDMファイル
上記以外のファイル
バイナリファイル(入力ファイルのレコード
形式が固定長レコード形式の場合のみ)
富士通COBOL順編成、索引、相対ファイル
Micro Focus COBOL順編成、相対ファイル
Btrieveファイル
RDMファイル(入力ファイルのレコード形式
が固定長レコード形式の場合のみ)
● データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイル
に指定することはできません。
13
第1章 PowerSORTの概要
● 出力ファイルにMicro Focus COBOLファイルシステムの索引ファイルを指定することはで
きません。
● Btrieveファイルは、bsortコマンドおよびbsortexコマンドでは出力ファイルとして指定
することはできません。
富士通COBOLファイルシステム(BSAM対応順ファイル)について
● PowerSORTはBSAMに対応した富士通COBOL順ファイルを処理することが可能です。BSAMに対
応した富士通COBOL順ファイルを処理する場合は、入出力ファイルのファイルシステムに"
富士通COBOLファイルシステム(BSAM対応順ファイル)"を指定してください。
● "富士通COBOLファイルシステム(順ファイル)"で扱える最大ファイルサイズは1ギガバイ
トです。"富士通COBOLファイルシステム(BSAM対応順ファイル)"では、ファイルサイズが
1GBを超えるファイルを扱うことができます。扱うことのできる最大ファイルサイズにつ
いては、お使いの富士通COBOLファイルシステムのマニュアルを参照してください。
● 入出力ファイルのファイルシステムに"富士通COBOLファイルシステム(BSAM対応順ファイ
ル)"を指定した場合、富士通COBOLファイルシステムの仕様によりレコード排他処理が行
われません。
● お使いの富士通COBOLファイルシステムがBSAMに対応しているかの確認、およびBSAMにつ
いての詳細は、お使いの富士通COBOLファイルシステムのマニュアルを参照してください。
● お使いの富士通COBOLファイルシステムがBSAMに対応していない場合、入出力ファイルの
ファイルシステムに"富士通COBOLファイルシステム(BSAM対応順ファイル)"を指定しても
"富士通COBOLファイルシステム(順ファイル)"として動作します。
14
1.7 フィールドとデータ形式
1.7 フィールドとデータ形式
ここでは、PowerSORTを使用するためのフィールドの種類と、それぞれのフィールドに指定できるデ
ータ形式について説明します。
1.7.1 フィールド
フィールドには、ソート機能およびマージ機能で使用するキーフィールド、レコード集約機能で使用
する集約フィールド、レコード選択機能で使用する選択フィールド(被比較フィールドおよび比較フ
ィールド)、およびレコード再編成機能で使用する再編成フィールドがあります。また、フィールド
の指定方法には、固定フィールド指定と浮動フィールド指定があります。
固定フィールド指定とは、レコードの先頭からのバイト位置によって区分されるフィールドの指定方
法です。フィールドの位置は全レコードで共通です。
浮動フィールド指定とは、フィールド分離文字によって区分されるフィールドの指定方法です。フィ
ールド分離文字の位置によってフィールドの位置が決定されるため、レコードごとにフィールドの位
置は異なります。浮動フィールド指定はテキストファイルのときに指定できます。
キーフィールド
キーフィールドは、レコードの大小関係を決めるために使用するレコード中のフィールドです。フィ
ールドの位置、長さ、データ形式と操作方法の情報からなっています。
集約フィールド
集約フィールドは、レコード集約機能で使用する、数値を加算するためのフィールドです。集約フィ
ールドは、フィールドの位置、長さ、データ形式および出力形式の情報からなっています。
選択フィールド
選択フィールドは、レコード選択機能で使用するフィールドです。選択フィールドには、被比較フィ
ールドおよび比較フィールドがあります。
レコード中の2つのフィールドを比較する場合は、先に指定したフィールドを被比較フィールド、後
に指定したフィールドを比較フィールドといいます。レコード中のフィールドと自己規定値を比較す
る場合は、先に指定したフィールドを被比較フィールドといいます。
被比較フィールドは、レコード中のフィールドの位置、長さ、データ形式と操作方法の情報からなっ
ています。比較フィールドは、レコード中のフィールドの位置、長さとデータ形式の情報からなって
います。自己規定値は、10進数の定数または16進数や文字列で表される文字列定数です。
再編成フィールド
再編成フィールドは、レコード再編成機能で指定する入力または出力レコード中のフィールドです。
レコード中のフィールドの位置と長さの情報からなっています。
再編成フィールドには、レコード再編成機能で使用する10進数の定数または16進数や文字列で表され
る文字列定数を自己規定値として指定できます。レコード再編成機能では、任意の数字や文字をレコ
ードに埋め込むときに自己規定値を使用します。
浮動フィールド指定の注意事項
● キーフィールド、集約フィールド、選択フィールドおよび再編成フィールドにフィールド
分離文字を含むことはできません。
● フィールド分離文字の指定を省略した場合は、空白とタブがフィールド分離文字となりま
す。フィールド分離文字の指定を省略し、空白が連続している場合は、最初の空白がフィ
ールド分離文字となり、残りの空白はフィールドの一部とみなして動作します。
● フィールド分離文字を指定した場合は、フィールド分離文字が連続すると空フィールドが
存在するとみなして処理します。
15
第1章 PowerSORTの概要
● 自己規定値にフィールド分離文字およびレコード分離文字を含むことはできません。
1.7.2 データ形式
ここでは、データ形式の概要を示します。
データ形式には、以下の3つの種類があり、それぞれの種類ごとに型があります。
● 文字
● 数値
● 数字
1.7.2.1 文字
文字の型には、以下の7つの型があります。
● ASCIIコード
● EBCDICコード
● シフトJISコード
● JEFコード
● Unicode
● 文字形式2桁年号
● 照合順序変更
ASCIIコード
文字を8ビット透過なコード順に比較します。
複数バイト文字が混在している場合は、オプションを指定することによって文字ごとに比較します。
ASCIIコード、シフトJISコードおよび8単位カナコードを処理できます。漢字ソートマージ機能の漢
字フィールドおよびふりがなフィールドとしても指定可能です。
入力ファイルのコード系がEBCDICコード系の場合、ASCIIコード順に並べます。
EBCDICコード
EBCDIC文字を8ビット透過なコード順に比較します。
漢字ソートマージ機能のふりがなフィールドとしても指定可能です。
入力ファイルのコード系がASCIIコード系の場合、EBCDICコード順に並べます。
シフトJISコード
シフトJISコードを文字ごとに比較します。
漢字ソートマージ機能の漢字フィールドおよびふりがなフィールドとしても指定可能です。
JEFコード
富士通の汎用計算機で用いられている日本語コードです。文字を16ビット透過なコード順に並べます。
漢字ソートマージ機能の漢字フィールドおよびふりがなフィールドとしても指定可能です。
Unicode
世界中の文字を統一的に記述できる国際的な文字コードです。PowerSORTでは、以下の2つの形式をサ
ポートしています。
● UCS-2形式
1文字を2バイトで表現する形式です。
● UTF-8形式
1文字を1~6バイトの可変長のバイトで表現する形式です。
PowerSORTでは、1~3バイトまでをサポートしています。
16
1.7 フィールドとデータ形式
文字形式2桁年号
環境変数BSORT_TOPYYの指定値に従って、2桁の数字を2桁年号として比較します。
照合順序変更
与えられた照合順序の情報に従って、1バイトの文字を他の文字に置き換えて比較します。
1.7.2.2 数値
数値の型には、以下の16の型があります。
● 符号なし2進数
● 固定小数点2進数
● 8086形式固定小数点2進数
● システム依存形式固定小数点2進数
● 符号なし固定小数点2進数
●
●
●
●
●
●
8086形式符号なし固定小数点2進数
システム依存形式符号なし固定小数点2進数
IEEE形式浮動小数点2進数
M形式浮動小数点2進数
内部10進数
符号なし内部10進数
●
●
●
●
●
外部10進数
符号なし外部10進数
外部10進形式2桁年号
内部10進形式2桁年号
10進形式2桁年号
符号なし2進数
1バイト中の任意のビットを取り出してキーフィールド、被比較フィールドまたは比較フィールドの
比較値として使用します。ビットの取り出しにはマスク値を使用します。マスク値とフィールドの値
の論理積を比較値にします。
固定小数点2進数
先頭1ビットを符号とした固定小数点2進数のフィールドです。固定小数点2進数の形式は、8086系MPU
で使用されているLittle endianという形式と、Big endianの形式があります。単に固定小数点2進数
という場合、Big endianの形式です。
8086形式固定小数点2進数
8086系MPUで使用されている固定小数点2進数のフィールドです。この形式はLittle endianという呼
び名で知られています。
システム依存形式固定小数点2進数
システムの標準がBig endianの場合、固定小数点2進数を意味します。システムの標準がLittle endian
の場合、8086形式固定小数点2進数を意味します。
符号なし固定小数点2進数
符号フラグをもたない固定小数点2進数です。8086系MPUで使用されているLittle endianという形式
と、Big endianの形式があります。単に符号なし固定小数点2進数という場合、Big endianの形式で
す。
8086形式符号なし固定小数点2進数
8086系MPUで使用されている符号なし固定小数点2進数のフィールドです。この形式はLittle endian
という呼び名で知られています。
17
第1章 PowerSORTの概要
システム依存形式符号なし固定小数点2進数
システムの標準がBig endianの場合、符号なし固定小数点2進数を意味します。システムの標準が
Little endianの場合、8086形式符号なし固定小数点2進数を意味します。
IEEE形式浮動小数点2進数
指数部と仮数部で表現され、符号は指数部の先頭1ビットに設定される2進数の表現形式です。
M形式浮動小数点2進数
富士通の汎用計算機で用いられている浮動小数点2進数です。指数部と仮数部で表現され、符号は指
数部の先頭1ビットに設定される2進数の表現形式です。
内部10進数
1バイトに2桁の10進数を格納した10進数の表現形式です。
xx
xx
…
xx
xS
x:0x0~0x9
S:[正の場合]0xa、0xc、0xe、0xf
[負の場合]0xb、0xd(注)
注) 4ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号
として扱います。
符号なし内部10進数
PowerSORTでは、以下の2つの形式をサポートしています。
符号なし内部10進数(符号部あり)
1バイトに2桁の10進数を格納し、最終4ビットで符号なしを表した10進数の表現形式です。
xx
xx
…
xx
xS
x:0x0~0x9
S:0xf(注)
注) 最終4ビットの値の正当性はチェックしません。
符号なし内部10進数(符号部なし)
1バイトに2桁の10進数を格納した符号部をもたない10進数の表現形式です。
xx
xx
…
xx
xx
x:0x0~0x9
外部10進数
1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現形
式です。
3x
3x
…
3x
Sx
3:0x3
x:0x0~0x9
S:[正の場合]0x4
[負の場合]0x5(注)
注) 4ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号
として扱います。
符号なし外部10進数
1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した符号部をもたな
い10進数の表現形式です。
18
1.7 フィールドとデータ形式
3x
3x
…
3:0x3
x:0x0~0x9
3x
3x
外部10進形式2桁年号
環境変数BSORT_TOPYYの指定値に従って、2バイトの外部10進数を2桁年号として比較します。
内部10進形式2桁年号
環境変数BSORT_TOPYYの指定値に従って、2バイトの内部10進数を2桁年号として比較します。
10進形式2桁年号
環境変数BSORT_TOPYYの指定値に従って、1バイトの符号なし内部10進数を2桁年号として比較します。
ここで記述されているデータ形式の図は、入力ファイルのコード系がASCIIコード系(富士
通COBOL形式)の場合の形式です。
1.7.2.3 数字
数字の型には、以下の5つのデータ形式があります。
● 符号なし数字
● 前置別符号付数字
● 後置別符号付数字
● 前置オーバパンチ符号付数字
● 後置オーバパンチ符号付数字
符号なし数字
符号なし外部10進数と同じ形式です。
前置別符号付数字
先頭の1バイトに符号部をもった、1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30
~0x39)で格納した10進数の表現形式です。
SS
3x
…
3x
3x
3:0x3
x:0x0~0x9
SS:[正の場合]0x2b
[負の場合]0x2d(注)
注) 8ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号
として扱います。
後置別符号付数字
最後の1バイトに符号部をもった、1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30
~0x39)で格納した10進数の表現形式です。
3x
3x
…
3x
SS
3:0x3
x:0x0~0x9
SS:[正の場合]0x2b
[負の場合]0x2d(注)
注) 8ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号
として扱います。
19
第1章 PowerSORTの概要
前置オーバパンチ符号付数字
1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現形
式です。先頭の1バイトには、符号と数字を格納します。
Sx
3x
…
3x
3x
3:0x3
x:0x0~0x9
S:[正の場合]0x4
[負の場合]0x5(注)
注) 4ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号
として扱います。
後置オーバパンチ符号付数字
外部10進数と同じ形式です。
ここで記述されているデータ形式の図は、入力ファイルのコード系がASCIIコード系(富士
通COBOL形式)の場合の形式です。
1.7.3 各フィールドで指定可能なデータ形式
ここでは、各フィールドごとに指定できるデータ形式とその長さについて説明します。
● キーフィールドに指定可能なデータ形式
● 集約フィールドに指定可能なデータ形式
● 選択フィールドに指定可能なデータ形式
― 被比較フィールドと比較フィールドに指定可能なデータ形式
― 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ
― 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ
● 再編成フィールドの自己規定値に指定可能なデータ形式
1.7.3.1 キーフィールドに指定可能なデータ形式
以下にキーフィールドで指定できるデータ形式とその長さについて示します。
表中のtypはbsortコマンド、bsortexコマンドおよびPowerSORT OCXで指定する場合に使用し、定義値
はBSORT関数で使用します。
バイナリファイルの場合
種類
文字
20
型
ASCIIコード
typ
定義値
長さ(バイト)
asc
BSKEY_ASC
1~レコード長(注1)
EBCDICコード(注2)
ebc
BSKEY_EBC
1~レコード長(注1)
シフトJISコード(注3)
sji
BSKEY_SJI
1~レコード長(注1)
JEFコード(注4)
jef
BSKEY_JEF
2~レコード長(注1)
(2の倍数)
Unicode UCS-2形式(注5)
(システム標準のバイトオーダ)
uc2
BSKEY_UCS2
2~レコード長(注1)
(2の倍数)
Big endian
―
BSKEY_UCS2B
2~レコード長(注1)
(2の倍数)
Little endian
―
BSKEY_UCS2L
2~レコード長(注1)
(2の倍数)
1.7 フィールドとデータ形式
種類
数値
数字
typ
定義値
長さ(バイト)
Unicode UTF-8形式(注5)
型
ut8
BSKEY_UTF8
1~レコード長(注1)
文字形式2桁年号(注6)
yyc
BSKEY_YYC
2または4(注7)
照合順序変更(注8)
col
BSKEY_COL
1~レコード長(注1)
符号なし2進数
bit
BSKEY_BIT
1~8(ビット)
固定小数点2進数
fbi
BSKEY_FBI
1~256
符号なし固定小数点2進数
ufb
BSKEY_UFB
1~256
8086形式固定小数点2進数
fbl
BSKEY_FBL86
1~256
8086形式符号なし固定小数点2進数
ufl
BSKEY_UFB86
1~256
システム依存形式固定小数点2進数
fbm
BSKEY_FBIM
1~256
システム依存形式符号なし固定小
数点2進数
ufm
BSKEY_UFBM
1~256
IEEE形式浮動小数点2進数
ifl
BSKEY_IFL
1~256
M形式浮動小数点2進数
mfl
BSKEY_MFL
1~256
内部10進数
pdl
BSKEY_PDL
1~256
符号なし内部10進数(符号部あり)
(注8)
pdf
BSKEY_PDF
1~256
符号なし内部10進数(符号部なし)
pdu
BSKEY_PDU
1~256
外部10進数
zdl
BSKEY_ZDL
1~256
符号なし外部10進数
zdu
BSKEY_ZDU
1~256
外部10進形式2桁年号(注6)
yyz
BSKEY_YYZ
2
内部10進形式2桁年号(注6)
yyp
BSKEY_YYP
2
10進形式2桁年号(注6)
yyd
BSKEY_YYD
1
符号なし数字
azu
BSKEY_AZU
1~256
前置別符号付数字
als
BSKEY_ALS
2~256
後置別符号付数字
ats
BSKEY_ATS
2~256
前置オーバパンチ符号付数字
alo
BSKEY_ALO
1~256
後置オーバパンチ符号付数字
ato
BSKEY_ATO
1~256
typ
定義値
長さ(バイト)
ASCIIコード(注3)
asc
BSKEY_ASC
1~レコード長(注1)
EBCDICコード(注3)
ebc
BSKEY_EBC
1~レコード長(注1)
シフトJISコード(注3)
sji
BSKEY_SJI
1~レコード長(注1)
Unicode UCS-2形式(注9)
(システム標準のバイトオーダ)
uc2
BSKEY_UCS2
2~レコード長(注1)
(2の倍数)
Big endian
―
BSKEY_UCS2B
2~レコード長(注1)
(2の倍数)
Little endian
―
BSKEY_UCS2L
2~レコード長(注1)
(2の倍数)
Unicode UTF-8形式(注10)
ut8
BSKEY_UTF8
1~レコード長(注1)
文字形式2桁年号(注6)
yyc
BSKEY_YYC
2または4(注7)
テキストファイルの場合
種類
文字
型
照合順序変更(注8)
col
BSKEY_COL
1~レコード長(注1)
注1) 入力ファイルのレコード再編成機能を指定した場合は、入力レコード再編成後のレコード長
まで指定できます。
注2) 入力ファイルのコード系がASCIIコード系またはEBCDICコード系の場合に指定できます。
注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。
注4) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。
注5) 入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。
注6) 環境変数BSORT_TOPYYで指定した値に従って年号処理を行います。
注7) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合、4バイトとなります。
21
第1章 PowerSORTの概要
注8) PowerSORT OCX使用時は指定できません。
注9) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。
注10) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。
1.7.3.2 集約フィールドに指定可能なデータ形式
以下に集約フィールドに指定可能なデータ形式とその長さについて示します。
表中のtypはbsortコマンド、bsortexコマンドおよびPowerSORT OCXで指定する場合に使用し、定義値
はBSORT関数で使用します。
バイナリファイルの場合
種類
数値
数字
(注2)
typ
定義値
長さ(バイト)
固定小数点2進数
型
fbi
BSKEY_FBI
1~8
符号なし固定小数点2進数
ufb
BSKEY_UFB
1~8
8086形式固定小数点2進数
fbl
BSKEY_FBI86
1~8
8086形式符号なし固定小数点2進数
ufl
BSKEY_UFB86
1~8
システム依存形式固定小数点2進数
fbm
BSKEY_FBIM
1~8
システム依存形式符号なし固定小
数点2進数
ufm
BSKEY_UFBM
1~8
内部10進数
pdl
BSKEY_PDL
1~16
符号なし内部10進数(符号部あり)
(注1)
pdf
BSKEY_PDF
1~16
符号なし内部10進数(符号部なし)
pdu
BSKEY_PDU
1~16
外部10進数
zdl
BSKEY_ZDL
1~18
符号なし外部10進数
zdu
BSKEY_ZDU
1~18
符号なし数字
azu
―
1~18
前置別符号付数字
als
―
2~18
後置別符号付数字
ats
―
2~18
前置オーバパンチ符号付数字
alo
―
1~18
後置オーバパンチ符号付数字
ato
―
1~18
長さ(バイト)
テキストファイルの場合
種類
文字
typ
定義値
ASCIIコード(注3)
型
asc
BSKEY_ASC
1~(注4)
Unicode UCS-2形式(注5)
(システム標準のバイトオーダ)
uc2
BSKEY_UCS2
2~(注4)
(2の倍数)
Big endian
―
BSKEY_UCS2B
2~256
(2の倍数)
Little endian
―
BSKEY_UCS2L
2~256
(2の倍数)
Unicode UTF-8形式(注6)
ut8
BSKEY_UTF8
1~(注4)
注1) PowerSORT OCX使用時は指定できません。
注2) bsortexコマンド使用時に指定できます。
注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。
注4) bsortコマンド、PowerSORT OCXおよびBSORT関数使用時は256バイトまで、bsortexコマンド
使用時はレコード長まで指定できます。ただし、入力ファイルのレコード再編成機能を指定した
場合は、入力レコード再編成後のレコード長まで指定できます。
注5) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。
注6) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。
22
1.7 フィールドとデータ形式
1.7.3.3 選択フィールドに指定可能なデータ形式
レコード選択機能で指定する選択フィールドは、被比較フィールド、比較フィールドまたは自己規定
値、比較演算子の情報からなっています。
ここでは、被比較フィールド、比較フィールドおよび自己規定値に指定可能なデータ形式およびデー
タ形式の組合せについて示します。
● 被比較フィールドと比較フィールドに指定可能なデータ形式
● 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ
● 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ
被比較フィールドと比較フィールドに指定可能なデータ形式
以下に被比較フィールドと比較フィールドに指定可能なデータ形式を示します。
表中のtypはbsortコマンド、bsortexコマンドおよびPowerSORT OCXで指定する場合に使用し、定義値
はBSORT関数で使用します。
バイナリファイルの場合
種類
文字
数値
数字
データ形式
typ
定義値
長さ(バイト)
ASCIIコード(注1)
asc
BSKEY_ASC
1~256
EBCDICコード(注2)
ebc
BSKEY_EBC
1~256
シフトJISコード(注3)
sji
BSKEY_SJI
1~256
Unicode UCS-2形式(注1)
(システム標準のバイトオーダ)
uc2
BSKEY_UCS2
2~256
(2の倍数)
Big endian
―
BSKEY_UCS2B
2~256
(2の倍数)
Little endian
―
BSKEY_UCS2L
2~256
(2の倍数)
Unicode UTF-8形式(注1)
ut8
BSKEY_UTF8
1~256
文字形式2桁年号(注4)
yyc
―
2または4(注5)
照合順序変更(注6)
col
BSKEY_COL
1~256
符号なし2進数
bit
BSKEY_BIT
1~8(ビット)
固定小数点2進数
fbi
BSKEY_FBI
1~256
符号なし固定小数点2進数
ufb
BSKEY_UFB
1~256
8086形式固定小数点2進数
fbl
BSKEY_FBI86
1~256
8086形式符号なし固定小数点2進数
ufl
BSKEY_UFB86
1~256
システム依存形式固定小数点2進数
fbm
BSKEY_FBIM
1~256
システム依存形式符号なし固定小
数点2進数
ufm
BSKEY_UFBM
1~256
内部10進数
pdl
BSKEY_PDL
1~256
符号なし内部10進数(符号部あり)
(注6)
pdf
BSKEY_PDF
1~256
符号なし内部10進数(符号部なし)
pdu
BSKEY_PDU
1~256
外部10進数
zdl
BSKEY_ZDL
1~256
符号なし外部10進数
zdu
BSKEY_ZDU
1~256
内部10進形式2桁年号(注4)
yyp
―
2
外部10進形式2桁年号(注4)
yyz
―
2
10進形式2桁年号(注4)
yyd
―
1
符号なし数字
azu
BSKEY_AZU
1~256
前置別符号付数字
als
BSKEY_ALS
2~256
後置別符号付数字
ats
BSKEY_ATS
2~256
前置オーバパンチ符号付数字
alo
BSKEY_ALO
1~256
後置オーバパンチ符号付数字
ato
BSKEY_ATO
1~256
23
第1章 PowerSORTの概要
テキストファイルの場合
種類
文字
typ
定義値
長さ(バイト)
ASCIIコード(注3)
データ形式
asc
BSKEY_ASC
1~256
シフトJISコード(注3)
sji
BSKEY_SJI
1~256
Unicode UCS-2形式(注7)
(システム標準のバイトオーダ)
uc2
BSKEY_UCS2
2~256
(2の倍数)
Big endian
―
BSKEY_UCS2B
2~256
(2の倍数)
Little endian
―
BSKEY_UCS2L
2~256
(2の倍数)
Unicode UTF-8形式(注8)
ut8
BSKEY_UTF8
1~256
文字形式2桁年号(注4)
yyc
―
2または4(注5)
照合順序変更(注6)
col
BSKEY_COL
1~256
注1) 入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。
注2) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。
注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。
注4) bsortexコマンド使用時に指定できます。環境変数BSORT_TOPYYで指定した値に従って年号処
理を行います。
注5) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合、4バイトになります。
注6) PowerSORT OCX使用時は指定できません。
注7) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。
注8) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。
被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ
以下に被比較フィールドと比較フィールドに指定可能なデータ形式の組合せについて示します。
バイナリファイルの場合
種類
文字
数値
被比較フィールドのデータ形式
比較フィールドのデータ形式
ASCIIコード
ASCIIコード
EBCDICコード
EBCDICコード
シフトJISコード
シフトJISコード
Unicode UCS-2形式
(システム標準のバイトオーダ)
Unicode UCS-2形式
(システム標準のバイトオーダ)
Unicode UCS-2形式
(Big endian)
Unicode UCS-2形式
(Big endian)
Unicode UCS-2形式
(Little endian)
Unicode UCS-2形式
(Little endian)
Unicode UTF-8形式
Unicode UTF-8形式
文字形式2桁年号
文字形式2桁年号
内部10進形式2桁年号
外部10進形式2桁年号
10進形式2桁年号
照合順序変更
照合順序変更
符号なし2進数
符号なし2進数
固定小数点2進数
固定小数点2進数
8086形式固定小数点2進数
システム依存形式固定小数点2進数
24
1.7 フィールドとデータ形式
種類
被比較フィールドのデータ形式
比較フィールドのデータ形式
符号なし固定小数点2進数
符号なし固定小数点2進数
8086形式符号なし固定小数点2進数
システム依存形式符号なし固定小数点2
進数
8086形式固定小数点2進数
固定小数点2進数
8086形式固定小数点2進数
システム依存形式固定小数点2進数
8086形式符号なし固定小数点2進数
符号なし固定小数点2進数、
8086形式符号なし固定小数点2進数、
システム依存形式符号なし固定小数点2
進数
システム依存形式固定小数点2進数
固定小数点2進数
8086形式固定小数点2進数
システム依存形式固定小数点2進数
システム依存形式符号なし固定小数点2進
数
符号なし固定小数点2進数
8086形式符号なし固定小数点2進数
システム依存形式符号なし固定小数点2
進数
内部10進数
内部10進数
符号なし内部10進数(符号部あり)
符号なし内部10進数(符号部なし)
外部10進数
符号なし外部10進数
符号なし内部10進数(符号部あり)
内部10進数
符号なし内部10進数(符号部あり)
符号なし内部10進数(符号部なし)
外部10進数
符号なし外部10進数
符号なし内部10進数(符号部なし)
内部10進数
符号なし内部10進数(符号部あり)
符号なし内部10進数(符号部なし)
外部10進数
符号なし外部10進数
外部10進数
内部10進数
符号なし内部10進数(符号部あり)
符号なし内部10進数(符号部なし)
外部10進数
符号なし外部10進数
符号なし外部10進数
内部10進数
符号なし内部10進数(符号部あり)
符号なし内部10進数(符号部なし)
外部10進数
符号なし外部10進数
内部10進形式2桁年号
文字形式2桁年号
内部10進形式2桁年号
外部10進形式2桁年号
10進形式2桁年号
25
第1章 PowerSORTの概要
種類
数字
被比較フィールドのデータ形式
比較フィールドのデータ形式
外部10進形式2桁年号
文字形式2桁年号
内部10進形式2桁年号
外部10進形式2桁年号
10進形式2桁年号
10進形式2桁年号
文字形式2桁年号
内部10進形式2桁年号
外部10進形式2桁年号
10進形式2桁年号
符号なし数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
前置別符号付数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
後置別符号付数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
前置オーバパンチ符号付数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
後置オーバパンチ符号付数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
テキストファイルの場合
種類
文字
26
被比較フィールドのデータ形式
比較フィールドのデータ形式
ASCIIコード
ASCIIコード
シフトJISコード
シフトJISコード
Unicode UCS-2形式
(システム標準のバイトオーダ)
Unicode UCS-2形式
(システム標準のバイトオーダ)
Unicode UCS-2形式
(Big endian)
Unicode UCS-2形式
(Big endian)
Unicode UCS-2形式
(Little endian)
Unicode UCS-2形式
(Little endian)
Unicode UTF-8形式
Unicode UTF-8形式
文字形式2桁年号
文字形式2桁年号
照合順序変更
照合順序変更
1.7 フィールドとデータ形式
被比較フィールドと自己規定値に指定可能なデータ形式の組合せ
以下に被比較フィールドと自己規定値に指定可能なデータ形式の組合せについて示します。
バイナリファイルの場合
被比較フィールドのデータ形式
種類
文字
数値
数字
自己規定値
型
ASCIIコード
文字列、16進数
EBCDICコード
文字列、16進数
シフトJISコード
文字列
Unicode UCS-2形式
文字列、16進数
Unicode UTF-8形式
文字列、16進数
文字形式2桁年号
文字列、16進数、10進数
照合順序変更
文字列、16進数
符号なし2進数
10進数
固定小数点2進数
10進数
符号なし固定小数点2進数
10進数
8086形式固定小数点2進数
10進数
8086形式符号なし固定小数点2進数
10進数
システム依存形式固定小数点2進数
10進数
システム依存形式符号なし固定小数点2進数
10進数
内部10進数
10進数
符号なし内部10進数(符号部あり)
10進数
符号なし内部10進数(符号部なし)
10進数
外部10進数
10進数
符号なし外部10進数
10進数
内部10進形式2桁年号
10進数
外部10進形式2桁年号
10進数
10進形式2桁年号
10進数
符号なし数字
10進数
前置別符号付数字
10進数
後置別符号付数字
10進数
前置オーバパンチ符号付数字
10進数
後置オーバパンチ符号付数字
10進数
テキストファイルの場合
被比較フィールドのデータ形式
種類
文字
自己規定値
型
ASCIIコード
文字列、16進数
シフトJISコード
文字列
Unicode UCS-2形式
文字列、16進数
Unicode UTF-8形式
文字列、16進数
文字形式2桁年号
文字列、16進数、10進数
照合順序変更
文字列、16進数
1.7.3.4 再編成フィールドの自己規定値に指定可能なデータ形式
以下に再編成フィールドの自己規定値に指定可能なデータ形式とその長さを示します。
表中のtypはbsortコマンド、bsortexコマンドおよびPowerSORT OCXで指定する場合に使用します。
27
第1章 PowerSORTの概要
バイナリファイルの場合
自己規定値
文字列
16進数
10進数
typ
長さ(バイト)
ASCIIコード(注1)
型
asc
1~256
EBCDICコード(注2)
ebc
1~256
シフトJISコード(注3)
sji
1~256
Unicode UCS-2形式(注1)
uc2
2~256
(2の倍数)
Unicode UTF-8形式(注1)
ut8
1~256
ASCIIコード(注1)
asc
1~256
EBCDICコード(注2)
ebc
1~256
Unicode UCS-2形式(注1)
uc2
2~256
(2の倍数)
Unicode UTF-8形式(注1)
ut8
1~256
固定小数点2進数
fbi
1~8
符号なし固定小数点2進数
ufb
1~8
8086形式固定小数点2進数
fbl
1~8
8086形式符号なし固定小数点2進数
ufl
1~8
システム依存形式固定小数点2進数
fbm
1~8
システム依存形式符号なし固定小数点2進数
ufm
1~8
内部10進数
pdl
1~16
符号なし内部10進数(符号部あり)(注4)
pdf
1~16
符号なし内部10進数(符号部なし)
pdu
1~16
外部10進数
zdl
1~18
符号なし外部10進数
zdu
1~18
符号なし数字
azu
1~18
前置別符号付数字
als
2~18
後置別符号付数字
ats
2~18
前置オーバパンチ符号付数字
alo
1~18
後置オーバパンチ符号付数字
ato
1~18
typ
長さ(バイト)
ASCIIコード(注3)
asc
1~256
シフトJISコード(注3)
sji
1~256
Unicode UCS-2形式(注5)
uc2
2~256
(2の倍数)
Unicode UTF-8形式(注6)
ut8
1~256
ASCIIコード(注3)
asc
1~256
Unicode UCS-2形式(注5)
uc2
2~256
(2の倍数)
テキストファイルの場合
自己規定値
文字列
16進数
注1)
注2)
注3)
注4)
注5)
注6)
28
型
Unicode UTF-8形式(注6)
ut8
入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。
入力ファイルのコード系がEBCDICコード系の場合に指定できます。
入力ファイルのコード系がASCIIコード系の場合に指定できます。
PowerSORT OCX使用時は指定できません。
入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。
入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。
1~256
1.8 環境設定
1.8 環境設定
ここでは、PowerSORTが使用する作業域(メモリ)および一時ファイル量の見積もりについて説明しま
す。
PowerSORTが使用する作業域(メモリ)の見積もり
PowerSORTは、指定された範囲内の作業域を使用して処理を行ないます。指定が省略された場合は、
次のように作業域の大きさを決定します。
● 入力がファイルの場合は、PowerSORTが適切な作業域を計算して使用します。
● 入力がファイル以外の場合(標準入力を含む)は、8MBの作業域を使用します。
割り当てた作業域内にすべての入力レコードが読み込めた場合、一時ファイルを使用せずに作業域内
だけでソート処理を完了します(これをインコアソートといいます)。インコアソートは、一時ファイ
ルへの入出力がないことなどから一般に処理時間が短くなります。このため、入力レコードの量に合
わせて適切な作業域の大きさを指定することで、処理時間の短縮が可能です。ただし、作業域の大き
さの指定には次のような注意が必要です。
● インコアソートを行うためには、入力レコードの全体量に対して少し多めの作業域(1.3
倍程度。ただし、キーの種類、使用する機能などにより大きくなる場合があります)を指
定します。
● 使用可能な物理メモリ量を超えて作業域を指定すると、性能が悪化することがあるため、
使用可能な物理メモリ量を超えないように指定します。
[参照]
● 環境変数BSORT_MEMSIZE
● メモリサイズオプション(-y)
● 実行環境オプション(-option)のmemsizeオペランド
● bsrtopen関数におけるBSRTPRIM構造体のmemory_size
PowerSORTが使用する一時ファイル量の見積もり
PowerSORTは、ソート処理を行う際に一時ファイルを作成します。作成する一時ファイル量の概算式
を以下に示します。なお、PowerSORTの作業域が入力データ量に対して充分与えられなかった場合、
オプション機能を使用している場合または漢字ソートマージ機能を使用している場合には、以下の概
算式を超えることがあるため、一時ファイルを作成するフォルダには、充分な空きスペースのあるド
ライブおよびフォルダを指定してください。
一時ファイル量=(管理領域+キー長+レコード長)×レコード件数
●
●
●
●
管理領域:PowerSORTの管理領域。固定値12。
レコード長:指定したレコード長を4の倍数に調整した値。
レコード件数:入力レコード件数。
キー長:指定した各キーフィールドの長さを4の倍数に調整した値の総計。
[参照]
● 環境変数BSORT_TMPDIR
● 実行環境オプション(-option)のtmpdirオペランド
● bsrtopen関数におけるBSRTFILE構造体のtmpfile_tbl
29
第2章 PowerSORTの使い方
ここでは、PowerSORTの実行方法について説明します。
PowerSORTの実行方法には、以下の方法があります。
● コマンド(bsortコマンド、bsortexコマンド)を使用する方法
● OCXを使用してPowerSORTを使用する方法
● COBOLプログラムから使用する方法
● C言語プログラムから使用する方法
コマンド(bsortコマンド、bsortexコマンド)を使用する方法
サーバで行うバッチ処理などにコマンドを組み込んで、PowerSORTを使用することができます。
コマンドには、bsortコマンドとbsortコマンドを拡張したbsortexコマンドがあります。
bsortコマンドとbsortexコマンドの機能差について
bsortexコマンドは、bsortコマンドの機能を拡張したコマンドです。bsortexコマンドだけで可能な
機能は以下のとおりです。ただし、処理定義ファイルオプション(-P)は、bsortコマンドだけで使用
できる機能です。この機能を使用する場合は、bsortコマンドを使用してください。
● ファイルの分割出力機能(-outputオプションのmaxfilesizeオペランド、maxrecnumオペ
ランド)
出力するデータを複数のファイルへ分割して出力できます。ひとつのファイルに出力する
大きさは、ファイルサイズやレコード件数で指定できます。
● 出力ファイルに対する選択機能(-outputオプションのincludeオペランド、omitオペラン
ド、caseオペランド)
出力ファイルごとに出力するレコードの条件を指定して、条件別にファイルを分けて出力
できます。
● 出力ファイルに対する再編成機能(-outputオプションのreconstオペランド)
入力時点のレコード再編成に加えて、出力ファイルへレコードを書き込む直前にもレコー
ド再編成ができます。
● レコード集約機能およびサプレス機能における特定レコード出力機能(-summaryオプシ
ョン)
レコード集約機能およびサプレス機能では、キー値の等しい複数レコードの先頭レコード
または最終レコードに結果を残すことができます。
● EOF制御文字をファイルの最後と認識する機能(-inputオプションのeofオペランド)
入力ファイルがテキストファイルの場合、EOF制御文字をファイルの最後と認識するか否
かを指定することができます。
OCXを使用してPowerSORTを使用する方法
PowerSORTのOCXをフォームに配置して、必要なプロパティを設定することにより、PowerSORTを使用
することができます。
なお、PowerSORTのOCXを使ってソートマージ処理を行うには、PowerSORTがインストールされている
必要があります。PowerSORTのOCXは、デザイン時にはフォーム上に表示され、実行時には非表示とな
ります。
詳細はOCXを使用してPowerSORTを使用するを参照してください。
COBOLプログラムから使用する方法
富士通のNetCOBOL、PowerCOBOL97、COBOL97およびCOBOL85などで作成したCOBOLプログラムから
PowerSORTを使用することができます。
詳細はCOBOLプログラムからPowerSORTを使用するを参照してください。
C言語プログラムから使用する方法
C言語プログラムにBSORT関数を組み込んでPowerSORTを使用することができます。BSORT関数には、5
つの関数があり、それらの関数を組み合わせて、PowerSORTの各機能を実行します。
詳細はC言語プログラムからPowerSORTを使用するを参照してください。
31
第3章 PowerSORTのbsortコマンドを使用する
ここでは、bsortコマンドについて説明します。
bsortコマンドをバッチ処理などに組み込むことで、大量データの高速ソートマージ処理を実現でき
ます。
3.1 bsortコマンドの形式
3.1 bsortコマンドの形式
bsortコマンドは、テキストファイルおよびバイナリファイルのデータに対して、ソート処理、マー
ジ処理またはコピー処理を行います。指定された処理が正常に終了した場合は、0の終了コードを返
します。エラーが発生した場合は、0以外の終了コードを返します。
bsortコマンドには、使用する機能により4つの記述形式があります。それぞれ、指定できるオプショ
ンに違いがありますので、使用する機能に合わせて適切なオプションを指定してください。
bsortコマンド記述上の注意事項
●
●
●
●
●
角括弧( [ ] )で囲まれた字句は省略可能です。
中括弧( { } )は棒線( | )で区切られた字句の選択を示します。
斜体は、必要に応じて利用者が値を設定します。
...は繰り返し指定できることを示します。
オプション引数をもたないオプション( -s、-m、-c、-h、-f、-u、-w、-v、-r)は、連続
して指定できます。
例) -sf
● コンマ( , )で区切って指定するオプション引数は、オプション引数全体をダブルクォー
テーション( " )で囲み、コンマ( , )の代わりに空白で区切っても指定できます。
例) -p "sel-def sel-def..."
3.1.1 ソート機能を使用する場合
以下にソート機能を使用する場合のコマンド形式を示します。
bsort
[
[
{
[
[
[
[
[
[
{
[
{
[
[
[
[
-s ] [ -h ] [ -v ] -z recsize [ -Z recform ]
-l msglevel ] [ -y memsize ] [ -G msgfile ]
[ -key-def [ ,key-def...] ] | [ -r ] }
-M kanji-def [ ,kanji-def...] ]
-T { flt | fix }[ ,{ n | w | N } bdij ] ]
-t chars ] [ -L line-delimiter ]
-R skiprec-no [ ,skiprec-no...] ]
-p sel-def [ ,sel-def...] ]
-e recon-def [ ,recon-def...] ]
[ -f ] | [ -u ] | [ -g sum-def [ ,sum-def...] ] }
-a argfile ]
-w | -o outfile [ -o outfile...] }
-F ofs,ifs [ /ownername ] [ ,ifs [ /ownername ]...] ]
-I flg ] [ -X index-def [ ,index-def...] ]
infile [ infile...] ] [ -q cdmode ] [ -Q altmode ]
-x col-def [ ,col-def...] ]
3.1.2 マージ機能を使用する場合
以下にマージ機能を使用する場合のコマンド形式を示します。
33
第3章 PowerSORTのbsortコマンドを使用する
bsort
-m [ -h ] -z recsize [ -Z recform ]
[ -l msglevel ] [ -y memsize ] [ -G msgfile ]
{ [ -key-def [ ,key-def...] ] | [ -r ] }
[ -M kanji-def [ ,kanji-def...] ]
[ -T { flt | fix }[ ,{ n | w | N } bdij ] ]
[ -t chars ] [ -L line-delimiter ]
[ -R skiprec-no [ ,skiprec-no...] ]
[ -p sel-def [ ,sel-def...] ]
[ -e recon-def [ ,recon-def...] ]
{ [ -u ] | [ -g sum-def [ ,sum-def...] ] }
[ -a argfile ]
{ -w | -o outfile [ -o outfile...] }
[ -F ofs,ifs [ /ownername ] [ ,ifs [ /ownername ]...] ]
[ -I flg ] [ -X index-def [ ,index-def...] ]
infile [ infile...] [ -q cdmode ] [ -Q altmode ]
[ -x col-def [ ,col-def...] ]
3.1.3 コピー機能を使用する場合
以下にコピー機能を使用する場合のコマンド形式を示します。
bsort
-c [ -h ] -z recsize [ -Z recform ]
[ -l msglevel ] [ -y memsize ] [ -G msgfile ]
[ -T { flt | fix } ] [ -t chars ] [ -L line-delimiter ]
[ -R skiprec-no [ ,skiprec-no...] ]
[ -p sel-def [ ,sel-def...] ]
[ -e recon-def [ ,recon-def...] ]
[ -a argfile ]
{ -w | -o outfile [ -o outfile...] }
[ -F ofs,ifs [ /ownername ] [ ,ifs [ /ownername ]...] ]
[ -I flg ] [ -X index-def [ ,index-def...] ]
[ infile [ infile...] ]
[ -x col-def [ ,col-def...] ]
3.1.4 処理定義ファイルを使用する場合
以下に処理定義ファイルを使用する場合のコマンド形式を示します。
bsort
34
-P ProcDef-file
3.2 bsortコマンドオプション
3.2 bsortコマンドオプション
ここでは、bsortコマンドの各オプションについて説明します。
3.2.1 アーギュメントファイルオプション(-a)
アーギュメントファイルを指定します。
アーギュメントファイルは、bsortコマンドの各種オプション引数を記述したテキストファイルです。
アーギュメントファイルは、固定のオプション引数を別途指定しておきたい場合や、コマンドのオプ
ション引数が長くなる場合などで使用します。
記述形式
-a argfile
argfile
アーギュメントファイルを指定します。
他のオプション引数とアーギュメントファイルオプションを同時に指定した場合、アーギュメントフ
ァイルオプションを指定した位置に、アーギュメントファイルで記述したオプション引数が展開され
ます。アーギュメントファイルオプションは複数指定できます。
アーギュメントファイルには、オプション引数を複数の行に記述できます。ただし、各オプション引
数の途中で改行することはできません。
アーギュメントファイルにアーギュメントファイルオプションは指定できません。アーギュメントフ
ァイルには、bsortコマンドのオプション引数だけを記述します。
アーギュメントファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテー
ション( " )で囲みます。
記述例
以下にアーギュメントファイルの記述例を示します。
-s -z200 -32.12pdla,25.4fbia↓
-p 25.4fbi.ge.d35↓
-o bsortout↓
sortin↓(注)
注)↓印は復帰改行コード<CR><LF>を示しています。
argfile の展開例
アーギュメントファイル(argfile)には、以下の内容が記述されているものとします。
-s –z100
例1)
bsort infile1 -a argfile –ooutfile1
と指定した場合、以下の指定と同じです。
bsort infile1 -s -z100 -ooutfile1
例2)
bsort infile2 -z70 -a argfile -ooutfile2
と指定した場合、以下の指定と同じです。
bsort infile2 -z70 -s -z100 –ooutfile2
この場合、重複指定不可の-zオプションが2つ指定されているため、エラーになります。
35
第3章 PowerSORTのbsortコマンドを使用する
3.2.2 再編成フィールドオプション(-e)
レコード再編成機能を使用する場合に再編成フィールドを指定します。
再編成フィールドに指定したフィールドは、出力レコードの先頭から順に詰めて出力します。レコー
ド再編成機能を使用する場合、キーフィールドと集約フィールドにはレコード再編成後のフィールド
位置を指定します。
記述形式
-e recon-def [ ,recon-def ...]
recon-def の記述形式
recon-def の記述形式には、以下の3つの形式があります。
recon-def の記述形式1
pos.len
記述形式1では、入力レコードのフィールドを指定します。
指定したフィールドが入力のレコードに存在しない場合は、エラーになります。
recon-def の記述形式2
self.len typ
記述形式2では、自己規定値を指定します。
recon-def の記述形式3
pos.END
記述形式3では、入力レコードの指定位置から終端までを再編成フィールドに指定します。
指定したフィールドが入力のレコードに存在しない場合は、エラーになります。
pos
再編成フィールドの位置をバイト数で指定します。
バイナリファイルと、テキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバ
イト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番
号を指定します。
len
再編成フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
ときは、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
記述形式1の指定では、長さの制限はありません。記述形式2で指定可能なデータ形式ごとの長さにつ
いては、再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。
self
自己規定値を指定します。
self の記述形式を以下に示します。自己規定値の注意事項については、recon-def 記述上の注意事
項を参照してください。
self の記述形式1
'文字列 '
self の記述形式2
x16進数
36
3.2 bsortコマンドオプション
self の記述形式3
d10進数
typ
自己規定値のデータ形式を指定します。
指定可能なデータ形式については、再編成フィールドの自己規定値に指定可能なデータ形式を参照し
てください。
END
'END'の固定文字列を指定します。
recon-def 記述上の注意事項
● オプション引数で自己規定値の文字列を指定する場合は、オプション引数全体をダブルク
ォーテーション( " )で囲みます。
● オプション引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する
場合は、ダブルクォーテーション( " )の前に円記号( \ )を指定します。
● オプション引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、
クォーテーション( ' )を2つ続けて指定します。
● 自己規定値の10進数を指定する場合は、符号を指定できます。
● ASCIIコードおよびシフトJISコードは、バイナリファイルの場合、入力コード系オプショ
ン(-q)がEBCDICコード系以外の場合に指定できます。テキストファイルの場合、入力コー
ド系オプション(-q)がASCIIコード系の場合に指定できます。
● EBCDICコードは、入力コード系オプション(-q)がEBCDICコード系の場合に指定できます。
● Unicode UCS-2形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDIC
コード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション
(-q)がUnicode系(UCS-2形式)の場合に指定できます。
● Unicode UTF-8形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDIC
コード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション
(-q)がUnicode系(UTF-8形式)の場合に指定できます。
● テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むこ
とはできません。
● テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列また
はレコード分離文字を含むことはできません。
● 自己規定値で指定した値とlen で指定した長さが異なるときは、以下に示すように処理し
ます。
― 自己規定値が文字列の場合
— 自己規定値で指定した文字列の長さがlen で指定した長さより短い場合は、
自己規定値を左詰めにして右余白に空白を詰めます。
— 自己規定値で指定した文字列の長さがlen で指定した長さより長い場合は、
エラーとなります。
― 自己規定値が数字または数値の場合
— 自己規定値で指定した値を typ と len で指定したデータ形式と長さに変換
して埋め込みます。
— 変換結果がlen を超える場合は、エラーとなります。
● 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号
なし固定小数点2進数、システム依存形式固定小数点2進数、システム依存形式符号なしの
自己規定値を10進数で指定する場合、その値は以下の範囲になります。
37
第3章 PowerSORTのbsortコマンドを使用する
長さ
符号ありのデータ形式
符号なしのデータ形式
1バイト
-128~127
0~255
2バイト
-32768~32767
0~65535
3バイト
-8388608~8388607
0~16777215
-2147483648~2147483647
0~4294967295
4バイト以上
記述例
例1) 入力レコードの5バイトめから10バイトのフィールドを再編成する場合は、次のように指定し
ます。
-e 4.10
例2) 自己規定値の文字列(abc)を指定する場合は、以下のように指定します。
-e "'abc'.3asc"
例3) 入力レコードの5バイトめからレコードの最後までを再編成する場合は、以下のように指定し
ます。
-e 4.END
3.2.3 入出力ファイルシステムオプション(-F)
入力ファイルと出力ファイルのファイルシステムを指定します。
記述形式
-F ofs,ifs [/ownername] [ ,ifs [/ownername] ...]
ofs
出力ファイルのファイルシステムを指定します。
ファイルシステムは識別子で指定します。詳細は指定可能なファイルシステムを参照してください。
ifs
入力ファイルのファイルシステムを指定します。
ファイルシステムは識別子で指定します。詳細は指定可能なファイルシステムを参照してください。
入力ファイルのファイルシステムは、入力ファイルごとに指定できます。
複数のファイルシステムを指定する場合は、コンマ( , )で区切って入力ファイルの指定順に指定し
ます。入力ファイルの数がファイルシステムで指定した数より多い場合、ファイルシステムに指定し
た最後のファイルシステムが残りの入力ファイルに適用されます。入力ファイルの数がファイルシス
テムで指定した数より少ない場合、余分に指定したファイルシステムは無視されます。
ownername
Btrieveファイルで必要な場合には、ownernameに最大8文字までのオーナーネームを指定します。オ
ーナーネームでは、大文字と小文字が区別されます。
指定可能なファイルシステム
指定可能なファイルシステムを以下に示します。
38
3.2 bsortコマンドオプション
識別子
ファイルシステムの説明
dos
システムの標準ファイルシステム(省略値)
cobseq
富士通COBOLファイルシステム(順ファイル)
cobs64
富士通COBOLファイルシステム(BSAM対応順ファイル)
cobrel
富士通COBOLファイルシステム(相対ファイル)
cobidx
富士通COBOLファイルシステム(索引ファイル)
mfcseq
Micro Focus COBOLファイルシステム(順ファイル)
mfcrel
Micro Focus COBOLファイルシステム(相対ファイル)
mfcidx
Micro Focus COBOLファイルシステム(索引ファイル)
btrv
Btrieveファイルシステム
rdm
RDMファイルシステム
指定可能なファイルシステムに関する注意事項
● PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、ア
クセスすることができません。また、富士通COBOLファイルシステム(索引ファイル)を指
定した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもアクセ
スすることができません。共用モード、排他モードについては、お使いの富士通COBOLフ
ァイルシステムのマニュアルを参照してください。
● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定しても、使用する富士通COBOL
ファイルシステムが対応していない場合は富士通COBOLファイルシステム(順ファイル)と
して動作します。BSAM対応については、お使いの富士通COBOLファイルシステムのマニュ
アルを参照してください。
● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定した場合は、富士通COBOLファ
イルシステムの仕様によりレコード排他処理が行われません。
● Micro Focus COBOLファイルシステム(索引ファイル)およびBtrieveファイルシステムは、
入力ファイルのファイルシステムとしてのみ指定可能です。
● データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイル
に指定することはできません。
3.2.4 先入力先出力(FIFO)機能オプション(-f)
先入力先出力(FIFO)機能を指定します。
指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。この機能はソ
ート機能のときに有効です。この機能を指定していない場合、キーフィールドの値が同一なレコード
の出力順序は不定です。先入力先出力(FIFO)機能は、サプレス機能(-u)とレコード集約機能(-g)とは
排他関係にあります。
記述形式
-f
3.2.5 メッセージファイルオプション(-G)
メッセージを出力するファイルパス名を指定します。
記述形式
-G msgfile
39
第3章 PowerSORTのbsortコマンドを使用する
msgfile
メッセージを出力するファイルパス名を指定します。
メッセージファイルオプションを省略した場合は、環境変数BSORT_MSGFILEを指定していればそのフ
ァイルに出力します。メッセージファイル以外へのメッセージの出力は環境変数BSORT_MSGOUTの指定
に従います。メッセージファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルク
ォーテーション( " )で囲みます。
メッセージファイルオプション(-G)は、環境変数BSORT_MSGFILEの指定より優先されます。
3.2.6 集約フィールドオプション(-g)
レコード集約機能を使用する場合に集約フィールドを指定します。
指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1つのレコードにします。
集約対象となったレコードのうち、どのレコードが出力されるかは不定です。テキストファイルの場
合は、ASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式で記述された数字(半角)だけを処
理の対象とします。
この機能はソート機能とマージ機能の場合に有効です。レコード集約機能は、先入力先出力(FIFO)
機能(-f)とサプレス機能(-u)とは排他関係にあります。
記述形式
-g sum-def [ ,sum-def ...]
sum-defの記述形式
pos.len typ [opt ]
pos
集約フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号
を指定します。
len
集約フィールドの長さをバイト数で指定します。
詳細は集約フィールドに指定可能なデータ形式を参照してください。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
ときは、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、指定したフィールド長に拡張して処理します。
typ
集約フィールドのデータ形式を指定します。
詳細は集約フィールドに指定可能なデータ形式を参照してください。
opt
テキストファイルの場合に集約フィールドの出力形式を指定します。バイナリファイルの場合に指定
するとエラーとなります。
指定可能な出力形式を以下に示します。
40
3.2 bsortコマンドオプション
opt
i
意味
集約フィールドの値に符号をつけます。uとは排他関係にあります。
u
集約フィールドの値が負の値の場合だけ符号(-)をつけます。iとは排他関
係にあります。
z
集約フィールドの値がフィールド長に満たない場合、左余白に'0'を詰め
ます。例えば、集約フィールドの値が1234という4桁の数字であり、集約
フィールド長が6バイトの場合、001234という数字にします。b、dとは排
他関係にあります。
b
集約フィールドの値がフィールド長に満たない場合、左余白に空白を詰め
ます。例えば、集約フィールドの値が1234という4桁の数字であり、集約
フィールド長が6バイトの場合、__1234(_は空白を表わす)という数字にし
ます。z、dとは排他関係にあります。
d
集約フィールドの先頭から空白、タブおよび'0'を削除します。集約フィ
ールドの先頭に空白、タブおよび'0'がある場合、左から評価し、'0'以外
の数字が出現するまでの空白、タブおよび'0'を削除します。例えば、
'00123'の場合、'123'という数字にします。ただし、集約フィールドが0(0、
0000、+000など)の場合、最後の'0'は削除されません。テキストファイル
浮動フィールド指定の場合に指定可能です。z、bとは排他関係にあります。
記述例
入力レコードの7バイトめから8バイトの内部10進数のフィールドを集約フィールドに指定する場合
は、次のように指定します。
-g 6.8pdl
集約フィールド指定時の注意事項
● 集約処理対象となったレコードのうち、どのレコードが集約結果と共に出力されるレコー
ドとなるかは不定です。
● 集約フィールドは、キーフィールドおよび他の集約フィールドと重ならないように指定し
ます。また集約フィールドは、レコード内に完全に含まれている必要があります。
● レコード集約機能を使用する場合、キーフィールドの指定は省略できません。
● 集約フィールドの加算処理中にオーバフローが生じた場合の動作は、環境変数
BSORT_SUMOVERCONTの指定によります。
● 小数点を含む数字の集約はできません。
テキストファイルについての注意事項
● テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式
で記述された数字(半角)だけを処理の対象とします。
● テキストファイル浮動フィールド指定の場合、集約結果は指定されたフィールド長で処理
されます。指定したフィールド長よりフィールドが長い場合、数字の左から指定フィール
ド長分が有効となります。逆に指定したフィールド長よりフィールドが短い場合、指定し
たフィールド長に拡張して処理します。
● テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現
れたことにより集約フィールドの位置が変わる場合は、正しく動作しません。
● optのdは、テキストファイル浮動フィールド指定の場合に指定可能です。テキストファイ
ル固定フィールド指定の場合はエラーになります。
● optのiを指定し、集約した値が0になった場合は符号(+)を付けます。
● optのbを指定し、符号がつく場合、符号は数字部の直前に付加されます。
● optのiおよびuを省略した場合は、以下のように処理します。
41
第3章 PowerSORTのbsortコマンドを使用する
― 集約結果が負の値の場合は、集約結果に符号(-)をつけます。
― 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を
つけません。
― 符号なしデータ同士を集約した場合は、集約結果に符号をつけません。
― 符号なしデータと符号付きデータを集約して、結果が0の場合は、符号をつけませ
ん。
― 符号付きデータ同士を集約した場合は集約結果に符号をつけます。集約した結果が
0の場合は、符号(+)を付けます。
● 集約フィールドの値に符号をつける場合、集約フィールドの値が集約フィールド長を満た
しており、符号が付けられないときはオーバフローとなります。
● optのzおよびbを省略した場合は、以下のように処理します。
― 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果
が満たない場合は、集約フィールドの左余白に'0'を詰めます。
— 左余白に'0'が詰められているデータ同士のとき
— 左余白に'0'が詰められているデータと左余白に空白が詰められているデー
タのとき
— 左余白に'0'が詰められているデータと左余白にタブが詰められているデー
タのとき
― 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果
が満たない場合は、集約フィールドの左余白に空白を詰めます。
— 左余白に空白が詰められているデータ同士のとき
— 左余白にタブが詰められているデータ同士のとき
— 左余白に空白が詰められているデータと左余白にタブが詰められているデ
ータのとき
● 集約対象でないレコード(キーフィールドの値が同一である他のレコードが存在しないレ
コード)の集約フィールドは、以下のように処理します。
― optの指定がある場合は、optで指定された形式で出力します。
― optの指定がない場合は、入力されたままの形式で出力されます。
3.2.7 ヘルプオプション(-h)
bsortコマンドのコマンド形式の一覧を表示します。
他のオプションと共に指定された場合は、指定されたオプションのチェックを行い、エラーがあった
場合はエラーメッセージを出力します。
このオプションが指定されている場合は、PowerSORTの処理は行われません。
記述形式
-h
3.2.8 インデックス作成方法オプション(-I)
富士通COBOLファイルシステムの索引ファイルにおける、インデックスの作成方法を指定します。
記述形式
-I flg
flg
次のものから選択して指定します。複数指定する場合は、続けて指定します。
42
3.2 bsortコマンドオプション
flg
意味
c
インデックスに圧縮キー指定を示します。
r
レコードのデータ圧縮指定を示します。
3.2.9 入力ファイルオプション(infile)
入力ファイルパス名を指定します。
記述形式
infile [ infile ...]
infile
入力ファイルのファイルパス名を指定します。
入力ファイルは複数指定できます。入力ファイルを複数指定する場合は、入力ファイルオプションを
複数指定します。入力ファイルパス名に半角空白が含まれる場合は、入力ファイルパス名をダブルク
ォーテーション( " )で囲みます。入力ファイルオプションが省略された場合は、標準入力からレコ
ードを読み込みます。ただし、マージ機能では標準入力からレコードを読み込むことはできません。
記述例
半角空白を含む入力ファイルパス名は、次のように記述します。
"c:\in files\sortin01"
3.2.10 キーフィールドオプション(-key-def)
キーフィールドを指定します。
1つのキーフィールドは、位置、長さ、データ形式および操作で構成されます。
複数のキーフィールドを指定した場合、指定した順に比較が行われます。複数のキーフィールドを指
定する場合は、キーフィールドをコンマ( , )で区切って指定します(-key-def,key-def)。また、1
つ前のキーフィールドの指定に続けて指定(-key-def key-def)したり、キーフィールドオプションを
複数指定することもできます(-key-def -key-def)。
キーフィールドの指定を省略すると、レコード全体をキーフィールドとみなしてコードの昇順に並べ
ます。キーフィールドを省略して降順に並べる場合は、降順オプション(-r)を使用します。
記述形式
-key-def [ ,key-def ...]
key-def の記述形式
pos.len typ opt
pos
キーフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号
を指定します。
len
キーフィールドの長さをピリオド( . )に続けて指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも実際のフィールドが長い
ときは、ここで指定した長さで処理します。指定したフィールド長よりも実際のフィールドが短い場
43
第3章 PowerSORTのbsortコマンドを使用する
合は、実際のフィールド長で処理されます。
typ に符号なし2進数を指定する場合は、len にはマスク値を10進数で指定します。フィールド値と
マスク値の論理積をキー値にします。例えば、符号なし2進数を指定する場合、フィールド値が0x8e、
マスク値が3(0x03)のとき、キー値は0x02になります。
指定可能なデータ形式ごとの長さについては、キーフィールドに指定可能なデータ形式を参照してく
ださい。
typ
キーフィールドのデータ形式をlenに続けて指定します。
指定可能なデータ形式については、キーフィールドに指定可能なデータ形式を参照してください。
opt
キーフィールドの操作をtyp に続けて指定します。
複数の操作を指定する場合は、続けて記述します。バイナリファイルの場合は、a、m、rおよびwが指
定できます。テキストファイルの場合は、全てのキーフィールドの操作が指定できます。aとrを両方
とも省略した場合は、aを指定したものとして動作します。指定可能な操作を以下に示します。
キーフィールドの操作の種類
opt
意味
a
昇順に並べます。rとは排他関係にあります。
b
キーフィールドの先頭の空白とタブを無視します。
d
空白と英数字だけを比較の対象とします。
i
制御文字コードを無視します。
j
英小文字を英大文字として比較します。
m
漢字ソートマージ機能を使用します。
対応する漢字ソートマージオプション(-M)が必要となります。mを指定し
た場合は、a、b、rの操作だけが有効となり、他の指定は無視します。漢
字ソートマージ機能で指定可能なデータ形式は、ASCIIコード、シフトJIS
コードおよびJEFコードです。
n
符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。デー
タ形式がASCIIコード、EBCDICコード、Unicode UCS-2形式またはUnicode
UTF-8形式の場合に指定できます。
Nおよびwとは排他関係にあります。
N
英字と数字の連結データ(例えば、data123など)を英字と数値に分けて評
価し並べます。
英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比
較します。指定フィールドの左から評価し、有効データ後に出現したデー
タは無視します。データ形式がASCIIコード、EBCDICコード、Unicode UCS-2
形式またはUnicode UTF-8形式の場合に指定できます。
nおよびwとは排他関係にあります。
r
降順に並べます。aとは排他関係にあります。
w
複数バイトから成る文字が混在していても文字ごとに比較して並べます。
データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式または
Unicode UTF-8形式で、入力コード系オプション(-q)がEBCDICコード系以
外の場合に指定できます。
nおよびNとは排他関係にあります。
キーフィールドのデータ形式に照合順序変更を指定した場合、キーフィールドの操作にa
44
3.2 bsortコマンドオプション
またはr以外を指定することはできません。
記述例
レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる場合は、次のように指定し
ます。
-0.10asca
3.2.11 レコード分離文字オプション(-L)
テキストファイル内の各レコードの分離文字列を指定します。
テキストファイルのときに有効です。
記述形式
-L line-delimiter
line-delimiter
テキストファイル内のレコード分離文字列を指定します。
指定可能なレコード分離文字列を以下に示します。
line-delimiter
意味
cl
CRLFをレコードの分離文字として扱います。(省略値)
cr
CRをレコードの分離文字として扱います。
lf
LFをレコードの分離文字として扱います。
3.2.12 メッセージレベルオプション(-l)
どのようなメッセージを出力するかを指定します。
記述形式
-l msglevel
msglevel
出力するメッセージのレベルを指定します。
メッセージの出力先は、環境変数BSORT_MSGOUT、環境変数BSORT_MSGFILEおよびメッセージファイル
オプション(-G)の指定により決まります。
指定可能なメッセージのレベルを以下に示します。
msglevel
意味
0
何も出力しません。
1
エラーメッセージを出力します。(省略値)
2
エラーメッセージと情報メッセージを出力します。
● 何も出力しないと指定した場合でも、コマンドシンタックスのエラーとコマンドヘルプは
標準エラー出力に出力します。
● メッセージレベルオプション(-l)は、環境変数BSORT_MSGLEVELの指定より優先されます。
45
第3章 PowerSORTのbsortコマンドを使用する
3.2.13 漢字ソートマージオプション(-M)
漢字ソートマージ機能を使用する場合に、漢字フィールドおよびふりがなフィールドを指定します。
記述形式
-M kanji-def [ ,kanji-def ...]
kanji-def の記述形式
form [odr][ pos.len typ ]
form
漢字ソートマージ機能の方式を指定します。指定可能な方式を以下に示します。
form
意味
std
基本方式(漢字属性の順)に並べます。ふりがなフィールドの指定は必要あ
りません。
dic
国語辞典方式(ふりがなの順)に並べます。ふりがなフィールドの指定が必
要となります。
odr
漢字フィールドの漢字属性を指定します。
漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで続け
て指定できます。
指定可能な漢字属性を以下に示します。
odr
意味
B
部首コード順に並べます。
S
総画数順に並べます。
O
音読み順に並べます。
K
訓読み順に並べます。
C
漢字コード順に並べます。
pos
ふりがなフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号
を指定します。
len
ふりがなフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
typ
ふりがなフィールドのデータ形式をlen に続けて指定します。
指定可能なデータ形式を以下に示します。
46
3.2 bsortコマンドオプション
バイナリファイルの場合
種類
文字
データ形式
typ
長さ(バイト)
ASCIIコード
asc
1~レコード長(注1)
EBCDICコード(注2)
ebc
1~レコード長(注1)
シフトJISコード
sji
1~レコード長(注1)
JEFコード(注2)
jef
2~レコード長(2の倍数) (注1)
テキストファイルの場合
種類
文字
データ形式
ASCIIコード
typ
asc
長さ(バイト)
1~レコード長(注1)
シフトJISコード
sji
1~レコード長(注1)
注1) レコード再編成機能を指定した場合は、レコード再編成後のレコード長まで指定できます。レ
コード再編成機能については、再編成フィールドオプション(-e)を参照してください。
注2) 入力コード系オプション(-q)の指定がEBCDICコード系の場合に指定できます。
3.2.14 出力ファイルオプション(-o)
出力ファイルのファイルパス名を指定します。
記述形式
-o outfile [ -o outfile ...]
outfile
出力ファイルのファイルパス名を指定します。
標準出力オプション(-w)と同時に指定された場合は、出力ファイルオプション(-o)が優先されます。
出力ファイルパス名に半角空白が含まれる場合は、出力ファイルパス名をダブルクォーテーション
( " )で囲みます。
出力ファイルオプション(-o)を複数指定することで、出力ファイルが許容量を超えた場合にリカバリ
処理として複数のファイルに分割して出力できます。そのため、複数のファイルを指定する場合は、
別ドライブに配置するようにしてください。この複数ファイルへの出力は以下のファイルを処理する
場合に指定できます。
● システム標準のファイル(テキストファイル、バイナリファイル)
記述例
半角空白を含む出力ファイルパス名の記述例を示します。
-o "c:\out files\sortout"
3.2.15 処理定義ファイルオプション(-P)
処理定義ファイルを指定します。
PowerSORT V2.0以前およびPowerSORT Workstation等の製品に付属されているPowerSORT GUIでは、指
定したオプション情報を処理定義ファイルに保存できます。この処理定義ファイルのオプション情報
に従ってbsortコマンドを実行できます。
記述形式
-P ProcDef-file
ProcDef-file
処理定義ファイルを指定します。
47
第3章 PowerSORTのbsortコマンドを使用する
処理定義ファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション
( " )で囲みます。
記述例
処理定義ファイルオプションは、他のオプションと同時に指定できません。コマンドの記述形式は常
に以下のようになります。
bsort -P ProcDef-file
● 処理定義ファイル内の一時ファイルフォルダ(TEMP_DIR)の指定は無効となります。bsort
コマンド実行前に、環境変数BSORT_TMPDIRで設定してください。
● 処理定義ファイルオプションを指定してbsortコマンドを実行する場合、PowerSORT GUI
の仕様によりメッセージが出力されません。処理が正常に終了したかどうかは、bsortコ
マンドの復帰値で判断してください。
● 処理定義ファイルは、エディタ等を利用して作成および変更をしないでください。
3.2.16 選択フィールドオプション(-p)
レコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
複数の選択フィールドを指定することもできます。コンマ( , )で区切って複数の選択フィールドを
指定した場合は、選択条件の論理積となります。複数の選択フィールドオプションを指定した場合は、
選択条件の論理和となります。
記述形式
-p sel-def [ ,sel-def ...]
sel-def の記述形式
sel-def の記述形式には以下の2種類があります。
sel-def の記述形式1
pos.len typ opt.cmp.pos.len typ
cmp の左辺は被比較フィールドを、右辺は比較フィールドを示します。
sel-def の記述形式2
pos.len typ opt.cmp.self
cmp の左辺は被比較フィールドを、右辺は自己規定値を示します。
pos
被比較フィールドまたは比較フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号
を指定します。
len
被比較フィールドまたは比較フィールドの長さをバイト数で指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
48
3.2 bsortコマンドオプション
データ形式に符号なし2進数を指定する場合は、マスク値を指定します。フィールド値とマスク値の
論理積を比較します。マスク値は、被比較フィールドと比較フィールドに同じ値を指定します。
self
自己規定値を指定します。self の記述形式を以下に示します。なお、自己規定値の指定時にはsel-def
記述上の注意事項を参照してください。
self の記述形式1
'文字列 '
self の記述形式2
x16進数
self の記述形式3
d10進数
typ
被比較フィールドと比較フィールドのデータ形式を指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
opt
被比較フィールドの操作を指定します。
複数の操作を指定する場合は続けて記述します。指定可能な操作を以下に示します。b、d、i、jおよ
びnは、テキストファイルを処理する場合に指定できます。
opt
意味
b
フィールドの先頭の空白とタブを無視します。
d
空白と英数字だけを比較の対象とします。
i
制御文字コードを無視します。
j
英小文字を英大文字として比較します。
n
符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。デー
タ形式がASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式の場
合に指定できます。
wとは排他関係にあります。
w
複数バイトから成る文字が混在していても文字ごとに比較します。
データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式または
Unicode UTF-8形式で、入力コード系オプション(-q)がEBCDICコード系以
外の場合に指定できます。
nとは排他関係にあります。
cmp
比較演算子を指定します。
以下に比較演算子とその意味を示します。
49
第3章 PowerSORTのbsortコマンドを使用する
比較演算子とその意味
比較演算子
意味(真の条件)
eq
被比較フィールド = 比較フィールドまたは自己規定値
ne
被比較フィールド ≠ 比較フィールドまたは自己規定値
gt
被比較フィールド > 比較フィールドまたは自己規定値
ge
被比較フィールド ≧ 比較フィールドまたは自己規定値
lt
被比較フィールド < 比較フィールドまたは自己規定値
le
被比較フィールド ≦ 比較フィールドまたは自己規定値
sel-def 記述上の注意事項
● オプション引数で自己規定値の文字列を指定する場合は、オプション引数全体をダブルク
ォーテーション( " )で囲みます。
● オプション引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する
場合は、ダブルクォーテーション( " )の前に円記号( \ )を指定します。
● オプション引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、
クォーテーション( ' )を2つ続けて指定します。
● 自己規定値の10進数を指定する場合は、符号を指定できます。
● 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデ
ータ形式に合わせてから比較します。
● 自己規定値は、被比較フィールドのデータ形式に合わせてから比較します。
● 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールド
の短い方の長さで比較します。
● 比較フィールドのデータ形式の種類が数値または数字の場合、被比較フィールドと比較フ
ィールドの短い方を長い方の長さに合わせて比較します。
● ASCIIコードおよびシフトJISコードは、バイナリファイルの場合、入力コード系オプショ
ン(-q)がEBCDICコード系以外の場合に指定できます。テキストファイルの場合、入力コー
ド系オプション(-q)がASCIIコード系の場合に指定できます。
● EBCDICコードは、入力コード系オプション(-q)がEBCDICコード系の場合に指定できます。
● Unicode UCS-2形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDIC
コード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション
(-q)がUnicode系(UCS-2形式)の場合に指定できます。
● Unicode UTF-8形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDIC
コード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション
(-q)がUnicode系(UTF-8形式)の場合に指定できます。
● テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むこ
とはできません。
● テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列また
はレコード分離文字を含むことはできません。
● 被比較フィールドおよび比較フィールドのデータ形式に照合順序変更を指定した場合、
opt にフィールドの操作を指定できません。
● 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号
なし固定小数点2進数、システム依存形式固定小数点2進数、システム依存形式符号なしの
自己規定値を10進数で指定する場合、その値は以下の範囲になります。
データ形式
指定可能な値
符号ありのデータ形式
-2147483648 ~ 2147483647
符号なしのデータ形式
0 ~ 4294967295
記述例
例1) 12バイトめの位置から4バイトの固定小数点2進数のフィールドが30以上のレコードを選択する
50
3.2 bsortコマンドオプション
場合は、次のように指定します。
-p 11.4fbi.ge.d30
例2) 10バイトめの位置から5バイトのASCIIコードのフィールドに文字列abcdeがあるレコードを選
択する場合は、次のように指定します。
-p "9.5asc.eq.'abcde'"
例3) 10バイトめの位置から5バイトのASCIIコードのフィールドに文字列"abcdがあるレコードを選
択する場合は、次のように指定します。
-p "9.5asc.eq.'\"abcd'"
例4) 10バイトめの位置から5バイトのASCIIコードのフィールドに文字列abc'dがあるレコードを選
択する場合は、次のように指定します。
-p "9.5asc.eq.'abc''d'"
例5) 4バイトめの位置から3バイトのASCIIコードのフィールドに文字列abcがある、かつ10バイトめ
の位置から3バイトのASCIIコードのフィールドに文字列abcがあるレコード、または4バイトめの位置
から5バイトのASCIIコードのフィールドに文字列abcdeがあるレコードを選択する場合は、次のよう
に指定します。
-p "3.3asc.eq.'abc'","9.3asc.eq.'abc'" -p "3.5asc.eq.'abcde'"
3.2.17 文字コード系変換オプション(-Q)
ASCIIコードとEBCDICコード間の変換方式を指定します。
記述形式
-Q altmode
altmode
ASCIIコードとEBCDICコード間の変換方式を指定します。
以下の場合にASCIIコードとEBCDICコード間の変換が行われます。
● 入力ファイルのコード系(入力コード系オプション(-q))がASCIIコード系でキーフィール
ドのデータ形式がEBCDICコードの場合におけるキーフィールドの比較
● 入力ファイルのコード系(入力コード系オプション(-q))がEBCDICコード系でキーフィー
ルドのデータ形式がASCIIコードの場合におけるキーフィールドの比較
● 選択フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己
規定値の変換
● 再編成フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自
己規定値の変換
次から1つを選択して指定します。
altmode
意味
0
EBCDICコードとUS ASCIIコード間のコード変換をします。(省略値)
1
EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。
2
EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をします。
3.2.18 入力コード系オプション(-q)
入力ファイルのコード系を指定します。
記述形式
-q cdmode
51
第3章 PowerSORTのbsortコマンドを使用する
cdmode
入力ファイルのコード系を指定します。
次から1つを選択して指定します。
cdmode
意味
au
ASCIIコード系 (富士通COBOL形式) (省略値)
ac
ASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式)
eb
EBCDICコード系 (注)
u2
Unicode系 (UCS-2形式)
u8
Unicode系 (UTF-8形式)
注) EBCDICコード系はバイナリファイルの場合に指定可能です。
3.2.19 レコード読み飛ばしオプション(-R)
入力ファイルの先頭から処理対象としないレコードを件数で指定します。
ファイルの先頭にヘッダ情報など処理の対象としないデータがある場合に使用します。
記述形式
-R skiprec-no [ ,skiprec-no ...]
skiprec-no
処理対象としないレコードを件数で指定します。
省略した場合は全レコードが処理対象となります。入力ファイルが複数ある場合は、ファイルの指定
順に合わせてコンマ( , )で区切って件数を指定します。
記述例
例1) 最初の入力ファイルの先頭から10件、2番めの入力ファイルの先頭から20件のレコードを読み飛
ばします。
-R 10,20
例2) 入力ファイルが3つある場合、3番めの入力ファイルの先頭から100件のレコードを読み飛ばし
ます。
-R ,,100
例3) 入力ファイルが3つある場合、最初の入力ファイルの先頭から100件のレコードを読み飛ばしま
す。2番め、3番めの入力ファイルのレコードの読み飛ばしは行われません。
-R 100
3.2.20 降順オプション(-r)
降順に並べて出力することを指定します。
キーフィールドの指定を省略したときに有効なオプションです。
記述形式
-r
3.2.21 処理(ソート、マージ、コピー)オプション(-s、-m、-c)
入力ファイルに対して行う処理を指定します。
52
3.2 bsortコマンドオプション
記述形式
[ -s ] | -m | -c
以下に処理オプションと意味を示します。各処理オプションは互いに排他関係にあります。
処理オプション
意味
-s
ソート機能 (省略値)
-m
マージ機能
-c
コピー機能
3.2.22 テキストファイルオプション(-T)
入力ファイルがテキストファイルであることを指定し、同時にフィールドの指定方法を指定します。
記述形式
-T { flt | fix } [ ,{ n | w | N } b d i j ]
fltとfixは、キーフィールド、選択フィールド、再編成フィールドおよび集約フィールドの指定方法
を表します。
続くn、w、N、b、d、i、j は、キーフィールドの指定を省略し、レコード全体をキーフィールドとす
る場合のキーフィールドの操作を表します。複数の操作を指定する場合は、続けて記述します。
flt
テキストファイル浮動フィールド指定を示します。フィールド分離文字列で区切られた、フィールド
の番号で指定する形式です。フィールド分離文字列については、フィールド分離文字オプション(-t)
を参照してください。
fixオプション引数とは排他関係にあります。
fix
テキストファイル固定フィールド指定を示します。先頭からのバイト位置で指定する形式です。
fltオプション引数とは排他関係にあります。
n
符号を含んだ数字の文字列を算術的な値によって比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。
wオプション引数およびNオプション引数とは排他関係にあります。
w
複数バイトから成る文字が混在していても文字ごとに比較して並べます。
nオプション引数およびNオプション引数とは排他関係にあります。
N
英字と数字の連結データ(例えば、data123など)を英字と数値に分けて評価し並べます。
英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。
指定フィールドの左から評価し、有効データ後に出現したデータは無視します。
nオプション引数およびwオプション引数とは排他関係にあります。
b
キーフィールドの先頭の空白とタブを無視します。
d
空白と英数字だけを比較の対象にします。
53
第3章 PowerSORTのbsortコマンドを使用する
i
制御文字コードを無視します。
j
英小文字を英大文字として比較します。
● 入力ファイルがテキストファイルの場合は、テキストファイルオプション(-T)は必ず指定
します。
● テキストファイルオプション(-T)を省略した場合は、バイナリファイルとして処理します。
3.2.23 フィールド分離文字オプション(-t)
テキストファイル浮動フィールド指定のときの、フィールド分離文字列を指定します。
記述形式
-t chars
chars
テキストファイル浮動フィールド指定のときの、フィールド分離文字列を指定します。
省略時は、タブまたは空白をフィールドの分離文字として扱います。
フィールド分離文字列に空白を含む場合は、フィールド分離文字列をダブルクォーテーション( " )
で囲みます。フィールド分離文字列にダブルクォーテーション( " )を指定する場合は、ダブルクォ
ーテーション( " )の前に円記号( \ )を指定します。
記述例
例1) フィールド分離文字列として、文字列(SEPARATE)を指定します。
-t SEPARATE
例2) フィールド分離文字列として、文字列(F S)を指定します。
-t "F S"
例3) フィールド分離文字列として、文字(')を指定します。
-t '
例4) フィールド分離文字列として、文字(")を指定します。
-t \"
例5) フィールド分離文字列として、文字(\)を指定します。
-t \
例6) フィールド分離文字列として、文字列(**)を指定します。
-t **
例7) フィールド分離文字列として、文字列(* *)を指定します。
-t "* *"
54
3.2 bsortコマンドオプション
フィールド分離文字列には、レコード分離文字列(レコード分離文字オプション(-L))と同
じ文字を指定できません。
3.2.24 サプレスオプション(-u)
サプレス機能を指定します。
指定したキーフィールドの値が同一のとき、1つのレコードを残して他を削除します。このとき削除
されるレコードは不定です。
サプレス機能はソート機能とマージ機能のときに有効です。また、先入力先出力(FIFO)機能(-f)とレ
コード集約機能(-g)とは排他関係にあります。
記述形式
-u
3.2.25 入出力上書きオプション(-v)
入力ファイルの1つが出力ファイルと同じ場合に、処理を継続することを指定します。
入出力上書きオプション(-v)を指定すると、入力ファイルに処理結果が上書きされるため、ディスク
スペースを節約できます。このオプションを省略して、入力ファイルの1つに出力ファイルと同じフ
ァイルを指定した場合は、エラーとなります。
入出力上書きオプション(-v)は、ソート機能のときに有効です。
記述形式
-v
入力ファイルの1つが出力ファイルと同じ場合、ソート処理中に異常が発生すると、入力
ファイルのデータは保証されない場合がありますので、注意してください。
3.2.26 標準出力オプション(-w)
出力ファイルの指定がない場合に処理結果を標準出力に出力することを指定します。
出力ファイルオプション(-o)と同時に指定されたときは、出力ファイルオプション(-o)が優先されま
す。
記述形式
-w
3.2.27 インデックス指定オプション(-X)
出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを
指定します。
富士通COBOLファイルシステムの索引ファイルの場合は、インデックス指定オプション(-X)を省略で
きません。
55
第3章 PowerSORTのbsortコマンドを使用する
記述形式
-X index-def [ ,index-def ...]
index-def
インデックスフィールドを指定します。
はじめに主キーを指定し、その後に副キーを指定します。
index-def の記述形式
pos.len typ opt
pos
インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。
len
インデックスフィールドの長さをバイト数で指定します。
typ
インデックスフィールドのデータ形式をlen に続けて指定します。
以下に、インデックスフィールドのデータ形式と長さを示します。
長さ
種類
データ形式
typ
(バイト)
文字
意味
ASCIIコード
asc
1~254
富士通COBOLのCHARTYPE
Unicode UCS-2形式(注)
uc2
2~254
(2の倍数)
富士通COBOLのCHARTYPE
Unicode UTF-8形式
ut8
1~254
富士通COBOLのCHARTYPE
注) Unicode UCS-2形式のバイトオーダはLittle endianとなります。
opt
インデックスフィールドの操作をtyp に続けて指定します。指定可能な操作を以下に示します。
最終セグメントには、必ずeを指定します。
opt
意味
a
昇順に並べます。
d
インデックスに重複キー指定を示します。
e
セグメントの終りを示します。
3.2.28 照合順序変更オプション(-x)
照合順序を変更するための情報を指定します。
記述形式
-x col-def [ ,col-def ...]
col-def
照合順序を変更するための情報を指定します。
ccttの形式で記述します。照合順序変更機能では、フィールド中に16進数'cc'と等しいバイトがあれ
ば、そのバイトを16進数'tt'として比較します。コンマ( , )で区切って複数の照合順序を変更する
ための情報を指定できます。'cc'で指定されていない16進数は、置き換えられずにそのまま比較しま
す。
56
3.2 bsortコマンドオプション
照合順序変更機能は、キーフィールドのデータ形式、選択フィールドの被比較フィールドおよび比較
フィールドのデータ形式にcolが指定されている場合に、照合順序変更オプション(-x)で指定した照
合順序で比較します。
記述例
例1) 16進数0x20を、16進数0x23として比較する場合は、次のように指定します。
-x 2023
例2) 同じ16進数に対して複数の照合順序変更を指定した場合は、最後に指定した照合順序の変更が
有効になります。以下の例では、16進数0x20は16進数0x3Aとして比較します。
-x 2023,6141,203A
3.2.29 メモリサイズオプション(-y)
PowerSORTが使用する作業域の大きさ(メモリサイズ)を指定します。
記述形式
-y memsize
memsize
PowerSORTが使用する作業域の大きさをキロバイト数で指定します。32~2097151キロバイトの範囲で
指定します。
メモリサイズオプション(-y)を省略した場合または0を指定した場合、環境変数BSORT_MEMSIZEの指定
があれば、その大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。
2097152以上の値を指定した場合は、2097151を指定したとみなされます。
3.2.30 レコード形式オプション(-Z)
バイナリファイルの場合にレコード形式を指定します。
テキストファイルの場合は指定できません。
システムの標準ファイルシステムのファイルの場合は省略可能です。指定する場合は、固定長レコー
ド形式を指定します。富士通COBOLファイルシステム、Micro Focus COBOLファイルシステム、Btrieve
ファイルシステムおよびRDMファイルシステムのファイルの場合は指定が必要です。指定可能なレコ
ード形式については、PowerSORTの入出力環境を参照してください。
記述形式
-Z recform
recform
以下から選択して指定します。
recform
意味
f
固定長レコード形式を示します。
v
可変長レコード形式を示します。
3.2.31 レコード長オプション(-z)
入力レコードのレコード長または最大レコード長を指定します。
57
第3章 PowerSORTのbsortコマンドを使用する
記述形式
-z recsize
recsize
レコード長をバイト数で指定します。
バイナリファイルの場合、レコード形式が固定長レコード形式のときは、レコード長を指定します。
また、レコード形式が可変長レコード形式のときは、ファイル内の最大レコード長を指定します。
テキストファイルの場合は、改行コードを含む最大レコード長を指定します。
58
第4章 PowerSORTのbsortexコマンドを使用する
ここでは、bsortexコマンドについて説明します。
bsortexコマンドをバッチ処理などに組み込むことで、大量データの高速ソートマージ処理を実現で
きます。
第4章 PowerSORTのbsortexコマンドを使用する
4.1 bsortexコマンドの形式
bsortexコマンドは、テキストファイルおよびバイナリファイルのデータに対して、ソート処理、マ
ージ処理またはコピー処理を行います。指定された処理が正常に終了した場合は、0の終了コードを
返します。エラーが発生した場合は、0以外の終了コードを返します。
bsortexコマンドには、使用する機能により3つの記述形式があります。それぞれ、指定できるオプシ
ョンに違いがありますので、使用する機能に合わせて適切なオプションを指定してください。
bsortexコマンド記述上の注意事項
● ハイフン(-)が付いたものをオプションと呼び、オプションの後に続けて指定するものを
オペランドと呼びます。
例) -sortオプションのkeyオペランド
● 角括弧( [ ] )で囲まれた字句は省略可能です。
● 中括弧( { } )は棒線( | )で区切られた字句の選択を示します。
● 斜体は、必要に応じて利用者が値を設定します。
● ...は繰り返し指定できることを示します。
● イコール(=)で値を指定するオペランドの場合、イコール(=)の前後には空白を入れずに続
けて指定します。
60
4.1 bsortexコマンドの形式
4.1.1 ソート機能を使用する場合
以下にソート機能を使用する場合のコマンド形式を示します。
bsortex
[ -h ]
[ -a argument-file ]
[ -define keyword=word-definition [ keyword=word-definition...]
[ -define...] ]
[ -sort [ key=key-definition [ ,key-definition...] [ key=...] ]
[ jef=jef-definition [ ,jef-definition...] [ jef=...] ] ]
[ -record [ recform=record-format ] [ fldsep=field-separate ] ]
-input reclen=record-length
[ file=file-name [ ,file-name...] [ file=...]
[ filesys=file-system [ /owner-name [ ,owner-name...] ] ] ]
[ { include=condition-expression [ ,condition-expression ]
[ include=...]
| omit=condition-expression [ ,condition-expression ]
[ omit=...] } ]
[ reconst=reconst-definition [ ,reconst-definition...]
[ reconst=...] ]
[ eof= { effect | ignore } ]
[ overwrite ]
[ -summary { field=summary-definition [ ,summary-definition...]
[ field=...] | suppress } [ { first | last } ] ]
[ -output [ file=file-name [ ,file-name...] [ file=...]
[ filesys=file-system ] ]
[ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ]
[ { include=condition-expression [ ,condition-expression ]
[ include=...]
| omit=condition-expression [ ,condition-expression ]
[ omit=...]
| case= { condition-expression [ ,condition-expression ]
| other } [ case=...] } ]
[ reconst=reconst-definition [ ,reconst-definition...]
[ reconst=...] ]
[ idxflag=index-flag ]
[ idxkey=index-key [ ,index-key...] [ idxkey=...] ]
[ linedlmt=line-delimiter ] [ removeeof ] [ -output...] ]
[ -option [ colseq=col-def [ ,col-def...] [ colseq=...] ]
[ fifo ] [ icode=input-code ] [ iconv=input-conversion ]
[ memsize=memory-size ]
[ msgfile=message-file ] [ msglevel=message-level ]
[ tmpdir=temp-directory [ ,temp-directory...] [ tmpdir=...] ] ]
61
第4章 PowerSORTのbsortexコマンドを使用する
4.1.2 マージ機能を使用する場合
以下にマージ機能を使用する場合のコマンド形式を示します。
bsortex
62
[ -h ]
[ -a argument-file ]
[ -define keyword=word-definition [ keyword=word-definition...]
[ -define...] ]
-merge [ key=key-definition [ ,key-definition...] [ key=...] ]
[ jef=jef-definition [ ,jef-definition...] [ jef=...] ]
[ -record [ recform=record-format ] [ fldsep=field-separate ] ]
-input reclen=record-length
[ file=file-name [ ,file-name...] [ file=...]
[ filesys=file-system [ /owner-name [ ,owner-name...] ] ] ]
[ { include=condition-expression [ ,condition-expression ]
[ include=...]
| omit=condition-expression [ ,condition-expression ]
[ omit=...] } ]
[ reconst=reconst-definition [ ,reconst-definition...]
[ reconst=...] ]
[ eof= { effect | ignore } ]
[ -summary { field=summary-definition [ ,summary-definition...]
[ field=...] | suppress } [ { first | last } ] ]
[ -output [ file=file-name [ ,file-name...] [ file=...]
[ filesys=file-system ] ]
[ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ]
[ { include=condition-expression [ ,condition-expression ]
[ include=...]
| omit=condition-expression [ ,condition-expression ]
[ omit=...]
| case= { condition-expression [ ,condition-expression ]
| other } [ case=...] } ]
[ reconst=reconst-definition [ ,reconst-definition...]
[ reconst=...] ]
[ idxflag=index-flag ]
[ idxkey=index-key [ ,index-key...] [ idxkey=...] ]
[ linedlmt=line-delimiter ] [ removeeof ] [ -output...] ]
[ -option [ colseq=col-def [ ,col-def...] [ colseq=...] ]
[ fifo ] [ icode=input-code ] [ iconv=input-conversion ]
[ memsize=memory-size ]
[ msgfile=message-file ] [ msglevel=message-level ] ]
4.1 bsortexコマンドの形式
4.1.3 コピー機能を使用する場合
以下にコピー機能を使用する場合のコマンド形式を示します。
bsortex
[ -h ]
[ -a argument-file ]
[ -define keyword=word-definition [ keyword=word-definition...]
[ -define...] ]
-copy
[ -record [ recform=record-format ] [ fldsep=field-separate ] ]
-input reclen=record-length
[ file=file-name [ ,file-name...] [ file=...]
[ filesys=file-system [ /owner-name [ ,owner-name...] ] ] ]
[ { include=condition-expression [ ,condition-expression ]
[ include=...]
| omit=condition-expression [ ,condition-expression ]
[ omit=...] } ]
[ reconst=reconst-definition [ ,reconst-definition...]
[ reconst=...] ]
[ eof= { effect | ignore } ]
[ -output [ file=file-name [ ,file-name...] [ file=...]
[ filesys=file-system ] ]
[ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ]
[ { include=condition-expression [ ,condition-expression ]
[ include=...]
| omit=condition-expression [ ,condition-expression ]
[ omit=...]
| case= { condition-expression [ ,condition-expression ]
| other } [ case=...] } ]
[ reconst=reconst-definition [ ,reconst-definition...]
[ reconst=...] ]
[ idxflag=index-flag ]
[ idxkey=index-key [ ,index-key...] [ idxkey=...] ]
[ linedlmt=line-delimiter ] [ removeeof ] [ -output...] ]
[ -option [ colseq=col-def [ ,col-def...] [ colseq=...] ]
[ icode=input-code ] [ iconv=input-conversion ]
[ memsize=memory-size ]
[ msgfile=message-file ] [ msglevel=message-level ] ]
63
第4章 PowerSORTのbsortexコマンドを使用する
4.2 bsortexコマンドオプション
ここでは、bsortexコマンドの各オプションについて説明します。
4.2.1 アーギュメントファイルオプション(-a)
アーギュメントファイルを指定します。
アーギュメントファイルは、bsortexコマンドの各種オプション引数を記述したテキストファイルで
す。アーギュメントファイルは、固定のオプション引数を別途指定しておきたい場合や、コマンドの
オプション引数が長くなる場合などで使用します。
記述形式
-a argument-file
argument-file
アーギュメントファイルを指定します。
他のオプション引数とアーギュメントファイルオプションを同時に指定した場合、アーギュメントフ
ァイルオプションを指定した位置に、アーギュメントファイルで記述したオプション引数が展開され
ます。アーギュメントファイルオプションは複数指定できます。
アーギュメントファイルには、オプション引数を複数の行に記述できます。ただし、オペランドの途
中で改行することはできません。
アーギュメントファイルにアーギュメントファイルオプションは指定できません。アーギュメントフ
ァイルには、bsortexコマンドのオプション引数だけを記述します。
アーギュメントファイル名に空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテ
ーション( " )で囲みます。
記述例
以下にargument-file の記述例を示します。
-sort key=32.12pdla,25.4fbia↓
-input reclen=200↓
file=master.db↓
include=25.4fbi.ge.d35↓
-output file=bsortout↓(注)
注)↓印は改行コード<CR><LF>を示しています。
argument-file 記述上の注意事項
以下に誤ったargument-file の記述例を示します。
keyオペランドの途中で改行できません。
-sort key=32.12pdla,↓
25.4fbia↓
-input reclen=200↓
file=master.db↓
include=25.4fbi.ge.d35↓
-output file=bsortout↓
注)↓印は改行コード<CR><LF>を示しています。
argument-file の展開例
argument-fileには、以下の内容が記述されているものとします。
-sort key=0.10asca
64
4.2 bsortexコマンドオプション
例1)
bsortex –a argument-file -input reclen=100 file=infile1
と指定した場合、以下の指定と同じです。
bsortex -sort key=0.10asca -input reclen=100 file=infile1
例2)
bsortex -sort -a argument-file -input reclen=100 file=infile1
と指定した場合、以下の指定と同じです。
bsortex -sort -sort key=0.10asca -input reclen=100 file=infile1
この場合、重複指定不可の -sortオプションが2つ指定されているため、エラーになります。
4.2.2 コピーオプション(-copy)
コピー機能を指定します。
コピーオプション(-copy)にはオペランドはありません。
コピーオプション(-copy)、ソートオプション(-sort)およびマージオプション(-merge)は互いに排他
関係にあります。
記述形式
-copy
4.2.3 定義オプション(-define)
フィールド定義やファイルパス名に対して任意の簡略名を定義します。
ここで定義した任意の簡略名を他のオプションで使用することができます。
記述形式
-define keyword=word-definition [ keyword=word-definition ...][ -define ...]
keyword=word-definition
keyword は先頭文字に@を付けた英数字で示します。
● オプション名(例えば、-sort)およびイコール(=)で値を指定するオペランドの左辺部(例
えば、key)をword-definition に指定できません。
● 簡略名を複数定義した場合は、指定順に置き換えられます。このため、ある簡略名を含む、
他の簡略名を定義する場合には、簡略名の指定順により結果が変わりますので、注意が必
要です。
置換え前1
-define @HOK=hoken\hoken1.dat @HOKEN2=hoken\hoken2.dat
-sort file=@HOKEN2
置換え後1
-sort file=hoken\hoken1.datEN2
65
第4章 PowerSORTのbsortexコマンドを使用する
置換え前2
-define @HOKEN2=hoken\hoken2.dat @HOK=hoken\hoken1.dat
-sort file=@HOKEN2
置換え後2
-sort file=hoken\hoken2.dat
記述例
-define @HOKEN1=hoken\hoken1.dat
@HOKEN2=hoken\hoken2.dat
@HOKEN34=hoken\hoken3.dat,hoken\hoken4.dat
@NAME=12.8asc
@AGE=20.2fbi
-sort key=@AGEr,@NAMEa
-input file=@HOKEN1,@HOKEN2 [email protected]
4.2.4 ヘルプオプション(-h)
bsortexコマンドのコマンド形式の一覧を表示します。
他のオプションと共に指定された場合は、指定されたオプションのチェックを行い、エラーがあった
場合はエラーメッセージを出力します。
このオプションが指定されている場合は、PowerSORTの処理は行われません。
記述形式
-h
4.2.5 入力ファイル情報オプション(-input)
入力ファイル情報を指定します。
標準入力から入力する場合は、fileオペランドおよびfilesysオペランドを省略します。
記述形式
-input reclen=record-length
[ file=file-name [ ,file-name ...] [ file= ...]
[ filesys=file-system [ /owner-name [ ,owner-name ...] ] ] ]
[ { include=condition-expression [ ,condition-expression ] [ include= ...]
| omit=condition-expression [ ,condition-expression ] [ omit= ...] } ]
[ reconst=reconst-definition [ ,reconst-definition ...] [ reconst= ...] ]
[ eof= { effect | ignore } ]
[ overwrite ]
4.2.5.1 reclenオペランド
入力レコードのレコード長または最大レコード長を指定します。
記述形式
reclen=record-length
66
4.2 bsortexコマンドオプション
record-length
入力レコードのレコード長または最大レコード長をバイト数で指定します。
テキストファイルの場合は、改行コードを含む最大レコード長を指定します。
4.2.5.2 fileオペランド
入力ファイルパス名を指定します。
記述形式
file=file-name
file-name
入力ファイルパス名を指定します。
コンマ( , )で区切って複数の入力ファイルを指定できます。
fileオペランド記述上の注意事項
● オペランド引数でコンマ( , )を含んだファイルパス名を指定する場合は、file-name 全
体をクォーテーション( ' )で囲み、さらにダブルクォーテーション( " )で囲みます。
● オペランド引数でクォーテーション( ' )を含んだファイルパス名を指定する場合は、ク
ォーテーション( ' )を2つ続けて指定し、file-name 全体をダブルクォーテーション( " )
で囲みます。
● オペランド引数で空白を含んだファイルパス名を指定する場合は、file-name 全体をダブ
ルクォーテーション( " )で囲みます。
記述例
例1) コンマ( , )を含んだファイルパス名を指定する例を示します。
file="'abc,def'"
例2) クォーテーション( ' )を含んだファイルパス名を指定する例を示します。
file="abc''def"
例3) 空白を含んだファイルパス名を指定する例を示します。
file="abc def"
例4) 複数の入力ファイルを指定する例を示します。
file=sortin1,sortin2
4.2.5.3 filesysオペランド
fileオペランドで指定した入力ファイルのファイルシステムを指定します。
記述形式
filesys=file-system [ /owner-name [ ,owner-name ...] ]
file-system
入力ファイルのファイルシステムを指定します。
ファイルシステムは識別子で指定します。指定可能なファイルシステムを以下に示します。
67
第4章 PowerSORTのbsortexコマンドを使用する
識別子
ファイルシステムの説明
dos
システムの標準ファイルシステム(省略値)
cobseq
富士通COBOLファイルシステム(順ファイル)
cobs64
富士通COBOLファイルシステム(BSAM対応順ファイル)
cobrel
富士通COBOLファイルシステム(相対ファイル)
cobidx
富士通COBOLファイルシステム(索引ファイル)
mfcseq
Micro Focus COBOLファイルシステム(順ファイル)
mfcrel
Micro Focus COBOLファイルシステム(相対ファイル)
mfcidx
Micro Focus COBOLファイルシステム(索引ファイル)
btrv
Btrieveファイルシステム
rdm
RDMファイルシステム
owner-name
Btrieveファイルシステムで必要な場合には、owner-name に最大8文字までのオーナーネームを指定
します。
オーナーネームでは、大文字と小文字が区別されます。また、入力ファイルの指定順にコンマ( , )
で区切って複数のオーナーネームを指定できます。入力ファイルの数がオーナーネームの数より多い
場合、残りの入力ファイルに対するオーナーネームは省略されたとみなします。入力ファイルの数が
オーナーネームの数より少ない場合、余分に指定したオーナーネームは無視されます。
記述例
例1) 最初の入力ファイルのオーナーネームにowner1、2番めの入力ファイルのオーナーネームに
owner2を指定する場合、以下のように指定します。
filesys=btrv/owner1,owner2
例2) 入力ファイルが2つある場合、2番めの入力ファイルのオーナーネームにowner2を指定する場合、
以下のように指定します。
filesys=btrv/,owner2
指定可能なファイルシステムに関する注意事項
● PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、ア
クセスすることができません。また、富士通COBOLファイルシステム(索引ファイル)を指
定した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもアクセ
スすることができません。共用モード、排他モードについては、お使いの富士通COBOLフ
ァイルシステムのマニュアルを参照してください。
● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定しても、使用する富士通COBOL
ファイルシステムが対応していない場合は富士通COBOLファイルシステム(順ファイル)と
して動作します。BSAM対応については、お使いの富士通COBOLファイルシステムのマニュ
アルを参照してください。
● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定した場合は、富士通COBOLファ
イルシステムの仕様によりレコード排他処理が行われません。
● Micro Focus COBOLファイルシステム(索引ファイル)およびBtrieveファイルシステムは、
入力ファイルのファイルシステムとしてのみ指定可能です。
● データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイル
に指定することはできません。
4.2.5.4 includeオペランド
入力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
68
4.2 bsortexコマンドオプション
条件が成立したレコードを処理の対象とします。
includeオペランドは、omitオペランドとは排他関係にあります。
記述形式
include=condition-expression
condition-expression
選択フィールド(選択条件)を指定します。
コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となりま
す。複数のincludeオペランドを指定した場合は、選択条件の論理和となります。
condition-expression の記述形式
condition-definition [ { .and. | .or. } [ ( ]condition-expression [ ) ] ]
and
選択条件の論理積を示します。コンマ( , )で区切って複数指定した場合と同等です。
or
選択条件の論理和を示します。includeオペランドを複数指定した場合と同等です。
condition-definition
一つの選択フィールド(選択条件)を指定します。
condition-definition の記述形式
以下にcondition-definition の記述形式を示します。
condition-definition の記述形式1
pos.len typ [ opt ].cmp.pos.len typ
記述形式1は2つの選択フィールドを比較します。cmp の左辺は被比較フィールドを、右辺は比較フィ
ールドを示します。
condition-definition の記述形式2
pos.len typ [ opt ].cmp.self-def
記述形式2は選択フィールドと自己規定値を比較します。cmp の左辺は被比較フィールドを、右辺は
自己規定値を示します。
condition-definition の記述形式3
RECNUM.cmp.num
記述形式3はレコード件数に従って選択します。
pos
被比較フィールドまたは比較フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
len
被比較フィールドまたは比較フィールドの長さをバイト数で指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
69
第4章 PowerSORTのbsortexコマンドを使用する
場合は、実際のフィールド長で処理します。
データ形式に符号なし2進数を指定する場合は、マスク値を指定します。フィールド値とマスク値の
論理積を比較します。マスク値は、被比較フィールドと比較フィールドに同じ値を指定します。
typ
被比較フィールドと比較フィールドのデータ形式を指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
opt
被比較フィールドの操作を指定します。
複数の操作を指定する場合は続けて記述します。指定可能な操作を以下に示します。b、d、i、jおよ
びnは、テキストファイルを処理する場合に指定できます。
opt
意味
b
キーフィールドの先頭の空白とタブを無視します。
d
空白と英数字だけを比較の対象とします。
i
制御文字コードを無視します。
j
英小文字を英大文字として比較します。
n
符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。
データ形式がASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式
の場合に指定できます。
wとは排他関係にあります。
w
複数バイトから成る文字が混在していても文字ごとに比較します。
データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式または
Unicode UTF-8形式で、入力ファイルのコード系(実行環境オプション
(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できま
す。
nとは排他関係にあります。
self-def
自己規定値を指定します。self-def の記述形式を以下に示します。
self-def の記述形式1
'文字列 '
self-def の記述形式2
x16進数
self-def の記述形式3
d10進数
cmp
比較演算子を指定します。
以下に比較演算子とその意味を示します。
70
4.2 bsortexコマンドオプション
比較演算子
意味
eq
被比較フィールド=比較フィールドまたは自己規定値
ne
被比較フィールド≠比較フィールドまたは自己規定値
gt
被比較フィールド>比較フィールドまたは自己規定値
ge
被比較フィールド≧比較フィールドまたは自己規定値
lt
被比較フィールド<比較フィールドまたは自己規定値
le
被比較フィールド≦比較フィールドまたは自己規定値
RECNUM
レコード件数で選択することを指定します。
num
レコード件数を指定します。
入力の場合、入力ファイルの先頭レコードを1件めとして指定します。複数の入力ファイルを指定し
た場合、ファイルごとの先頭レコードを1件めとして選択します。出力の場合、集約またはサプレス
後に出力する最初のレコードを1件めとして指定します。
condition-definition 記述上の注意事項
● オペランド引数で自己規定値の文字列を指定する場合は、オペランド引数全体をダブルク
ォーテーション( " )で囲みます。
● オペランド引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する
場合は、ダブルクォーテーション( " )の前に円記号( \ )を指定します。
● オペランド引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、
クォーテーション( ' )を2つ続けて指定します。
● 自己規定値の10進数を指定する場合は、符号を指定できます。
● 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデ
ータ形式に合わせてから比較します。
● 自己規定値は、被比較フィールドのデータ形式に合わせてから比較します。
● 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールド
の短い方の長さで比較します。
● 比較フィールドのデータ形式の種類が数値または数字の場合、被比較フィールドと比較フ
ィールドの短い方を長い方の長さに合わせて比較します。
● ASCIIコードおよびシフトJISコードは、バイナリファイルの場合、入力ファイルのコード
系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指
定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション
(-option)のicodeオペランド)がASCIIコード系の場合に指定できます。
● EBCDICコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペラ
ンド)がEBCDICコード系の場合に指定できます。
● Unicode UCS-2形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプ
ション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できます。テキ
ストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオ
ペランド)がUnicode系(UCS-2形式)の場合に指定できます。
● Unicode UTF-8形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプ
ション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できます。テキ
ストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオ
ペランド)がUnicode系(UTF-8形式)の場合に指定できます。
● テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むこ
とはできません。
● テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列また
71
第4章 PowerSORTのbsortexコマンドを使用する
はレコード分離文字を含むことはできません。
● 被比較フィールドおよび比較フィールドのデータ形式に照合順序変更を指定した場合、
optにフィールドの操作を指定できません。
● 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号
なし固定小数点2進数、システム依存形式固定小数点2進数、システム依存形式符号なしの
自己規定値を10進数で指定する場合、その値は以下の範囲になります。
データ形式
指定可能な値
符号ありのデータ形式
-2147483648 ~ 2147483647
符号なしのデータ形式
0 ~ 4294967295
記述例
例1) 12バイトめの位置から4バイトの外部10進数のフィールドと32バイトめの位置から4バイトの内
部10進数のフィールドが等しいレコードを処理の対象とする場合は、次のように指定します。
include=11.4zdl.eq.31.4pdl
例2) 12バイトめの位置から4バイトの固定小数点2進数のフィールドが30以上のレコードを処理の対
象とする場合は、次のように指定します。
include=11.4fbi.ge.d30
例3) ファイルの先頭から50件めまでのレコードを処理の対象とする場合は、次のように指定します。
include=RECNUM.le.50
例4) 自己規定値の文字列を指定する場合は、次のように指定します。
include="10.5asc.eq.'abcde'"
例5) ダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、次のように指定
します。
include="10.5asc.eq.'ab\"cd'"
例6) クォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、次のように指定します。
include="10.5asc.eq.'abc''d'"
例7) 自己規定値で10進数の指定をする場合は、次のように指定します。
include=10.4zdl.eq.d-1000
4.2.5.5 omitオペランド
入力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを処理の対象から除外します。
omitオペランドは、includeオペランドとは排他関係にあります。
記述形式
omit=condition-expression
condition-expression
選択フィールド(選択条件)を指定します。
condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペ
ランド(condition-expression の記述形式)を参照してください。
4.2.5.6 reconstオペランド
入力ファイルのレコード再編成機能を使用する場合に再編成フィールドを指定します。
入力ファイルのレコード再編成機能を使用する場合、キーフィールド、集約フィールド、出力の選択
72
4.2 bsortexコマンドオプション
フィールドおよび出力の再編成フィールドは、入力レコード再編成後のフィールド位置を指定します。
記述形式
reconst=reconst-definition
reconst-definition
再編成フィールドを指定します。コンマ( , )で区切って複数のreconst-definition を指定できます。
reconst-definition の記述形式
以下にreconst-definition の記述形式を示します。
reconst-definition の記述形式1
pos.len
記述形式1はレコードに存在するフィールドの指定を示します。
指定したフィールドが入力レコードに存在しない場合は、エラーになります。
reconst-definition の記述形式2
self-def.len typ
記述形式2は自己規定値の指定を示します。
reconst-definition の記述形式3
pos.END
記述形式3は入力レコードの指定位置から終端までを再編成フィールドとする場合の指定を示します。
長さの指定は不要です。
指定したフィールドが入力レコードに存在しない場合は、エラーになります。
pos
再編成フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
len
再編成フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
バイナリファイルおよびテキストファイル固定フィールド指定の場合、レコード長を超えるフィール
ドを指定するとエラーになります。
self-def
自己規定値を指定します。
self-def の記述形式を以下に示します。
self-def の記述形式1
'文字列 '
self-def の記述形式2
x16進数
73
第4章 PowerSORTのbsortexコマンドを使用する
self-def の記述形式3
d10進数
typ
自己規定値のデータ形式を指定します。
文字列、16進数 と10進数 のそれぞれで指定可能なデータ形式については、再編成フィールドの自己
規定値に指定可能なデータ形式を参照してください。
END
'END'の固定文字列を指定します。
reconst-definition 記述上の注意事項
● オペランド引数で自己規定値の文字列を指定する場合は、オペランド引数全体をダブルク
ォーテーション( " )で囲みます。
● オペランド引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する
場合は、ダブルクォーテーション( " )の前に円記号( \ )を指定します。
● オペランド引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、
クォーテーション( ' )を2つ続けて指定します。
● 自己規定値の10進数を指定する場合は、符号を指定できます。
● ASCIIコードおよびシフトJISコードは、バイナリファイルの場合、入力ファイルのコード
系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指
定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション
(-option)のicodeオペランド)がASCIIコード系の場合に指定できます。
● EBCDICコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペラ
ンド)がEBCDICコード系の場合に指定できます。
● Unicode UCS-2形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプ
ション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できます。テキ
ストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオ
ペランド)がUnicode系(UCS-2形式)の場合に指定できます。
● Unicode UTF-8形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプ
ション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できます。テキ
ストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオ
ペランド)がUnicode系(UTF-8形式)の場合に指定できます。
● テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むこ
とはできません。
● テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列また
はレコード分離文字を含むことはできません。
● 自己規定値で指定した値とlen で指定した長さが異なるときは、以下に示すように処理し
ます。
― 自己規定値が文字列の場合
— 自己規定値で指定した文字列の長さがlen で指定した長さより短い場合は、
自己規定値を左詰めにして右余白に空白を詰めます。
— 自己規定値で指定した文字列の長さがlen で指定した長さより長い場合は、
エラーとなります。
― 自己規定値が数字または数値の場合
— 自己規定値で指定した値を typ と len で指定したデータ形式と長さに変換
して埋め込みます。
— 変換結果がlen を超える場合は、エラーとなります。
● 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号
74
4.2 bsortexコマンドオプション
なし固定小数点2進数、システム依存形式固定小数点2進数、システム依存形式符号なしの
自己規定値を10進数で指定する場合、その値は以下の範囲になります。
長さ
符号ありのデータ形式
符号なしのデータ形式
1バイト
-128~127
0~255
2バイト
-32768~32767
0~65535
3バイト
-8388608~8388607
0~16777215
-2147483648~2147483647
0~4294967295
4バイト以上
記述例
例1) 入力レコードの5バイトめから10バイトのフィールドを再編成する場合は、次のように指定し
ます。
reconst=4.10
例2) 自己規定値の文字列(abc)を指定する場合は、以下のように指定します。
reconst="'abc'.3asc"
例3) ダブルクォーテーション( ” )を含んだ自己規定値の文字列(ab”cd)を指定する場合は、以下
のように指定します。
reconst="'ab\"cd'.5asc"
例4) クォーテーション( ' )を含んだ自己規定値の文字列(abc’d)を指定する場合は、以下のよう
に指定します。
reconst="'abc''d'.5asc"
例5) 入力レコードの5バイトめからレコードの最後までを再編成する場合は、以下のように指定し
ます。
reconst=4.END
4.2.5.7 eofオペランド
入力ファイルがテキストファイルの場合に、EOF制御文字の扱いを指定します。
記述形式
eof={ effect | ignore }
effect
最初のEOF制御文字をファイルの最後と認識して、最初のEOF制御文字までを入力します。
省略した場合、effectが指定されたものとします。
ignore
EOF制御文字をファイルの最後と認識せず、EOF制御文字以降も入力します。
4.2.5.8 overwriteオペランド
入力ファイルの1つが出力ファイルと同じ場合に、処理を継続することを指定します。
overwriteオペランドを指定すると、入力ファイルに処理結果が上書きされるため、ディスクスペー
スを節約できます。overwriteオペランドを省略して、入力ファイルの1つに出力ファイルと同じファ
イルを指定した場合は、エラーとなります。
overwriteオペランドは、ソート機能のときに有効です。
記述形式
overwrite
75
第4章 PowerSORTのbsortexコマンドを使用する
入力ファイルの1つが出力ファイルと同じ場合、ソート処理中に異常が発生すると、入力
ファイルのデータは保証されない場合がありますので、注意してください。
4.2.6 マージオプション(-merge)
マージ機能を指定します。
マージオプション(-merge)、ソートオプション(-sort)およびコピーオプション(-copy)は互いに排他
関係にあります。
記述形式
-merge [ key=key-definition [ ,key-definition ...] [ key= ...] ]
[ jef=jef-definition [ ,jef-definition ...] [ jef= ...] ]
4.2.6.1 keyオペランド
キーフィールドを指定します。
複数のキーフィールドを指定した場合、指定した順に比較が行われます。
keyオペランドを省略した場合、レコード全体をキーフィールドとみなし、コード順に並べます。
記述形式
key=key-definition [ ,key-definition ...] [ key= ...]
key-definition の記述形式
以下にkey-definition の記述形式を示します。
key-definition の記述形式1
pos.len typ [ opt ]
key-definition の記述形式2
ALL [ opt ]
pos
キーフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
len
キーフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数で
len に指定します。このとき、pos の位置にある1バイトのフィールド値とマスク値の論理積がキー
値になります。
指定可能なデータ形式ごとの長さについては、キーフィールドに指定可能なデータ形式を参照してく
76
4.2 bsortexコマンドオプション
ださい。
typ
キーフィールドのデータ形式をlen に続けて指定します。
指定可能なデータ形式については、キーフィールドに指定可能なデータ形式を参照してください。
opt
キーフィールドの操作をtyp に続けて指定します。
複数の操作を指定する場合は、続けて記述します。バイナリファイルの場合は、a、m、rおよびwが指
定できます。テキストファイルの場合は、全てのキーフィールドの操作が指定できます。aとrを両方
とも省略した場合は、aを指定したものとして動作します。指定可能な操作を以下に示します。
キーフィールドの操作の種類
opt
意味
a
昇順に並べます。rとは排他関係にあります。
b
キーフィールドの先頭の空白とタブを無視します。
d
空白と英数字だけを比較の対象とします。
i
制御文字コードを無視します。
j
英小文字を英大文字として比較します。
m
漢字ソートマージ機能を使用します。
対応するソートオプション(-sort)またはマージオプション(-merge)の
jefオペランドが必要となります。mを指定した場合は、a、b、rの操作だ
けが有効となり、他の指定は無視します。漢字ソートマージ機能で指定可
能なデータ形式は、ASCIIコード、シフトJISコードおよびJEFコードです。
ALLとは同時に指定できません。
n
符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。デー
タ形式がASCIIコード、EBCDICコード、Unicode UCS-2形式またはUnicode
UTF-8形式の場合に指定できます。
Nおよびwとは排他関係にあります。
N
英字と数字の連結データ(例えば、data123など)を英字と数値に分けて評
価し並べます。
英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比
較します。指定フィールドの左から評価し、有効データ後に出現したデー
タは無視します。データ形式がASCIIコード、EBCDICコード、Unicode UCS-2
形式またはUnicode UTF-8形式の場合に指定できます。
nおよびwとは排他関係にあります。
r
降順に並べます。aとは排他関係にあります。
w
複数バイトから成る文字が混在していても文字ごとに比較して並べます。
データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式または
Unicode UTF-8形式で、入力ファイルのコード系(実行環境オプション
(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できま
す。
nおよびNとは排他関係にあります。
キーフィールドのデータ形式に照合順序変更を指定した場合、キーフィールドの操作にa
またはr以外を指定することはできません。
77
第4章 PowerSORTのbsortexコマンドを使用する
ALL
レコード全体をキーフィールドとする場合に指定します。
続けて記述するキーフィールドの操作の指定がなければ、keyオペランドを省略できます。
記述例
例1) レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる場合は、次のように
指定します。
key=0.10asca
例2) レコード全体をキーとして降順に並べる場合は、次のように指定します。
key=ALLr
4.2.6.2 jefオペランド
漢字ソートマージ機能の方式およびふりがなフィールドを指定します。
jefオペランドは、keyオペランドの操作でmを指定したキーフィールドに対応します。このmを指定し
たキーフィールドが漢字フィールドとなります。
記述形式
jef=jef-definition [ ,jef-definition ...] [ jef= ...]
jef-definition の記述形式
form [ odr ] [ pos.len typ ]
form
漢字ソートマージ機能の方式を指定します。指定可能な方式を以下に示します。
form
意味
std
基本方式(漢字属性の順)に並べます。ふりがなフィールドの指定は必要あ
りません。
dic
国語辞典方式(ふりがなの順)に並べます。ふりがなフィールドの指定が必
要となります。
odr
漢字フィールドの漢字属性を指定します。
漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで続け
て指定できます。
指定可能な漢字属性を以下に示します。
odr
意味
B
部首コード順に並べます。
S
総画数順に並べます。
O
音読み順に並べます。
K
訓読み順に並べます。
C
漢字コード順に並べます。
pos
ふりがなフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号
を指定します。
78
4.2 bsortexコマンドオプション
len
ふりがなフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
typ
ふりがなフィールドのデータ形式をlen に続けて指定します。
指定可能なデータ形式を以下に示します。
バイナリファイルの場合
種類
文字
データ形式
typ
長さ(バイト)
ASCIIコード
asc
1~レコード長(注1)
EBCDICコード(注2)
ebc
1~レコード長(注1)
シフトJISコード
sji
1~レコード長(注1)
JEFコード(注2)
jef
2~レコード長(2の倍数) (注1)
テキストファイルの場合
種類
文字
データ形式
ASCIIコード
typ
asc
長さ(バイト)
1~レコード長(注1)
シフトJISコード
sji
1~レコード長(注1)
注1) レコード再編成機能を指定した場合は、入力レコード再編成後のレコード長まで指定できます。
レコード再編成機能については、入力ファイル情報オプション(-input)のreconstオペランドを参照
してください。
注2) 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系
の場合に指定できます。
記述例
例1) レコードの10バイトめから長さ2バイトの漢字フィールド(シフトJISコード)を総画数順、音読
み順で昇順に並べる場合、次のように指定します。
key=9.2sjiam jef=stdSO
例2) レコードの10バイトめから長さ10バイトに漢字フィールド(シフトJISコード)があり、このフ
ィールドに対するふりがなフィールド(シフトJISコード)がレコードの50バイトめから長さ20バイト
に存在するとき、このレコードを国語辞典の並びで昇順に並べる場合、次のように指定します。
key=9.10sjiam jef=dic49.20sji
4.2.7 実行環境オプション(-option)
各種実行環境オプションを指定します。
記述形式
-option [ colseq=col-def [ ,col-def ...] [ colseq= ...] ]
[ fifo ]
[ icode=input-code ]
[ iconv=input-conversion ]
[ memsize=memory-size ]
[ msgfile=message-file ]
[ msglevel=message-level ]
[ tmpdir=temp-directory [ ,temp-directory ...] [ tmpdir= ...] ]
79
第4章 PowerSORTのbsortexコマンドを使用する
4.2.7.1 colseqオペランド
照合順序を変更するための情報を指定します。
記述形式
colseq=col-def [ ,col-def ...] [ colseq= ...]
col-def
照合順序を変更するための情報を指定します。
ccttの形式で記述します。照合順序変更機能では、フィールド中に16進数'cc'と等しいバイトがあれ
ば、そのバイトを16進数'tt'と評価して比較します。コンマ( , )で区切って複数の照合順序を変更
するための情報を指定できます。'cc'で指定されていない16進数は、置き換えられずにそのまま比較
します。
照合順序変更機能は、キーフィールドのデータ形式、選択フィールドの被比較フィールドおよび比較
フィールドのデータ形式にcolを指定した場合に、-optionオプションのcolseqオペランドで指定した
照合順序で比較します。
記述例
例1) 16進数0x20を、16進数0x23として比較する場合は、次のように指定します。
colseq=2023
例2) 同じ16進数に対して複数の照合順序変更を指定した場合は、最後に指定した照合順序の変更が
有効になります。以下の例では、16進数0x20は16進数0x3Aとして比較します。
colseq=2023,6141,203A
4.2.7.2 fifoオペランド
先入力先出力(FIFO)機能を指定します。
指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。この機能を指
定していない場合、キーフィールドの値が同一なレコードの出力順序は不定です。
この機能はソート機能およびマージ機能の場合に有効です。先入力先出力(FIFO)機能は、サプレス機
能とレコード集約機能とは排他関係にあります。
記述形式
fifo
4.2.7.3 icodeオペランド
入力ファイルのコード系を指定します。
記述形式
icode=input-code
input-code
入力ファイルのコード系を指定します。
input-code は、以下から1つを選択して指定します。
80
4.2 bsortexコマンドオプション
input-code
注)
意味
au
ASCIIコード系 (富士通COBOL形式) (省略値)
ac
ASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式)
eb
EBCDICコード系 (注)
u2
Unicode系(UCS-2形式)
u8
Unicode系(UTF-8形式)
EBCDICコード系はバイナリファイルの場合に指定可能です。
4.2.7.4 iconvオペランド
ASCIIコードとEBCDICコード間の変換方式を指定します。
記述形式
iconv=input-conversion
input-conversion
ASCIIコードとEBCDICコード間の変換方式を指定します。
以下の場合にASCIIコードとEBCDICコード間の変換が行われます。
● 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がASCIIコー
ド系でキーフィールドのデータ形式がEBCDICコードの場合におけるキーフィールドの比
較
● 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコ
ード系でキーフィールドのデータ形式がASCIIコードの場合におけるキーフィールドの比
較
● 選択フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己
規定値の変換
● 再編成フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自
己規定値の変換
input-conversion は、以下から1つを選択して指定します。
input-conversion
意味
0
EBCDICコードとUS ASCIIコード間のコード変換をします。(省略値)
1
EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。
2
EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をし
ます。
4.2.7.5 memsizeオペランド
PowerSORTが使用する作業域の大きさを指定します。
記述形式
memsize=memory-size
memory-size
PowerSORTが使用する作業域の大きさをキロバイト数で指定します。32~2097151キロバイトの範囲で
指定します。
memsizeオペランドを省略した場合または0を指定した場合、環境変数BSORT_MEMSIZEの指定があれば、
その大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。
2097152以上の値を指定した場合は、2097151を指定したとみなされます。
81
第4章 PowerSORTのbsortexコマンドを使用する
memsizeオペランドは、環境変数BSORT_MEMSIZEの指定より優先されます。
4.2.7.6 msgfileオペランド
メッセージを出力するファイルパス名を指定します。
記述形式
msgfile=message-file
message-file
メッセージを出力するファイルパス名を指定します。
msgfileオペランドを省略した場合、環境変数BSORT_MSGFILEの指定があればそのファイルにメッセー
ジを出力します。メッセージファイル以外へのメッセージの出力は環境変数BSORT_MSGOUTの指定に従
います。
メッセージファイルパス名は複数指定できません。空白を含むファイル名を指定する場合は、全体を
ダブルクォーテーション( " )で囲みます。
msgfileオペランドは、環境変数BSORT_MSGFILEの指定より優先されます。
4.2.7.7 msglevelオペランド
出力するメッセージのレベルを指定します。
記述形式
msglevel=message-level
message-level
出力するメッセージのレベルを指定します。
msglevelオペランドを省略した場合は、環境変数BSORT_MSGLEVELの指定に従います。msglevelオペラ
ンドも環境変数BSORT_MSGLEVELの指定も省略されている場合は、message-level に1(エラーメッセー
ジを出力)を指定したとみなします。メッセージの出力先は、msgfileオペランド、環境変数
BSORT_MSGFILEおよび環境変数BSORT_MSGOUTにより決まります。
指定可能なメッセージのレベルを以下に示します。
message-level
意味
0
何も出力しません。
1
エラーメッセージを出力します。(省略値)
2
エラーメッセージと情報メッセージを出力します。
● 何も出力しないと指定した場合でも、コマンドシンタックスのエラーとコマンドヘルプは
標準エラー出力に出力します。
● msglevelオペランドは、環境変数BSORT_MSGLEVELの指定より優先されます。
82
4.2 bsortexコマンドオプション
4.2.7.8 tmpdirオペランド
一時ファイルを作成するフォルダ名を指定します。
記述形式
tmpdir=temp-directory
temp-directory
一時ファイルを作成するフォルダ名を指定します。
コンマ( , )で区切って複数のフォルダ名を指定できます。フォルダ名に空白が含まれる場合は、フ
ォルダ名をダブルクォーテーション( " )で囲みます。
● 一時ファイルを作成するフォルダ指定の優先順位については、環境変数BSORT_TMPDIRを参
照してください。
● 誤ったフォルダ名を指定すると意図しないファイルが削除される場合があります。
4.2.8 出力ファイル情報オプション(-output)
出力ファイル情報を指定します。
複数の出力ファイル情報オプション(-output)を指定できます。標準出力に出力する場合は、fileオ
ペランドおよびfilesysオペランドを省略します。なお、標準出力に出力する場合は、複数の出力フ
ァイル情報オプション(-output)を指定できません。
記述形式
-output [ file=file-name [ ,file-name ...] [ file= ...]
[ filesys=file-system ] ]
[
[
[
|
|
[
[
[
[
[
[
maxfilesize=max-filesize ]
maxrecnum=max-recordnumber ]
{ include=condition-expression [ ,condition-expression ] [ include= ...]
omit=condition-expression [ ,condition-expression ] [ omit= ...]
case= { condition-expression [ ,condition-expression ] | other } [ case= ...] } ]
reconst=reconst-definition [ ,reconst-definition ...] [ reconst= ...] ]
idxflag=index-flag ]
idxkey=index-key [ ,index-key ...] [ idxkey= ...] ]
linedlmt=line-delimiter ]
removeeof ]
-output ...]
4.2.8.1 fileオペランド
出力ファイルパス名を指定します。
記述形式
file=file-name
file-name
出力ファイルパス名を指定します。
コンマ( , )で区切って複数の出力ファイルを指定できます。
83
第4章 PowerSORTのbsortexコマンドを使用する
複数の出力ファイルを指定し、かつmaxfilesizeオペランドまたはmaxrecnumオペランドを指定した場
合、maxfilesizeオペランドまたはmaxrecnumオペランドの指定に従って複数のファイルに分割して出
力します。
複数の出力ファイルを指定し、かつmaxfilesizeオペランドおよびmaxrecnumオペランドを指定しなか
った場合、出力ファイルがファイルシステムの許容量を超えたときのリカバリ処理として複数のファ
イルに分割して出力します。このリカバリ処理は、以下のファイルを処理する場合に指定できます。
● システム標準のファイル(テキストファイル、バイナリファイル)
● 指定した出力ファイルをすべて使用しても出力できないレコードが存在する場合は、エラ
ーになります。
● 指定した出力ファイルが1つの場合、maxfilesizeオペランドおよびmaxrecnumオペランド
を指定できません。
● その他のfile-name 記述上の注意事項については、入力ファイル情報オプション(-input)
のfileオペランドを参照してください。
4.2.8.2 filesysオペランド
fileオペランドで指定した出力ファイルのファイルシステムを指定します。
記述形式
filesys=file-system
file-system
出力ファイルのファイルシステムを指定します。
省略時はシステムの標準ファイルシステムを指定したものとします。
指定可能なファイルシステムについては、入力ファイル情報オプション(-input)のfilesysオペラン
ドを参照してください。
4.2.8.3 maxfilesizeオペランド
1つのファイルに出力可能な最大ファイルサイズを指定します。
記述形式
maxfilesize=max-filesize [ K | M | G ]
max-filesize [ K | M | G ]
1つのファイルに出力可能な最大ファイルサイズを指定します。
ファイルサイズがmax-filesize を超える場合、fileオペランドで指定した次の出力ファイルに続き
を出力します。K、M、Gは、max-filesize の単位です。Kはキロバイト単位、Mはメガバイト単位、G
はギガバイト単位であることを示します。なお、K、MおよびGを指定しない場合、単位はバイトです。
maxrecnumオペランドと同時に指定した場合は、先に上限に達した時点で次の出力ファイルに出力し
ます。また、指定した上限に達する前に出力ファイルがファイルシステムの許容量を超えた場合は、
許容量を超えた時点で次の出力ファイルに出力します。
maxfilesizeオペランドは、以下のファイルを処理する場合に指定できます。
● システム標準のファイル(テキストファイル、バイナリファイル)
fileオペランドで指定した出力ファイルが1つの場合、maxfilesizeオペランドは指定でき
84
4.2 bsortexコマンドオプション
ません。
4.2.8.4 maxrecnumオペランド
1つのファイルに出力可能な最大レコード数を指定します。
記述形式
maxrecnum=max-recordnumber
max-recordnumber
1つのファイルに出力可能な最大レコード数を指定します。
レコード数がmax-recordnumber を超える場合、fileオペランドで指定した次の出力ファイルに続き
を出力します。
maxfilesizeオペランドと同時に指定した場合は、先に上限に達した時点で次の出力ファイルに出力
します。また、指定した上限に達する前に出力ファイルがファイルシステムの許容量を超えた場合は、
許容量を超えた時点で次の出力ファイルに出力します。
fileオペランドで指定した出力ファイルが1つの場合、maxrecnumオペランドは指定できま
せん。
4.2.8.5 includeオペランド
出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを出力の対象とします。
includeオペランドは、omitオペランドおよびcaseオペランドとは排他関係にあります。
記述形式
include=condition-expression
condition-expression
選択フィールド(選択条件)を指定します。
コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となりま
す。複数のincludeオペランドを指定した場合は、選択条件の論理和となります。
condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペ
ランド(condition-expression の記述形式)を参照してください。
4.2.8.6 omitオペランド
出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを処理の対象から除外します。
omitオペランドは、caseオペランドおよびincludeオペランドとは排他関係にあります。
記述形式
omit=condition-expression
condition-expression
選択フィールド(選択条件)を指定します。
コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となりま
す。複数のomitオペランドを指定した場合は、選択条件の論理和となります。
85
第4章 PowerSORTのbsortexコマンドを使用する
condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペ
ランド(condition-expression の記述形式)を参照してください。
4.2.8.7 caseオペランド
出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを出力の対象とします。
caseオペランドは、includeオペランドおよびomitオペランドとは排他関係にあります。
記述形式
case={ condition-expression | other }
condition-expression
選択フィールド(選択条件)を指定します。
ただし、これより前に指定した出力ファイル情報オプション(-output)のcaseオペランドで出力され
たレコードは出力の対象から除外されます。
コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となりま
す。複数のcaseオペランドを指定した場合は、選択条件の論理和となります。
condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペ
ランド(condition-expression の記述形式)を参照してください。
other
出力ファイル情報オプション(-output)のcaseオペランドで出力されなかったレコードを出力の対象
とします。
記述例
50バイトめから4バイトの内部10進数のフィールドが100以上のレコードをbsortout1に出力し、
bsortout1に出力されなかったレコードの内80バイトめから8バイトの外部10進数のフィールドが50
未満のレコードをbsortout2に出力し、bsortout1にもbsortout2にも出力されなかったレコードを
bsortout3に出力する場合、以下のように指定します。
-output file=bsortout1 case=49.4pdl.ge.d100
-output file=bsortout2 case=79.8zdl.lt.d50
-output file=bsortout3 case=other
4.2.8.8 reconstオペランド
出力ファイルのレコード再編成機能を使用する場合に再編成フィールドを指定します。
記述形式
reconst=reconst-definition
reconst-definition
再編成フィールドを指定します。
出力ファイルのレコード選択処理の後に、reconst-definitionで指定した再編成フィールドに従って
レコードを再編成します。
reconst-definition の記述形式については、入力ファイル情報オプション(-input)のreconstオペラ
ンド(reconst-definition の記述形式)を参照してください。
4.2.8.9 idxflagオペランド
富士通COBOLファイルシステムの索引ファイルにおける、インデックスの作成方法を指定します。
86
4.2 bsortexコマンドオプション
記述形式
idxflag=index-flag
index-flag
次のものから選択して指定します。複数指定する場合は、続けて指定します。
index-flag
意味
c
インデックスに圧縮キー指定を示します。
r
レコードのデータ圧縮指定を示します。
4.2.8.10 idxkeyオペランド
出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを
指定します。
富士通COBOLファイルシステムの索引ファイルの場合は、idxkeyオペランドを省略できません。
記述形式
idxkey=index-key [ ,index-key ...]
index-key
インデックスフィールドを指定します。
はじめに主キーを指定し、その後に副キーを指定します。
index-key の記述形式
pos.len typ opt
pos
インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。
len
インデックスフィールドの長さをバイト数で指定します。
typ
インデックスフィールドのデータ形式をlen に続けて指定します。
指定可能なデータ形式と長さを以下に示します。
長さ
種類
データ形式
typ
(バイト)
文字
ASCIIコード
意味
asc
1~254
富士通COBOLのCHARTYPE
Unicode UCS-2形式(注)
uc2
2~254
(2の倍数)
富士通COBOLのCHARTYPE
Unicode UTF-8形式
ut8
1~254
富士通COBOLのCHARTYPE
注) Unicode UCS-2形式のバイトオーダはLittle endianとなります。
opt
インデックスフィールドの操作をtyp に続けて指定します。指定可能な操作を以下に示します。
最終セグメントには、必ずeを指定します。
opt
意味
a
昇順に並べます。
d
インデックスに重複キー指定を示します。
e
セグメントの終りを示します。
87
第4章 PowerSORTのbsortexコマンドを使用する
4.2.8.11 linedlmtオペランド
出力ファイル内のレコード分離文字を指定します。
テキストファイルのときに有効です。
記述形式
linedlmt=line-delimiter
line-delimiter
出力ファイル内のレコード分離文字を指定します。
指定可能なレコード分離文字を以下に示します。省略時は、入力ファイル(複数の入力ファイルを指
定した場合は先頭の入力ファイル)のレコード分離文字と同じになります。
line-delimiter
意味
lf
LFをレコード分離文字として扱います。
cr
CRをレコード分離文字として扱います。
crlf
CRLFをレコード分離文字として扱います。
4.2.8.12 removeeofオペランド
出力ファイルがテキストファイルの場合に、EOF制御文字を取り除きます。
記述形式
removeeof
4.2.9 入力レコード情報オプション(-record)
入力レコード情報を指定します。
記述形式
-record [ recform=record-format ] [ fldsep=field-separate ]
4.2.9.1 recformオペランド
レコード形式を指定します。
記述形式
recform=record-format
record-format
レコード形式を指定します。
システムの標準ファイルシステムのファイルを処理する場合にレコード形式の指定を省略すると、バ
イナリファイル固定長レコード形式を指定したものとして動作します。システムの標準ファイルシス
テム以外のファイルまたはテキストファイルを処理する場合は省略できません。指定可能なレコード
形式については、PowerSORTの入出力環境を参照してください。
次から1つを選択して指定します。
record-format
意味
88
fix
バイナリファイル固定長レコード形式
var
バイナリファイル可変長レコード形式
txtfix
テキストファイル固定フィールド指定のレコード形式
txtflt
テキストファイル浮動フィールド指定のレコード形式
4.2 bsortexコマンドオプション
システムの標準ファイルシステムのファイルを処理する場合は、レコード形式にバイナリ
ファイル可変長レコード形式を指定できません。
4.2.9.2 fldsepオペランド
テキストファイル浮動フィールド指定のレコード形式の場合に、フィールド分離文字列を指定します。
記述形式
fldsep=field-separate
field-separate
テキストファイル浮動フィールド指定のレコード形式の場合に、フィールド分離文字列を指定します。
省略時は、タブまたは空白をフィールド分離文字として扱います。
フィールド分離文字列に空白を含む場合は、フィールド分離文字列をダブルクォーテーション( " )
で囲みます。フィールド分離文字列にダブルクォーテーション( " )を指定する場合は、ダブルクォ
ーテーション( " )の前に円記号( \ )を指定します。
記述例
例1) フィールド分離文字列として、文字列(SEPARATE)を指定します。
fldsep=SEPARATE
例2) フィールド分離文字列として、文字列(F S)を指定します。
fldsep="F S"
例3) フィールド分離文字列として、文字(')を指定します。
fldsep='
例4) フィールド分離文字列として、文字(")を指定します。
fldsep=\"
例5) フィールド分離文字列として、文字(\)を指定します。
fldsep=\
例6) フィールド分離文字列として、文字列(**)を指定します。
fldsep=**
例7) フィールド分離文字列として、文字列(* *)を指定します。
fldsep="* *"
4.2.10 ソートオプション(-sort)
ソート機能を指定します。
ソートオプション(-sort)、マージオプション(-merge)およびコピーオプション(-copy)は互いに排他
関係にあります。ソートオプション(-sort)、マージオプション(-merge)およびコピーオプション
(-copy)を省略した場合は、レコード全体をキーとしたソート機能を指定したものとして処理します。
各オペランドの説明は、マージオプション(-merge)を参照してください。
89
第4章 PowerSORTのbsortexコマンドを使用する
記述形式
-sort [ key=key-definition [ ,key-definition ...][ key= ...] ]
[ jef=jef-definition [ ,jef-definition ...] [ jef= ...] ]
4.2.11 レコード集約オプション(-summary)
レコード集約機能またはサプレス機能を使用する場合に、集約フィールドまたはサプレス機能を指定
します。
レコード集約処理またはサプレス処理は、出力処理の前にすべての出力レコードに対して行います。
テキストファイルの場合、レコード集約処理は、ASCIIコード、Unicode UCS-2形式およびUnicode UTF-8
形式で記述された数字(半角)だけを処理の対象とします。
レコード集約オプション(-summary)はソート機能とマージ機能の場合に有効です。また、先入力先出
力(FIFO)機能(実行環境オプション(-option)のfifoオペランド)とは排他関係にあります。
記述形式
-summary { field=summary-definition [ ,summary-definition ...] [ field= ...]
| suppress } [ { first | last } ]
4.2.11.1 fieldオペランド
レコード集約機能を使用する場合に、集約フィールドを指定します。
レコード集約機能は、指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1
つのレコードにする機能です。suppressオペランドとは排他関係にあります。
記述形式
field=summary-definition
summary-definition
集約フィールドを指定します。
summary-definition の記述形式
pos.len typ [ opt ]
pos
集約フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
len
集約フィールドの長さをバイト数で指定します。
詳細は集約フィールドに指定可能なデータ形式を参照してください。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、指定したフィールド長に拡張して処理します。
typ
集約フィールドのデータ形式を指定します。
詳細は集約フィールドに指定可能なデータ形式を参照してください。
opt
テキストファイルの場合に集約フィールドの出力形式を指定します。バイナリファイルの場合に指定
90
4.2 bsortexコマンドオプション
するとエラーとなります。指定可能な出力形式を以下に示します。
opt
意味
i
集約フィールドの値に符号をつけます。uとは排他関係にあります。
u
集約フィールドの値が負の値の場合だけ符号(-)をつけます。iとは排他関
係にあります。
z
集約フィールドの値がフィールド長に満たない場合、左余白に'0'を詰め
ます。例えば、集約フィールドの値が1234という4桁の数字であり、集約
フィールド長が6バイトの場合、001234という数字にします。b、dとは排
他関係にあります。
b
集約フィールドの値がフィールド長に満たない場合、左余白に空白を詰め
ます。例えば、集約フィールドの値が1234という4桁の数字であり、集約
フィールド長が6バイトの場合、__1234 (_は空白を表わす)という数字に
します。z、dとは排他関係にあります。
d
集約フィールドの先頭から空白、タブおよび'0'を削除します。集約フィ
ールドの先頭に空白、タブおよび'0'がある場合、左から評価し、'0'以外
の数字が出現するまでの空白、タブおよび'0'を削除します。例えば、
'00123'の場合、'123'という数字にします。ただし、集約フィールドが0(0、
0000、+000など)の場合、最後の'0'は削除されません。テキストファイル
浮動フィールド指定の場合に指定可能です。z、bとは排他関係にあります。
集約フィールド指定時の注意事項
● firstオペランドおよびlastオペランドのどちらも指定しなかった場合、集約処理対象と
なったレコードのうち、どのレコードが出力されるかは不定です。
● 集約フィールドは、キーフィールドおよび他の集約フィールドと重ならないように指定し
ます。また、集約フィールドはレコード内に完全に含まれている必要があります。
● レコード集約機能を使用する場合、キーフィールドの指定は省略できません。
● 集約フィールドの加算処理中にオーバフローが生じた場合の動作は、環境変数
BSORT_SUMOVERCONTの指定によります。
● 小数点を含む数字の集約はできません。
テキストファイルについての注意事項
● テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式
で記述された数字(半角)だけを処理の対象とします。
● テキストファイル浮動フィールド指定の場合、集約結果は指定されたフィールド長で処理
されます。指定したフィールド長よりフィールドが長い場合、数字の左から指定フィール
ド長分が有効となります。逆に指定したフィールド長よりフィールドが短い場合、指定し
たフィールド長に拡張して処理します。
● テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現
れたことにより集約フィールドの位置が変わる場合は、正しく動作しません。
● optのdは、テキストファイル浮動フィールド指定の場合に指定可能です。テキストファイ
ル固定フィールド指定の場合はエラーになります。
● optのiを指定し、集約した値が0になった場合は符号(+)を付けます。
● optのbを指定し、符号がつく場合、符号は数字部の直前に付加されます。
● optのiおよびuを省略した場合は、以下のように処理します。
― 集約結果が負の値の場合は、集約結果に符号(-)をつけます。
― 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を
つけません。
― 符号なしデータ同士を集約した場合は、集約結果に符号をつけません。
― 符号なしデータと符号付きデータを集約して、結果が0の場合は、符号をつけませ
91
第4章 PowerSORTのbsortexコマンドを使用する
ん。
― 符号付きデータ同士を集約した場合は集約結果に符号をつけます。集約した結果が
0の場合は+ 符号を付けます。
● 集約フィールドの値に符号をつける場合、集約フィールドの値が集約フィールド長を満た
しており、符号が付けられないときはオーバフローとなります。
● optのzおよびbを省略した場合は、以下のように処理します。
― 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果
が満たない場合は、集約フィールドの左余白に'0'を詰めます。
— 左余白に'0'が詰められているデータ同士のとき
— 左余白に'0'が詰められているデータと左余白に空白が詰められているデー
タのとき
— 左余白に'0'が詰められているデータと左余白にタブが詰められているデー
タのとき
― 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果
が満たない場合は、集約フィールドの左余白に空白を詰めます。
— 左余白に空白が詰められているデータ同士のとき
— 左余白にタブが詰められているデータ同士のとき
— 左余白に空白が詰められているデータと左余白にタブが詰められているデ
ータのとき
● 集約対象でないレコード(キーフィールドの値が同一である他のレコードが存在しないレ
コード)の集約フィールドは、以下のように処理します。
― optの指定がある場合は、optで指定された形式で出力します。
― optの指定がない場合は、入力されたままの形式で出力されます。
記述例
レコード集約機能を使用し、入力レコードの7バイトめから8バイトの内部10進数のフィールドを集約
フィールドに指定する場合は、次のように指定します。
-summary field=6.8pdl
4.2.11.2 suppressオペランド
サプレス機能を指定します。
サプレス機能は、指定したキーフィールドの値が同一のとき、1つのレコードを残して他を削除する
機能です。fieldオペランドとは排他関係にあります。
記述形式
suppress
記述例
サプレス機能を使用する場合は次のように指定します。
-summary suppress
4.2.11.3 firstオペランド
同一キーレコードの内、最初に入力したレコードを出力します。
lastオペランドとは排他関係にあります。どちらも指定しない場合、出力されるレコードは不定です。
記述形式
first
92
4.2 bsortexコマンドオプション
記述例
レコード集約機能を使用し、入力レコードの10バイトめから4バイトの外部10進数のフィールドを集
約フィールドに指定し、同一キーレコードの内、最初に入力したレコードを出力する場合は次のよう
に指定します。
-summary field=9.4zdl first
4.2.11.4 lastオペランド
同一キーレコードの内、最後に入力したレコードを出力します。
firstオペランドとは排他関係にあります。どちらも指定しない場合、出力されるレコードは不定で
す。
記述形式
last
記述例
サプレス機能を使用し、同一キーレコードの内、最後に入力したレコードを出力する場合は次のよう
に指定します。
-summary suppress last
93
第5章 OCXを使用してPowerSORTを使用する
ここではPowerSORT OCXについて説明します。
5.1 PowerSORT OLEカスタムコントロールとは
5.1 PowerSORT OLEカスタムコントロールとは
PowerSORT OLEカスタムコントロール(以降、OCXと表記します)とは、PowerSORTをOLEコンテナアプリ
ケーション上で簡単に呼び出すことができるコントロールです。OCXをサポートしているプログラミ
ング言語で使用することができます。
PowerSORT OCXをフォームに配置して、必要なプロパティを設定することにより、少量のコードを作
成するだけで、大量データに対応したソート処理またはマージ処理をアプリケーションプログラムに
追加できます。なお、PowerSORT OCXは、デザイン時にはフォーム上に表示され、実行時には非表示
となります。
PowerSORT OCXは、Webページおよびインターネットでの動作についてはサポートしていま
せん。
95
第5章 OCXを使用してPowerSORTを使用する
5.2 PowerSORT OCXのプロパティシート
PowerSORT OCXをフォームに配置して、必要なプロパティを設定します。
プロパティシートはデザイン時に参照が可能で、作成アプリケーションにおけるPowerSORT OCXの初
期値を設定することができます。各プロパティについての詳細は各プロパティの説明を参照してくだ
さい。
5.2.1 「File」プロパティページ
入出力ファイル、レコード長関連のプロパティを指定するページです。
書式など各プロパティの詳細は、各プロパティの説明を参照してください。
[参照]
●
●
●
●
●
InputFilesプロパティ
InputFileTypeプロパティ
MaxRecordLengthプロパティ
OutputFileプロパティ
OutputFileTypeプロパティ
● EnableOverwriteFileプロパティ
96
5.2 PowerSORT OCXのプロパティシート
Btrieve Informationダイアログボックス
Btrieveファイルに関するプロパティを設定するダイアログボックスです。
このダイアログボックスは、「File」プロパティページのInputFileTypeプロパティまたは
OutputFileTypeプロパティにBtrieveファイルを指定したときに「Btrieve Info」ボタンが有効とな
り、出力ファイルに関する情報を入力できます。
InputFileTypeプロパティまたはOutputFileTypeプロパティにBtrieveファイルを指定していない場
合は、これらのプロパティは無視されます。
書式など各プロパティの詳細は、各プロパティの説明を参照してください。
[参照]
● BtrieveInfileOwnerNameプロパティ
● BtrieveIndexKeyプロパティ
● BtrieveFileInfoプロパティ
Fujitsu COBOL85 Indexダイアログボックス
COBOL索引ファイルに関するプロパティを設定するダイアログボックスです。
「File」プロパティページでOutputFileTypeプロパティに富士通COBOL索引ファイルを指定したとき
に、
「Index Info」ボタンが有効となり、出力ファイルに関する追加情報を入力することができます。
OutputFileプロパティに富士通COBOL索引ファイルを指定していない場合は、このプロパティは無効
となります。
書式など各プロパティの詳細は、各プロパティの説明を参照してください。
[参照]
● FjcobKeyCompressionプロパティ
97
第5章 OCXを使用してPowerSORTを使用する
● FjcobDataCompressionプロパティ
● FjcobPrimeKeyプロパティ
● FjcobAlternateKeyプロパティ
5.2.2 「Disposal」プロパティページ
実行する処理を指定するページです。
書式など各プロパティの詳細は、各プロパティの説明を参照してください。
[参照]
● DisposalNumberプロパティ
5.2.3 「KeyField」プロパティページ
キーフィールドまたはキーフィールドを省略した場合のキーフィールドの操作を指定するプロパテ
ィページです。
書式など各プロパティの詳細は、各プロパティの説明を参照してください。
98
5.2 PowerSORT OCXのプロパティシート
[参照]
●
●
●
●
●
KeyCmdStrプロパティ
CollationOrderプロパティ
Reverseプロパティ
IgnoreControlCodeプロパティ
AlphaNumOnlyプロパティ
● SkipLeadingBlankプロパティ
● CompareAsUpperCaseプロパティ
5.2.4 「Record」プロパティページ
フィールド分離文字またはレコード分離文字などのレコード情報を指定するプロパティページです。
書式など各プロパティの詳細は、各プロパティの説明を参照してください。
99
第5章 OCXを使用してPowerSORTを使用する
[参照]
● LineDelimiterプロパティ
● FieldDefinitionプロパティ
● FieldDelimiterプロパティ
5.2.5 「Option」プロパティページ
レコード単位の処理を指定するプロパティページです。
書式など各プロパティの詳細は、各プロパティの説明を参照してください。
[参照]
● RconCmdStrプロパティ
● SelCmdStrプロパティ
● HandlingSameKeyプロパティ
● SumCmdStrプロパティ
● InputFilesSkiprecプロパティ
5.2.6 「Environment」プロパティページ
PowerSORTが使用するメモリ量、一時ファイルのフォルダ名など動作環境を設定するプロパティペー
ジです。
書式など各プロパティの詳細は、各プロパティの説明を参照してください。
100
5.2 PowerSORT OCXのプロパティシート
[参照]
●
●
●
●
●
TempDirプロパティ
UsableMemorySizeプロパティ
MessageLevelプロパティ
MessageFileNameプロパティ
DispMessageプロパティ
101
第5章 OCXを使用してPowerSORTを使用する
5.3 実行前に設定するプロパティ
ここでは、PowerSORT OCXのプロパティについて説明します。
各プロパティの説明中、設定値の個所はVisual Basicのデータ型を記述しています。Visual Basic
のデータ型に関しては、Visual Basicのデータ型とPowerSORTのデータ形式の関係を参照してくださ
い。
5.3.1 AlphaNumOnlyプロパティ
キーフィールドとして比較する文字を空白、タブおよび英数字のみに設定します。
構文
object.AlphaNumOnly = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
キーフィールドとして比較する文字を空白および英数字のみとするかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
AlphaNumOnlyプロパティの設定値は次のとおりです。
設定値
意味
True
空白と英数字のみを比較の対象とします。
False
すべての文字を比較の対象とします。(省略値)
解説
● Trueを指定すると、空白および英数字のみを取り出して比較し、レコードの順序を決定し
ます。
● このプロパティで指定された値は、テキストファイルのソート処理(DisposalNumber = 0)
またはマージ処理(DisposalNumber = 1)において、キーフィールドを省略した場合に有効
となります。
● この指定を省略した場合、すべての文字を比較の対象とします。
[参照]
●
●
●
●
●
CollationOrderプロパティ
CompareAsUpperCaseプロパティ
IgnoreControlCodeプロパティ
Reverseプロパティ
SkipLeadingBlankプロパティ
5.3.2 AlternateModeプロパティ
EBCDICコードとASCIIコード間の変換方式を指定します。
102
5.3 実行前に設定するプロパティ
構文
object.AlternateMode = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
EBCDICコードとASCIIコード間の変換方式を設定します。
設定する値については、次の設定値を参照してください。
設定値
AlternateModeプロパティの設定値は次のとおりです。
設定値
意味
0
EBCDICコードとUS ASCIIコード間のコード変換をします。(省略値)
1
EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。
2
EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をします。
解説
● 入力ファイルのコード系がASCIIコード系でデータ形式がEBCDICコードの場合、または入
力ファイルのコード系がEBCDICコード系でデータ形式がASCIIコードの場合におけるコー
ドの変換方式を指定します。
● この指定を省略した場合、EBCDICコードとUS ASCIIコード間のコード変換をします。
5.3.3 BtrieveFileInfoプロパティ
Btrieveファイルを出力ファイルとする場合のファイル情報を指定します。
構文
object.BtrieveFileInfo = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
ファイル情報を記述形式に従って指定します。
stringの記述形式
L.S [opt]
L
4から4096バイトの範囲でレコード長を指定します。
レコード長の指定は省略できません。
S
512から4096の範囲でページサイズを指定します。
ページサイズの指定は省略できません。
103
第5章 OCXを使用してPowerSORTを使用する
opt
必要に応じて、以下のオプションを指定します。
オプションの指定は省略できます。また、複数のオプションを同時に指定できます。
ただし、f10、f20およびf30を複数指定した場合は、最後に指定したオプションが有効となります。
オプション
意味
注)
d
データ圧縮
v
可変長レコード
b
後続ブランク除去
a
プリアロケーション (注)
f10
10%スペース確保
f20
20%スペース確保
f30
30%スペース確保
プリアロケーションを指定する場合は、aに続けて割当てページ数を指定します。
例) a10
解説
● 出力ファイルにBtrieveファイル(OutputFileType = 8)を指定した場合に、ファイル作成
に必要な情報を指定します。
● ファイル情報の詳細についてはBtrieveのマニュアルを参照ください。
Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。
5.3.4 BtrieveIndexKeyプロパティ
Btrieveファイルを出力ファイルとする場合のインデックス情報を指定します。
構文
object.BtrieveIndexKey = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
インデックス情報を記述形式に従って指定します。
stringの記述形式
S.P.LType[opt] [S.P.LType[opt]] ...
S
1から24の範囲でセグメントを指定します。
セグメントの指定は省略できません。
P
インデックスの位置を指定します。
位置の指定は省略できません。
104
5.3 実行前に設定するプロパティ
L
インデックスの長さを指定します。
長さの指定は省略できません。
Type
インデックスの形式を以下の中から1つ指定します。
形式の指定は省略できません。
形式
指定可能形式
標準キー形式
stg、bin
拡張キー形式
str、int、flo、dat、tim、dec、mon、log、num、btl、lst、zst、uns、
aut
opt
必要に応じて、以下のオプションを指定します。
オプションの指定は省略できます。また、複数のオプションを同時に指定できます。
オプション
意味
d
重複キー
m
変更可能キー
n
ヌルキー(注)
r
降順キー
u
マニュアルキー(注)
注) ヌルキー、マニュアルキー指定時は、nおよびuの後に、00からFFの1バイトの16進コードを指
定します。
例) n00
解説
● 出力ファイルにBtrieveファイル(OutputFileType = 8)を指定した場合に、ファイル作成
に必要な情報を指定します。複数のインデックスを指定する場合は、空白で区切ります。
● インデックス情報の各指定値の詳細についてはBtrieveのマニュアルを参照ください。
Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。
[参照]
● BtrieveFileInfoプロパティ
5.3.5 BtrieveInfileOwnerNameプロパティ
Btrieveファイルシステムで必要な場合に、入力ファイルに対してオーナーネームを指定します。
構文
object.BtrieveInfileOwnerName = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
オーナーネームを指定します。
105
第5章 OCXを使用してPowerSORTを使用する
解説
● 入力ファイルにBtrieveファイルを指定した場合で、ファイルの入力にオーナーネームの
指定が必要な場合に、最大8文字までのオーナーネームを指定します。入力ファイルが複
数ある場合は、入力ファイルの指定順に合わせて、オーナーネームを空白で区切って指定
します。なお、オーナーネームでは、大文字と小文字が区別されます。
● このプロパティで指定された値は、InputFileTypeプロパティでBtrieveファイルを設定し
た場合に有効となります。この条件に該当しない場合、指定値は無効となります。
Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。
[参照]
● InputFilesプロパティ
5.3.6 CollationOrderプロパティ
キーフィールドの照合順序を指定します。
照合順序とはレコードの大小関係を決めるための比較の方法です。
構文
object.CollationOrder = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
キーフィールドの照合順序を設定します。
設定する値については、次の設定値を参照してください。
設定値
CollationOrderプロパティの設定値は次のとおりです。
設定値
意味
0
指定なし(システムの照合順序)。(省略値)
1
複数バイトが混在しても文字単位に比較します。
2
符号(+、-)文字を含む数字を算術的に扱います。
3
文字列、数字列と続いたデータを文字部と数字部で分けて比較します。
解説
● この指定を省略した場合、または0を設定した場合はシステムの照合順序で比較します。
レコードは文字コードの大小関係で並びが決定します。
● 1を設定すると、複数バイトから成る文字が混在していても、文字ごとに比較して並べま
す。
● 2を設定すると、符号を含んだ数字の文字列を算術的な値で比較します。文字列中に数字
以外の文字が存在した場合の保証はされません。
● 3を設定すると、英字と数字が連結されたデータを英字と数値に分けて比較します。英字
だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。指定フィ
106
5.3 実行前に設定するプロパティ
ールドの左から評価し、有効データ後に出現したデータは無視します。
● このプロパティで指定された値は、テキストファイルの処理でソート処理
(DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)において、キーフィールド
を省略した場合に有効となります。
[参照]
●
●
●
●
●
AlphaNumOnlyプロパティ
CompareAsUpperCaseプロパティ
IgnoreControlCodeプロパティ
Reverseプロパティ
SkipLeadingBlankプロパティ
5.3.7 CompareAsUpperCaseプロパティ
英小文字を英大文字として扱うように設定します。
構文
object.CompareAsUpperCase = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
英小文字を英大文字として扱うかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
booleanの設定値は次のとおりです。
設定値
意味
True
英小文字を英大文字として扱います。
False
英小文字と英大文字は別々に扱います。(省略値)
解説
● Trueを指定した場合は、英小文字は英大文字と等しいとみなします。これにより、
“a”と
“A”は必ず“b”および“B”より小さい文字と評価され、同じ英字の文字列を集めるこ
とができます。ただし、“a”と“A”の順序は不定になります。
● この指定を省略した場合は、それぞれの文字コードで順序が決まります。
● このプロパティで指定された値は、テキストファイルの処理でソート処理
(DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)のキーフィールドを省略し
た場合に有効となります。
例) CompareAsUpperCaseプロパティの設定値による並びの違いを以下に示します。
Trueを指定した場合の並び
A→a→b→B→…→y→Y→Z→z
Falseを指定した場合の並び
A→B→C→…→X→Y→Z→a→b→c→…→x→y→z
[参照]
● AlphaNumOnlyプロパティ
● CollationOrderプロパティ
● IgnoreControlCodeプロパティ
107
第5章 OCXを使用してPowerSORTを使用する
● Reverseプロパティ
● SkipLeadingBlankプロパティ
5.3.8 DispMessageプロパティ
PowerSORT OCXのメッセージダイアログボックス出力について指定します。
構文
object.DispMessage = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
メッセージダイアログボックスを表示するかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
DispMessageプロパティの設定値は次のとおりです。
設定値
意味
True
メッセージダイアログボックスを表示します。
False
メッセージダイアログボックスは表示しません。(省略値)
解説
● Trueを指定すると、画面にメッセージダイアログボックスを表示します。
● この指定を省略した場合、メッセージダイアログボックスは表示されません。
● いずれの場合でもエラー情報はErrorCodeプロパティ、ErrorDetailプロパティおよび
SubErrorCodeプロパティにエラーコードが設定されます。
[参照]
● エラー詳細コード(ErrorCodeが0,-1,-2のとき)
● エラー詳細コード(ErrorCodeが-3のとき)
● エラー詳細コード(ErrorCodeが-4のとき)
● 富士通COBOLファイルに関するエラーコード
5.3.9 DisposalNumberプロパティ
実行する主要機能を設定します。
構文
object.DisposalNumber = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
実行する主要機能を設定します。
設定する値については、次の設定値を参照してください。
108
5.3 実行前に設定するプロパティ
設定値
DisposalNumberプロパティの設定値は次のとおりです。
設定値
意味
0
ソート機能を実行します。(省略値)
1
マージ機能を実行します。
2
コピー機能を実行します。
解説
● この指定を省略した場合、ソート機能が実行されます。
[参照]
● 主要機能
● オプション機能と主要機能の組合せ
5.3.10 EnableOverwriteInputFileプロパティ
ソート処理の場合に、入力ファイルへの上書き処理について指定します。
構文
object.EnableOverwriteInputFile = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
入力ファイルの上書きを許可するかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
EnableOverwriteInputFileプロパティの設定値は次のとおりです。
設定値
意味
True
入力ファイルの上書きを許可します。
False
入力ファイルの上書きは許可しません。(省略値)
解説
● 入力ファイルの既存データをソート処理結果に書き換える、上書き許可を指定します。ソ
ート処理(DisposalNumber = 0)のとき、OutputFileプロパティで設定した出力ファイル
名が、InputFilesプロパティで設定した入力ファイル名の1つと一致した場合に有効とな
ります。
● EnableOverwriteInputFileプロパティは、ファイルを保護する機能です。Falseを設定し
た状態で、出力ファイル名を入力ファイル名の1つと同じ名前にした場合、処理開始前に
エラー終了します。入力ファイル中のデータを書き換えてよい場合にのみTrueを設定して
ください。
● この指定を省略した場合、入力ファイルの上書きは許可しません。
109
第5章 OCXを使用してPowerSORTを使用する
Trueを指定し、ソート処理中に異常が発生した場合、入力ファイルのデータは保証されな
い場合がありますので、注意してください。
5.3.11 FieldDefinitionプロパティ
テキストファイルを処理する場合のフィールドの指定方法を設定します。
構文
object.FieldDefinition = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
フィールドの指定方法を設定します。
設定する値については、次の設定値を参照してください。
設定値
FieldDefinitionプロパティの設定値は次のとおりです。
設定値
意味
0
浮動フィールドで指定します。(省略値)
1
固定フィールドで指定します。
解説
● テキストファイルを処理する場合のフィールドの指定方法を設定します。
● 浮動フィールドは、フィールドの位置をフィールド分離文字によって区切られたフィール
ド番号によって指定します。フィールド分離文字の位置によりフィールドの位置が決まる
ため、レコードごとにフィールドの位置(カラム位置)は異なります。フィールド分離文
字はFieldDelimiterプロパティで指定できます。
● 固定フィールドは、フィールドの位置をレコードの先頭からのカラム位置で指定します。
● この指定を省略した場合、フィールドの位置を浮動フィールドで指定します。
[参照]
● SelCmdStrプロパティ
● RconCmdStrプロパティ
● SumCmdStrプロパティ
● HandlingSameKeyプロパティ
5.3.12 FieldDelimiterプロパティ
テキストファイル浮動フィールド指定の場合のフィールド分離文字を設定します。
構文
object.FieldDelimiter = string
110
5.3 実行前に設定するプロパティ
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
フィールド分離文字を指定します。
解説
● テキストファイル浮動フィールド指定の場合のフィールド分離文字を設定します。
● 浮動フィールド形式で各種フィールドを指定する場合に、レコード内のフィールドの区切
りを示すフィールド分離文字を指定できます。この指定を省略した場合、空白およびタブ
をフィールド分離文字とします。
● フィールド分離文字は、文字列または16進数で指定します。
● 文字列で指定する場合は、全体をクォーテーション( ' )で囲みます。クォーテーション
( ' )を分離文字とする場合は、クォーテーション( ' )の前に円記号( \ )を指定します。
また、円記号( \ )をフィールド分離文字とする場合は、円記号( \ )を2つ続けて指定し
ます。
● 16進数で指定する場合は、先頭にxを付け16進コードを続けて設定します。タブなど文字
として入力できないコードを指定できます。
● レコード分離文字と同じ文字は指定できません。レコード分離文字は、LineDelimiterプ
ロパティで指定します。
● 浮動フィールドのフィールド番号は、先頭のフィールドが0となります。
● フィールド分離文字の指定を省略した場合、レコードの先頭の空白またはタブは先頭のフ
ィールドに含まれます。レコードの先頭以外の空白またはタブが連続している場合は、最
初の空白がフィールド分離文字となり、残りの空白はフィールドの一部となります。
● フィールド分離文字を指定し、フィールド分離文字が連続して存在した場合、2つの分離
文字の間に空フィールドが存在するとみなします。フィールド分離文字はフィールドには
含まれません。
記述例
フィールド分離文字の指定例を示します。
文字列指定
1つの空白
' '
1つの円記号( \ )
'\\'
空白とクォーテーション( ' )
' \''
16進数指定
タブの指定
x09
[参照]
● FieldDefinitionプロパティ
5.3.13 FjcobAlternateKeyプロパティ
富士通COBOL索引ファイルの場合に、副キーを設定します。
111
第5章 OCXを使用してPowerSORTを使用する
構文
object.FjcobAlternateKey = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
富士通COBOL索引ファイルの副キーを記述形式に従って指定します。
stringの記述形式
[D] (pos,len [/pos,len] ...) [ [D] (pos,len [/pos,len] ...) ...]
D
副キーとするデータ項目が、他のキーと重複する場合に指定します。
pos
富士通COBOL索引ファイルの副キーの位置を指定します。
位置はキーとするデータ項目のレコードの先頭からの相対位置(0バイトから始まるバイト数)を指定
します。
len
索引ファイルの副キーの長さを指定します。
posに続けてコンマ( , )で区切って指定します。なお、主キー(FjcobPrimeKeyプロパティ)と副キー
(FjcobAlternateKeyプロパティ)すべての長さの合計は、254バイト以下になるように設定してくださ
い。
/
1つのキーとして、非連続な複数のキーを指定する場合、「/」で区切ります。
解説
● 富士通COBOL索引ファイル(OutputFileType = 3)の場合に、副キーを指定します。副キー
は省略可能です。
● 副キーのデータ形式はASCIIコードで、常に昇順で並べられます。
● 富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。
● ( )でくくられた指定をセグメントと呼びます。複数のセグメントを指定する場合は、セ
グメントを続けて記述するか、空白またはタブで区切ります。例えば、
D(1,2/4,4)D(10,8/20,1) と記述します。
[参照]
●
●
●
●
●
112
OutputFileTypeプロパティ
FjcobDataCompressionプロパティ
FjcobKeyCompressionプロパティ
SubErrorCodeプロパティ
富士通COBOLに関するエラーコード
5.3 実行前に設定するプロパティ
5.3.14 FjcobDataCompressionプロパティ
出力ファイルが富士通COBOL索引ファイルの場合に、レコードの圧縮を指定します。
構文
object.FjcobDataCompression = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
レコードを圧縮するかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
FjcobDataCompressionプロパティの設定値は次のとおりです。
設定値
意味
True
レコードを圧縮します。(省略値)
False
レコードを圧縮しません。
解説
● 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、レコードの圧
縮について設定します。
● この指定を省略した場合、レコードを圧縮します。
富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。
[参照]
● OutputFileTypeプロパティ
● FjcobAlternateKeyプロパティ
●
●
●
●
FjcobKeyCompressionプロパティ
FjcobPrimeKeyプロパティ
SubErrorCodeプロパティ
富士通COBOLに関するエラーコード
5.3.15 FjcobKeyCompressionプロパティ
出力ファイルが富士通COBOL索引ファイルの場合に、索引キーの圧縮を指定します。
構文
object.FjcobKeyCompression = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
113
第5章 OCXを使用してPowerSORTを使用する
boolean
索引キーの圧縮をするかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
FjcobKeyCompressionプロパティの設定値は次のとおりです。
設定値
意味
True
索引キーを圧縮します。(省略値)
False
索引キーを圧縮しません。
解説
● 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、索引キーの圧
縮について設定します。
● この指定を省略した場合、索引キーを圧縮します。
富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。
[参照]
● OutputFileTypeプロパティ
● FjcobAlternateKeyプロパティ
● FjcobDataCompressionプロパティ
● FjcobPrimeKeyプロパティ
● SubErrorCodeプロパティ
● 富士通COBOLに関するエラーコード
5.3.16 FjcobPrimeKeyプロパティ
出力ファイルが富士通COBOL索引ファイルの場合に、主キーを設定します。
構文
object.FjcobPrimeKey = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
富士通COBOL索引ファイルの主キーを記述形式に従って指定します。
stringの記述形式
[D] (pos.len [/pos.len] ...)
D
主キーとするデータ項目が、他のキーと重複する場合に指定します。
pos
富士通COBOL索引ファイルの主キーの位置を指定します。
114
5.3 実行前に設定するプロパティ
位置はキーとするデータ項目のレコードの先頭からの相対位置(0バイトから始まるバイト数)を指定
します。
len
富士通COBOL索引ファイルの主キーの長さを指定します。
なお、主キー(FjcobPrimeKeyプロパティ)と副キー(FjcobAlternateKeyプロパティ)すべての長さの合
計は、254バイト以下になるように設定してください。
/
1つのキーとして、非連続な複数のキーを指定する場合、「/」で区切ります。
解説
● 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、主キーを設定
します。主キーは省略できません。
● 主キーのデータ形式はASCIIコードで、常に昇順で並べられます。
富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。
[参照]
●
●
●
●
FjcobDataCompressionプロパティ
FjcobKeyCompressionプロパティ
SubErrorCodeプロパティ
富士通COBOLに関するエラーコード
5.3.17 HandlingSameKeyプロパティ
キーフィールドが等しいレコードの処理方法を設定します。
構文
object.HandlingSameKey = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
キーフィールドが等しいレコードの処理方法を設定します。
設定する値については、次の設定値を参照してください。
設定値
HandlingSameKeyプロパティの設定値は次のとおりです。
設定値
意味
0
順不定で処理します。(省略値)
1
先入力先出力(FIFO)機能に従ってレコードの出力順序を決定します。
2
サプレス機能によりレコードを削除します。
3
レコード集約機能を使用します。
115
第5章 OCXを使用してPowerSORTを使用する
解説
● キーフィールドが等しい複数のレコードがある場合の、レコードの出力方法を指定します。
● 指定を省略した場合、または0を設定した場合は、キーフィールドが等しいレコードの出
力順序は不定になります。
● 1を設定すると、キーフィールドが等しい複数のレコードを入力順に出力します。ソート
機能の場合に有効です。
● 2を設定すると、キーフィールドが等しい複数のレコードから、1つのレコードだけ残して
他を削除します。出力されるレコードはすべてキーフィールドが異なることになります。
キーフィールドが等しい複数のレコードのうち、どのレコードが残るかは不定で、指定は
できません。ソート処理またはマージ処理の場合に有効です。
● 3を設定すると、キーフィールドが等しい複数のレコードの集約フィールドの値を加算し、
1つのレコードにします。この場合、SumCmdStrプロパティで、集約フィールドを指定する
必要があります。キーフィールドが等しい複数のレコードのうち、どのレコードが残るか
は不定で、指定はできません。ソート処理またはマージ処理の場合に有効です。
Micro Focus COBOL索引ファイルで先入力先出力(FIFO)機能を指定した場合は、インデッ
クス順ではなく物理順で優先順位が決定します。
[参照]
● オプション機能
● オプション機能と主要機能の組合せ
● KeyCmdStrプロパティ
5.3.18 IgnoreControlCodeプロパティ
制御文字コードを無視するように設定します。
構文
object.IgnoreControlCode = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
制御文字コードを無視するかどうかを指定します。
設定する値については、次の設定値を参照してください。
設定値
IgnoreControlCodeプロパティの設定値は次のとおりです。
設定値
意味
True
制御文字コードは無視します。
False
制御文字コードも処理します。(省略値)
解説
● キーフィールドの比較対象として、制御文字コードを無視するかどうかを指定します。
● Trueを指定すると、制御文字コードを除いて比較し、レコードの順序を決定します。ただ
116
5.3 実行前に設定するプロパティ
し、空白とタブは文字として比較対象となります。
● データ形式がUnicode UCS-2形式の場合は、無視されます。
● この指定を省略した場合、制御文字コードも比較対象となります。
● このプロパティで指定された値は、テキストファイルの処理でソート処理
(DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)のキーフィールドを省略し
た場合に有効となります。
[参照]
●
●
●
●
AlphaNumOnlyプロパティ
CollationOrderプロパティ
CompareAsUpperCaseプロパティ
Reverseプロパティ
● SkipLeadingBlankプロパティ
5.3.19 InputDataCodeプロパティ
入力ファイルのコード系を指定します。
構文
object.InputDataCode = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
入力ファイルのコード系を設定します。
設定する値については、次の設定値を参照してください。
設定値
InputDataCodeプロパティの設定値は次のとおりです。
設定値
意味
0
ASCIIコード系(富士通COBOL形式) (省略値)
1
ASCIIコード系(MF COBOL形式、COBOL/2形式)
2
EBCDICコード系
3
Unicode系(UCS-2形式)
4
Unicode系(UTF-8形式)
解説
● テキストファイルのときは、InputDataCodeプロパティにEBCDICコード系を選択できませ
ん。
● この指定を省略した場合は、ASCIIコード系(富士通COBOL形式)となります。
5.3.20 InputFilesプロパティ
ソート処理、マージ処理およびコピー処理の入力ファイルパス名を設定します。
構文
object.InputFiles = string
117
第5章 OCXを使用してPowerSORTを使用する
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
入力ファイルパス名を指定します。
解説
● ソート処理、マージ処理およびコピー処理の入力ファイルパス名を設定します。入力ファ
イルパス名は、省略できません。
● 入力ファイルパス名には、ロングファイル名が指定できます。
● 複数の入力ファイルパス名も設定可能です。複数のファイルパス名を指定する場合、ファ
イル名は空白で区切ります。
● 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション
( " )で囲みます。
● 入力ファイルパス名を複数指定する場合は、同じファイル種別のファイルしか指定できま
せん。
[参照]
● PowerSORTの入出力環境
● EnableOverwriteInputFileプロパティ
● InputFileTypeプロパティ
●
●
●
●
InputFilesSkiprecプロパティ
MaxRecordLengthプロパティ
OutputFileプロパティ
OutputFileTypeプロパティ
5.3.21 InputFileTypeプロパティ
ソート処理、マージ処理およびコピー処理の対象となる入力ファイルのファイル種別とレコード形式
を設定します。
構文
object.InputFileType = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
入力ファイルのファイル種別を決定する数値を指定します。
設定する値については、次の設定値を参照してください。
設定値
InputFileTypeプロパティの設定値は次のとおりです。
118
5.3 実行前に設定するプロパティ
設定値
意味
0
テキストファイル (省略値)
1
バイナリ固定長ファイル
2
富士通COBOL順固定長ファイル
3
富士通COBOL順可変長ファイル
4
富士通COBOL索引固定長ファイル
5
富士通COBOL索引可変長ファイル
6
富士通COBOL相対固定長ファイル
7
富士通COBOL相対可変長ファイル
8
Micro Focus COBOL順固定長ファイル
9
Micro Focus COBOL順可変長ファイル
10
Micro Focus COBOL索引固定長ファイル
11
Micro Focus COBOL索引可変長ファイル
12
Micro Focus COBOL相対固定長ファイル
13
Micro Focus COBOL相対可変長ファイル
14
Btrieve固定長ファイル
15
Btrieve可変長ファイル
16
RDM固定長ファイル
解説
● 入力ファイルのファイル種別を設定します。設定できるファイル種別は1種類です。
● 複数の入力ファイルをInputFilesプロパティで指定する場合、すべて同じファイル種別の
入力ファイルを指定してください。
● 入力ファイル種別として、富士通COBOLファイル(設定値:2~7)を設定する場合、富士通
COBOLファイルシステムが必要です。
● データが圧縮されたMicro Focus COBOL索引ファイルを入力ファイルに指定することはで
きません。
● PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、ア
クセスすることができません。また、入力ファイル種別として富士通COBOL索引固定長フ
ァイル(設定値:4)または富士通COBOL索引可変長ファイル(設定値:5)を指定した場合は、
富士通COBOLファイルシステムが共用モードで開いていたとしてもアクセスすることがで
きません。共用モード、排他モードについては、お使いの富士通COBOLファイルシステム
のマニュアルを参照してください。
● 入力ファイル種別として、Btrieveファイル(設定値:14、15)を設定する場合、Btrieve
ファイルシステムが必要です。
● 入力ファイル種別として、RDM固定長ファイル(設定値:16)を設定する場合、RDM運用環境
が必要です。
● 富士通COBOL ファイルシステム(BSAM対 応順ファイル)を使用する場合は、環境変数
BSORT_COBFSYS_MODEにBSAMを指定した上で、富士通COBOL順固定長ファイル(設定値:2)、
または富士通COBOL順可変長ファイル(設定値:3)を設定してください。
[参照]
● PowerSORTの入出力環境
● EnableOverwriteInputFileプロパティ
● MaxRecordLengthプロパティ
119
第5章 OCXを使用してPowerSORTを使用する
● OutputFileプロパティ
● OutputFileTypeプロパティ
5.3.22 InputFilesSkiprecプロパティ
ソート処理、マージ処理およびコピー処理の対象となる入力ファイルから読み飛ばすレコード件数を
設定します。
構文
object.InputFilesSkiprec = string [ ,string... ]
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
入力ファイルの先頭から読み飛ばすレコード件数を設定します。
解説
● 入力ファイルの先頭から読み飛ばすレコード数を設定します。読み飛ばしたレコードはソ
ート処理、マージ処理またはコピー処理の対象にはなりません。
● 読み飛ばすレコード件数は、入力ファイルごとに指定できます。InputFilesプロパティで
指定した入力ファイルの順序に対応して、コンマ( , )で区切って指定します。
● 指定を省略するとすべてのレコードが処理対象となります。入力ファイル名の数より指定
が少ない場合は、指定のない入力ファイルのレコードはすべて処理対象となります。入力
ファイル名の数より指定が多い場合は、入力ファイルに対応しない指定は無効となります。
5.3.23 KeyCmdStrプロパティ
ソート処理およびマージ処理のキーフィールドを設定します。
構文
object.KeyCmdStr = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
キーフィールドを記述形式に従って指定します。
stringの記述形式
pos.len typ opt [ M kanji-def ] [, pos.len typ opt [ M kanji-def ]...]
pos
キーフィールドの位置を指定します。レコードの先頭を0として計算します。入力がテキストファイ
ルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールドまたは固定フィールドで指
定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィ
ールド番号を、固定フィールドはカラム位置を指定します。
120
5.3 実行前に設定するプロパティ
len
キーフィールドの長さをピリオド( . )に続けて指定します。データ形式により指定できる長さに上
限があります。詳細は、キーフィールドに指定可能なデータ形式を参照してください。
テキストファイルで浮動フィールドとして処理する場合、指定したフィールド長よりも長いフィール
ドが現れると、指定したフィールド長で処理されます。逆に指定したフィールド長よりも短いフィー
ルドが現れると、実際のフィールド長で処理されます。
データ形式(typ)に符号なし2進数(bit)を指定する場合は、マスク値を10進数の1~255の範囲で指定
します。この場合、フィールド値とマスク値の論理積がキー値となります。例えば、フィールド値が
16進数の8e、マスク値として3を指定した場合、キー値は16進数の02になります。
typ
キーフィールドのデータ形式をlenに続けて指定します。詳細は、キーフィールドに指定可能なデー
タ形式を参照してください。
opt
キーフィールドの操作をtypに続けて指定します。詳細は、キーフィールドの操作の種類を参照して
ください。
M kanji-def
漢字フィールドを指定します。漢字フィールドの指定方法については、kanji-defの記述形式を参照
してください。
解説
● キーフィールドは、位置、長さ、データ形式および操作で定義します。省略時は、レコー
ド全体をキーフィールドとみなし、コード順に並べます。
● 複数のキーフィールドを指定する場合は、キーフィールドを連続して指定するか、コンマ
( , )で区切って指定します。
記述例
例1) レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。
0.10asca
例2) レコードの先頭から5バイトのASCIIコードのフィールドを降順に、20バイトめから1バイトの外
部10進数を昇順に並べる指定です。
0.5ascr,19.1zdla
例3) レコードの10バイトめから20バイトの漢字(ASCIIコード)のフィールドを総画順、音読み順の昇
順として並べる指定です。
9.20ascam MstdSO
例4) レコードの10バイトめから20バイトの漢字(ASCIIコード)のフィールドに対するふりがなフィ
ールドが、レコードの50バイトめから10バイトにASCIIコードで記述されており、これを国語辞典の
並びで昇順に並べる指定です。
9.20ascam Mdic49.10asc
[参照]
●
●
●
●
●
FieldDelimiterプロパティ
HandlingSameKeyプロパティ
LineDelimiterプロパティ
MaxRecordLengthプロパティ
RconCmdStrプロパティ
● SelCmdStrプロパティ
● SumCmdStrプロパティ
121
第5章 OCXを使用してPowerSORTを使用する
5.3.24 LineDelimiterプロパティ
テキストファイルのレコード分離文字を設定します。
構文
object.LineDelimiter = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
レコード分離文字を設定します。設定する値については、次の設定値を参照してください。
設定値
LineDelimiterプロパティの設定値は次のとおりです。
設定値
意味
0
CRLF (省略値)
1
CR
2
LF
解説
● レコード分離文字は、CRLF(復帰改行)、CR(復帰)または LF(改行)から選択できます。
● 一般的な形式のテキストファイルは、CRLFで分離されています。
● レコード分離文字のバイト数は、CRとLFが1バイト、CRLFが2バイトです。入力ファイルの
コード系がUnicode系(UCS-2形式)の場合は、CRとLFが2バイト、CRLFが4バイトとなります。
● テキストファイルのレコード長は、このレコード分離文字の長さを含めて指定します。
● この指定を省略した場合、レコード分離文字はCRLFになります。
[参照]
● MaxRecordLengthプロパティ
5.3.25 MaxRecordLengthプロパティ
入力レコードのレコード長または最大レコード長を設定します。
構文
object.MaxRecordLength = long
object
オブジェクトへの参照を表すオブジェクト式を指定します。
long
入力レコードのレコード長または最大レコード長を設定します。設定可能なレコード長または最大レ
コード長は1~32000バイトです。
解説
● バイナリファイルの場合は、レコードが固定長レコード形式のとき、そのレコード長を指
122
5.3 実行前に設定するプロパティ
定し、レコードが可変長レコード形式のとき、そのレコードの最大レコード長を指定しま
す。
● テキストファイルの場合は、レコード分離文字を含む最大レコード長を指定します。
● 固定長レコード形式では、実際のレコード長と指定値が合わない場合、エラー終了します。
可変長レコード形式の場合は、実際のレコード長が指定値より大きい場合にエラー終了し
ます。
● レコード分離文字はLineDelimiterプロパティで設定します。標準は長さ2バイトのCRLF
です。入力ファイルのコード系がUnicode系(UCS-2形式)の場合は、CRLFが4バイトとなり
ます。全角の日本語文字など2バイトコードの文字は、1文字で2バイトとして計算します。
5.3.26 MessageFileNameプロパティ
PowerSORTのメッセージを出力するファイルパス名を設定します。
構文
object.MessageFileName = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
メッセージファイルパス名を指定します。
解説
● メッセージファイルパス名には、ロングファイル名を指定できます。
● 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション
( " )で囲みます。
● 指定できるメッセージファイルパス名は1つです。
● 出力されるメッセージは、MessageLevelプロパティまたは環境変数BSORT_MSGLEVELの指定
により決まります。
MessageFileNameプロパティの指定は、環境変数BSORT_MSGFILEの指定より優先されます。
[参照]
● MessageLevelプロパティ
5.3.27 MessageLevelプロパティ
PowerSORTが出力するメッセージのレベルを設定します。
構文
object.MessageLevel = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
123
第5章 OCXを使用してPowerSORTを使用する
integer
出力するメッセージのレベルを設定します。設定する値については、次の設定値を参照してください。
設定値
MessageLevelプロパティの設定値は次のとおりです。
設定値
意味
0
エラーメッセージを出力します。2の指定と同意です。 (省略値)
1
何も出力しません。
2
エラーメッセージを出力します。
3
エラーメッセージと処理件数メッセージを出力します。
解説
● メ ッ セ ー ジ を 出 力 す る た め に は 、 MessageFileName プ ロ パ テ ィ ま た は 環 境 変 数
BSORT_MSGFILEで、メッセージを出力するファイルパス名の設定が必要です。
MessageLevelプロパティの指定は、環境変数BSORT_MSGLEVELの指定より優先されます。
5.3.28 OutputFileプロパティ
ソート処理、マージ処理およびコピー処理の出力ファイルパス名を設定します。
構文
object.OutputFile = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
出力ファイルパス名を指定します。
解説
● 出力ファイルパス名には、ロングファイル名が指定できます。
● 指定できるファイルパス名は1つです。
● 空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で
囲みます。
[参照]
●
●
●
●
●
●
124
PowerSORTの入出力環境
EnableOverwriteInputFileプロパティ
InputFilesプロパティ
InputFileTypeプロパティ
MaxRecordLengthプロパティ
OutputFileTypeプロパティ
5.3 実行前に設定するプロパティ
5.3.29 OutputFileTypeプロパティ
ソート処理、マージ処理およびコピー処理の出力ファイルのファイル種別を設定します。
構文
object.OutputFileType = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
出力ファイルのファイル種別を設定します。
設定する値については、次の設定値を参照してください。
設定値
OutputFileTypeプロパティの設定値は次のとおりです。
設定値
意味
0
テキストファイル (省略値)
1
バイナリ固定長ファイル
2
富士通COBOL順ファイル
3
富士通COBOL索引ファイル
4
富士通COBOL相対ファイル
5
Micro Focus COBOL順編成ファイル
6
(Reserved)
7
Micro Focus COBOL相対ファイル
8
Btrieveファイル
9
RDMファイル
● 出力ファイル種別として、富士通COBOLファイル(設定値:2~4)を設定する場合、富士通
COBOLファイルシステムが必要です。
● 出力ファイルにMicro Focus COBOL索引ファイルを指定することはできません。
● 出力ファイル種別として、Btrieveファイル(設定値:8)を設定する場合、Btrieveファイ
ルシステムが必要です。
● 出力ファイル種別として、RDMファイル(設定値:9)を設定する場合、RDM運用環境が必要
です。
● この指定を省略した場合は、テキストファイルとなります。
● 富士通COBOL ファイルシステム(BSAM対応順ファイル)を使用する場合は、環境変数
BSORT_COBFSYS_MODEにBSAMを指定した上で、富士通COBOL順ファイル(設定値:2)を設定し
てください。
[参照]
● PowerSORTの入出力環境
● EnableOverwriteInputFileプロパティ
● InputFilesプロパティ
● InputFileTypeプロパティ
● MaxRecordLengthプロパティ
● OutputFileプロパティ
125
第5章 OCXを使用してPowerSORTを使用する
5.3.30 RconCmdStrプロパティ
ソート処理、マージ処理およびコピー処理の再編成フィールドを設定します。
構文
object.RconCmdStr = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
再編成フィールドを記述形式に従って指定します。
stringの記述形式
{ pos.len | slf.len typ } [ { pos.len | slf.len typ } ...]
pos.len
入力レコードの位置と長さを指定します。posとlenの間には、ピリオド( . )を入れます。指定した
フィールドが入力レコードの中に存在しない場合はエラーになります。テキストファイルや可変長レ
コード形式のファイルの場合は、ファイル内の最小レコード長以下となるよう、posとlenを指定しま
す。
pos
再編成フィールドの位置を指定します。レコードの先頭を0として計算します。入力がテキストファ
イルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールドまたは固定フィールドで
指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフ
ィールド番号を、固定フィールドはカラム位置を指定します。
len
再編成フィールドの長さをピリオド( . )に続けて指定します。テキストファイル浮動フィールド指
定の場合、指定したフィールド長よりも長いフィールドが現れると、指定したフィールド長で処理さ
れます。逆に指定したフィールド長よりも短いフィールドが現れると、実際のフィールド長で処理さ
れます。
slf.len typ
自己規定値を値、長さ、データ形式で指定します。slfとlenの間には、ピリオド( . )を入れます。
自己規定値に指定可能なデータ形式と長さについては、再編成フィールドの自己規定値に指定可能な
データ形式を参照してください。
slf
自己規定値を指定します。以下の3つの形式があります。
形式
指定方法
126
文字列
'文字列'
文字列をクォーテーション( ' )で囲みます。
例) '123'
16進数
x16進数
先頭にxを置き、16進コードを続けます。
例) x313233
10進数
d10進数
先頭にdを置き、10進数を続けます。また、符号(+、-)を付
けることもできます。
例) d123、d+123、d-123
5.3 実行前に設定するプロパティ
len
自己規定値の長さをピリオド( . )に続けて指定します。
typ
自己規定値のデータ形式を指定します。
解説
● レコード再編成機能により、入力レコードの構成を変更できます。レコードを再編成する
場合は、入力レコードを構成するフィールドを左端から順番に指定します。再編成フィー
ルドの指定方法には、入力レコードからの複写と、自己規定値の設定があります。
● 入力レコードのフィールドを複写する場合は、再編成フィールドに複写するフィールドの
位置と長さを指定します。自己規定値を設定する場合は、設定する値と長さ、およびデー
タ形式を指定します。フィールドと自己規定値は組み合わせて指定できます。
● 再編成フィールドに入力レコードのフィールドを指定する場合は、入力レコード内のフィ
ールドを指定してください。テキストファイルや可変長レコード形式のファイルの場合は、
入力ファイル内の最小レコード長以下となるように位置と長さを指定します。
● 複数の再編成フィールドを指定する場合は、コンマ( , )で区切って指定します。
● 自己規定値で指定した値とlenで指定した長さが異なるときは、以下に示すように処理し
ます。
― 自己規定値が文字列の場合、自己規定値で指定した文字列の長さがlenで指定した
長さより短いときは、自己規定値を左詰めにして右余白に空白を詰めます。自己規
定値で指定した文字列の長さがlenで指定した長さより長い場合は、エラーとなり
ます。
― 自己規定値が数値または数字の場合、自己規定値で指定した値をlenとtypで指定し
たデータ形式と長さに変換して埋め込みます。変換結果がlenを超える場合は、エ
ラーとなります。
レコード再編成機能を使用する場合、KeyCmdStrプロパティおよびSumCmdStrプロパティで
指定するキーフィールド、集約フィールドの位置(pos)、長さ(len)は、レコード再編成後
のレコードに対して指定します。
記述例
例1) 入力レコードの20バイトめから10バイト、50バイトめから12バイト、30バイトめから22バイト
のフィールドを順番に複写し、入力レコードを再構成します。再編成後のレコードの長さは、44バイ
トになります。テキストファイルの場合は、レコード分離文字が付加されます。テキスト浮動フィー
ルド指定の場合は、さらにフィールド分離文字が付加されます。
19.10,49.12,29.22
例2) レコードの先頭から3バイトの長さで、ASCIIコードの文字列 'abc' を埋め込み、入力レコード
の20バイトめから10バイトのフィールドを後に複写して、入力レコードを再構成します。再編成後の
レコード長は、13バイトになります。テキストファイルの場合は、レコード分離文字が付加されます。
テキスト浮動フィールド指定の場合は、さらにフィールド分離文字が付加されます。
'abc'.3asc,19.10
[参照]
● FieldDelimiterプロパティ
● HandlingSameKeyプロパティ
● LineDelimiterプロパティ
127
第5章 OCXを使用してPowerSORTを使用する
● MaxRecordLengthプロパティ
● SelCmdStrプロパティ
5.3.31 Reverseプロパティ
キーフィールドの指定が省略された場合の入力レコードの並びを設定します。
構文
object.Reverse = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
キーフィールドの指定が省略されたとき、入力レコードの並びを設定します。設定する値については、
次の設定値を参照してください。
設定値
Reverseプロパティの設定値は次のとおりです。
設定値
True
降順で並べます。
False
昇順で並べます。(省略値)
意味
解説
● ソート処理(DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)において、キー
フィールド(KeyCmdStrプロパティ)の指定を省略した場合の並びを指定します。この指定
に従い、レコード全体をキーフィールドとみなし、コード順に並べます。
● この指定を省略した場合は、昇順で並べます。
[参照]
● AlphaNumOnlyプロパティ
● CollationOrderプロパティ
● CompareAsUpperCaseプロパティ
● IgnoreControlCodeプロパティ
● SkipLeadingBlankプロパティ
5.3.32 SelCmdStrプロパティ
ソート処理、マージ処理およびコピー処理の選択フィールドを設定します。
構文
object.SelCmdStr = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
選択フィールドを指定します。
128
5.3 実行前に設定するプロパティ
記述形式
pos.len typ opt.cmp. { pos.len typ | slf } [{ AND | OR } pos.len typ opt.cmp. { pos.len
typ | slf } ...]
pos
選択フィールドの位置を指定します。レコードの先頭を0として計算します。入力がテキストファイ
ルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールドまたは固定フィールドで指
定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィ
ールド番号を、固定フィールドはカラム位置を指定します。
len
選択フィールドの長さをピリオド( . )に続けて指定します。データ形式により指定できる長さに上
限があります。指定できる長さについては、選択フィールドに指定可能なデータ形式を参照してくだ
さい。
テキストファイルで浮動フィールドとして処理する場合、指定したフィールド長よりも長いフィール
ドが現れると、指定したフィールド長で処理されます。逆に指定したフィールド長よりも短いフィー
ルドが現れると、実際のフィールド長で処理されます。
データ形式(typ)に符号なし2進数(bit)を指定する場合は、長さにはマスク値を10進数の1 ~255の範
囲で指定してください。この場合、フィールド値とマスク値の論理積がキー値となります。例えば、
フィールド値が16進数の8e、マスク値として3を指定した場合、キー値は16進数の02になります。被
比較フィールドと比較フィールドには同じマスク値を指定します。
typ
選択フィールドのデータ形式をlenに続けて指定します。詳細は、被比較フィールドと比較フィール
ドに指定可能なデータ形式を参照してください。
opt
選択フィールドの操作を指定します。この指定はテキストファイルのときに有効です。
指定できるオプションは、以下のとおりです。
操作
意味
b
キーフィールドの先頭の空白とタブを無視します。
d
空白と英数字のみを比較の対象とします。
i
制御文字コードを無視します。空白およびタブは制御文字に含まれませ
ん。
j
英小文字を英大文字として比較します。
n
符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。
cmp
比較演算子を指定します。cmpの前後にはピリオド( . )を設定し、空白を入れずに続けて記述します。
以下の比較演算子の1つを指定します。
比較演算子
意味(真の条件)
eq
被比較フィールド = 比較フィールドまたは自己規定値
ne
被比較フィールド ≠ 比較フィールドまたは自己規定値
gt
被比較フィールド > 比較フィールドまたは自己規定値
ge
被比較フィールド ≧ 比較フィールドまたは自己規定値
lt
被比較フィールド < 比較フィールドまたは自己規定値
le
被比較フィールド ≦ 比較フィールドまたは自己規定値
slf
自己規定値を指定します。以下の3つの形式があります。被比較フィールドのデータ形式により、指
129
第5章 OCXを使用してPowerSORTを使用する
定できる形式が異なります。詳細は、被比較フィールドと自己規定値に指定可能なデータ形式の組合
せを参照してください。
形式
指定方法
文字列
'文字列'
文字列をクォーテーション( ' )で囲みます。
例) '123'
16進数
x16進数
先頭にxを置き、16進コードを続けます。
例) x313233
10進数
d10進数
先頭にdを置き、10進数を続けます。また、符号(+、-)を付
けることもできます。
例) d123、d+123、d-123
AND | OR
選択フィールドを複数指定する場合の、論理的な関係を指定します。ANDで結合された選択フィール
ドは、両方の選択条件を満たすレコードのみが処理対象となります。ORで結合された選択フィールド
は、どちらか一方の条件が満たされたレコードが処理対象となります。
ANDとORの優先順位は、ANDが高く、ANDが先に評価されます。a AND b OR cの指定ではaとbの条件を
同時に満たすか、cの条件を満たすレコードが選択されます。また、選択フィールドでは、括弧を使
うことはできません。a AND (b OR c)のような論理式は、a AND b OR a AND cと指定してください。
解説
● レコード選択機能により、ソート処理、マージ処理またはコピー処理の対象とするレコー
ドを選択できます。
● 選択フィールドの指定方法には、入力レコードのフィールド同士を比較する方法と、入力
レコードのフィールドと自己規定値を比較する方法があります。また、複数の選択条件と
論理演算子を使用して、複雑な論理式を指定することができます。
● 入力レコードのフィールドを指定する場合は、入力レコードの外を指定しないように位置
と長さを指定してください。テキストファイルや可変長ファイルの場合は、ファイル内の
最小レコード長以下となるよう、位置と長さを指定します。
● 複数の選択フィールドを指定する場合は、各選択フィールドの関係を論理演算子ANDまた
はORで指定します。
記述例
例1) 入力レコードの20バイトめから10バイトのASCIIコードと、30バイトめから10バイトのASCIIコ
ードを比較し、等しければ処理の対象レコードとします。
19.10asc.eq.29.10asc
例2) 入力レコードの20バイトめから4バイトのASCIIコードを、ASCIIコードの文字列'abcd'と比較し、
等しくなければ処理の対象レコードとします。
19.4asc.ne.'abcd'
例3) 入力レコードの12バイトめから4バイトの固定小数点2進数のフィールドが、30以上のレコード
を処理の対象レコードとします。
11.4fbi.ge.d30
例4) 入力レコードの20バイトめから10バイトの内部10進数のフィールドが、123より小さく、かつ、
入力レコードの50バイトめから4バイトの外部10進数のフィールドが、-123よりも大きいレコードを
処理の対象レコードとします。
19.10pdl.lt.d123 AND 49.4zdl.gt.d-123
[参照]
● FieldDelimiterプロパティ
● HandlingSameKeyプロパティ
● LineDelimiterプロパティ
130
5.3 実行前に設定するプロパティ
●
●
●
●
MaxRecordLengthプロパティ
KeyCmdStrプロパティ
RconCmdStrプロパティ
SumCmdStrプロパティ
5.3.33 SkipLeadingBlankプロパティ
先頭の空白とタブを無視するように設定します。
構文
object.SkipLeadingBlank = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
先頭の空白とタブを無視するかどうか設定します。
設定する値については、次の設定値を参照してください。
設定値
SkipLeadingBlankプロパティの設定値は次のとおりです。
設定値
意味
True
先頭の空白とタブを無視します。
False
先頭の空白とタブを比較対象とします。(省略値)
解説
● Trueを指定すると、フィールドの先頭の空白とタブを除いて比較し、レコードの順序を決
定します。
● このプロパティで指定された値は、テキストファイルの処理でソート処理
(DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)のキーフィールドを省略し
た場合に有効となります。
● この指定を省略した場合は、先頭の空白とタブも比較対象となります。
[参照]
●
●
●
●
●
AlphaNumOnlyプロパティ
CollationOrderプロパティ
CompareAsUpperCaseプロパティ
IgnoreControlCodeプロパティ
Reverseプロパティ
5.3.34 SumCmdStrプロパティ
ソート処理およびマージ処理の集約フィールドを設定します。
構文
object.SumCmdStr = string
131
第5章 OCXを使用してPowerSORTを使用する
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
集約フィールドを記述形式にしたがって指定します。
記述形式
pos.len typ [ pos.len typ ...]
pos
集約フィールドの位置を指定します。レコードの先頭を0として計算します。入力がテキストファイ
ルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールドまたは固定フィールドで指
定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィ
ールド番号を、固定フィールドはカラム位置を指定します。
len
集約フィールドの長さをピリオド( . )に続けて指定します。
テキストファイルで浮動フィールドとして処理する場合、集約結果は指定されたフィールド長で処理
されます。指定したフィールド長より実際のフィールド長が長い場合、数字の左から指定フィールド
長分が有効となります。逆に指定したフィールド長より実際のフィールド長が短い場合、指定したフ
ィールド長に拡張して処理します。
typ
集約フィールドのデータ形式をlenに続けて指定します。詳細は、集約フィールドに指定可能なデー
タ形式を参照してください。
解説
● キーフィールドが等しい複数のレコードの集約フィールドを加算し、1つのレコードにし
ます。
● レコード集約機能を使用する場合は、SumCmdStrプロパティの指定とHandlingSameKeyプロ
パティに3(レコード集約)を設定する必要があります。
● 複数の集約フィールドを指定する場合は、集約フィールドを連続して指定するか、コンマ
( , )で区切って指定します。
集約フィールドを指定する場合は、入力レコード内のフィールドを指定してください。テ
キストファイルや可変長レコード形式のファイルの場合は、ファイル内の最小レコード長
以下となるように位置と長さを指定します。
記述例
例1) 入力レコードの20バイトめから10バイトの外部10進数のフィールドを集約します。
19.10zdl
例2) 入力レコードの10バイトめから10バイトの外部10進数のフィールドとレコードの30バイトめか
ら8バイトの固定小数点2進数を集約します。
9.10zdl29.8fbi
132
5.3 実行前に設定するプロパティ
5.3.35 TempDirプロパティ
ソート処理で使用する一時ファイルのフォルダ名を設定します。
構文
object.TempDir = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
一時ファイルのフォルダ名を指定します。
解説
● 一時ファイルを作成するフォルダ名を指定します。PowerSORTは、メモリ内だけでは処理
できない大量のデータをソート処理する場合、TempDirプロパティで指定したフォルダに
一時ファイルを作成します。
● 複数のフォルダ名を指定できます。複数のフォルダ名を指定することで、空きスペースの
不足によるエラーを回避できることがあります。
● 複数のフォルダ名を指定する場合は、異なるフォルダ名をセミコロン( ; )で区切って指
定します。
● この指定を省略した場合は、以下の優先順位に従って一時ファイルを作成するフォルダを
決定します。
1) 環境変数BSORT_TMPDIRで指定されたフォルダ
2) 環境変数TEMPで指定されたフォルダ
3) 環境変数TMPで指定されたフォルダ
4) Windowsシステムのフォルダ
指定されたフォルダが存在しない場合は、エラーとなります。
5.3.36 UsableMemorySizeプロパティ
PowerSORTが使用する作業域の大きさ(メモリサイズ)を設定します。
構文
object.UsableMemorySize = long
object
オブジェクトへの参照を表すオブジェクト式を指定します。
long
作業域の大きさをキロバイト数で設定します。
設定可能な作業域の大きさは、0または64~32767キロバイトです。
解説
● 指定を省略するか、0を指定すると、作業域は自動的に設定されます。
133
第5章 OCXを使用してPowerSORTを使用する
134
5.4 実行後に参照するプロパティ
5.4 実行後に参照するプロパティ
5.4.1 ErrorCodeプロパティ
PowerSORTの復帰コードが通知されます。
構文
object.ErrorCode
object
オブジェクトへの参照を表すオブジェクト式を指定します。
返却値
ErrorCodeプロパティに返却される値は次のとおりです。
返却値
意味
0
正常に終了しました。
-1
PowerSORTの処理中にエラーが検出されました。
-2
PowerSORT OCXで構文解析処理中にエラーが検出されました。
-3
PowerSORT OCXで構文解析処理中にエラーが検出されました(PowerSORT
OCXでのみ検出される固有のエラー)。
-4
PowerSORT OCXのエラーが検出されました。
解説
● PowerSORTの実行後、処理結果を示す復帰コードが設定されます。実行後のみ参照可能で
す。値の設定はできません。
[参照]
●
●
●
●
●
●
●
DispMessageプロパティ
ErrorDetailプロパティ
SubErrorCodeプロパティ
エラー詳細コード(ErrorCodeが0,-1,-2のとき)
エラー詳細コード(ErrorCodeが-3のとき)
エラー詳細コード(ErrorCodeが-4のとき)
富士通COBOLファイルに関するエラーコード
5.4.2 ErrorDetailプロパティ
PowerSORTのエラー詳細コードが通知されます。
構文
object.ErrorDetail
object
オブジェクトへの参照を表すオブジェクト式を指定します。
135
第5章 OCXを使用してPowerSORTを使用する
解説
● PowerSORT実行中にエラーが検出された場合、エラー詳細コードが通知されます。実行後
のみ参照可能です。値の設定はできません。通知される値については、OCX使用時のエラ
ー詳細コードを参照してください。
[参照]
● DispMessageプロパティ
● ErrorCodeプロパティ
● SubErrorCodeプロパティ
●
●
●
●
エラー詳細コード(ErrorCodeが0,-1,-2のとき)
エラー詳細コード(ErrorCodeが-3のとき)
エラー詳細コード(ErrorCodeが-4のとき)
富士通COBOLファイルに関するエラーコード
5.4.3 SubErrorCodeプロパティ
PowerSORTが使用するファイルシステムのエラーコードが通知されます。
構文
object.SubErrorCode
object
オブジェクトへの参照を表すオブジェクト式を指定します。
解説
● PowerSORT実行中にファイルシステムでエラーが検出された場合、エラーコードが通知さ
れます。実行後のみ参照可能です。値の設定はできません。通知される値については、フ
ァイルシステムに応じて該当するマニュアルなどを参照してください。
[参照]
● DispMessageプロパティ
● ErrorCodeプロパティ
●
●
●
●
136
ErrorDetailプロパティ
エラー詳細コード(ErrorCodeが0,-1,-2のとき)
エラー詳細コード(ErrorCodeが-3のとき)
エラー詳細コード(ErrorCodeが-4のとき)
5.5 メソッド
5.5 メソッド
5.5.1 Actionメソッド
PowerSORTを呼び出します。
構文
object.Action
object
オブジェクトへの参照を表すオブジェクト式を指定します。
解説
● Actionメソッドには引数はありません。PowerSORT OCXのプロパティに設定された処理条
件で、PowerSORTを呼び出します。
● Actionメソッドを使う前に、必要なプロパティに値を設定してください。
[参照]
● 主要機能
● オプション機能と主要機能の組合せ
● DisposalNumberプロパティ
137
第6章 COBOLプログラムからPowerSORTを使用す
る
PowerSORTは、富士通のNetCOBOL、PowerCOBOL97、COBOL97およびCOBOL85で作成したCOBOLプログラム
から利用することができます。
● PowerSORTをインストールするだけで、COBOLのランタイムシステムが自動的にPowerSORT
を呼び出します。COBOLの文法に従って、SORT文またはMERGE文を使用したプログラムを作
成すると、実行時にPowerSORTが呼び出されます。
● 既存のCOBOLプログラムを実行する場合も、PowerSORTを利用するための特別な設定作業や
COBOLプログラムの変更、再コンパイルは不要です。
第7章 C言語プログラムからPowerSORTを使用す
る
PowerSORTはC言語プログラムから利用することができます。C言語プログラムからPowerSORTを使用す
る場合は、BSORT関数を使用します。
ここでは、各BSORT関数の概要と使い方、BSORT関数を使用してユーザアプリケーションを開発すると
きの注意事項について説明します。
BSORT関数はマルチスレッドに対応していません。
第7章 C言語プログラムからPowerSORTを使用する
7.1 BSORT関数とは
BSORT関数とは、C言語プログラムからPowerSORTを使用するための関数の総称であり、BSORT関数一覧
に示す5つの関数が用意されています。
BSORT関数一覧
以下に各BSORT関数の概要を示します。
BSORT関数一覧
関数名
概要
bsrtopen
PowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域にロード
し、各関数のアドレスを求めます。さらにPowerSORTの実行環境を準備し
ます。
bsrtclse
PowerSORTの実行環境を消去します。また、bsrtopen関数で仮想記憶域に
ロードしたPowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶
域から消去します。
bsrtput
ソート機能使用時に、ユーザアプリケーションからPowerSORTのダイナミ
ックリンクライブラリ(DLL)にレコードを渡します。
bsrtget
ソート機能使用時に、ソートしたレコードをPowerSORTのダイナミックリ
ンクライブラリ(DLL)から受け取ります。
bsrtmrge
マージ機能使用時に、ユーザアプリケーションからPowerSORTのダイナミ
ックリンクライブラリ(DLL)にレコードを渡したり、マージしたレコード
をPowerSORTから受け取ります。
関数の組合せ
BSORT関数一覧に示したようにBSORT関数には5つの関数があります。使用する機能と入出力の形態に
よって使用する関数が異なります。
以下に、使用するPowerSORTの機能と関連するBSORT関数の組合せを示します。
使用するPowerSORTの機能と関連するBSORT関数一覧
関数名
ソート機能
マージ機能
コピー機能
bsrtopen
◎
◎
◎
bsrtclse
◎
◎
◎
bsrtput
○
×
×
bsrtget
○
×
×
bsrtmrge
×
○
×
◎:必ず使用します
○:使用できます
×:使用できません
140
7.2 BSORT関数の使い方
7.2 BSORT関数の使い方
ソート機能、マージ機能およびコピー機能を使用する場合のBSORT関数の使い方について説明します。
7.2.1 ソート機能を使用する場合
ソート機能を使用する場合は、入出力の形態により次の4つがあります。
● 入出力ともファイル(標準入力と標準出力を含む)を使用する形態
● 入出力ともユーザアプリケーション(bsrtput関数とbsrtget関数)を使用する形態
● 入力にファイル(標準入力を含む)を使用し、出力にユーザアプリケーション(bsrtget関
数)を使用する形態
● 入力にユーザアプリケーション(bsrtput関数)を使用し、出力にファイル(標準出力を含
む)を使用する形態
入出力ともファイル(標準入力と標準出力を含む)を使用する形態
入出力ともファイル(標準入力と標準出力を含む)を使用する場合は、以下の手順で行います。
1. bsrtopen関数を発行します。
2. bsrtclse関数を発行します。
bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)および出力ファイルパス名(また
は標準出力)を指定するとこの形態になります。
入出力ともユーザアプリケーション(bsrtput関数とbsrtget関数)を使用する形態
入出力ともユーザアプリケーション(bsrtput関数とbsrtget関数)を使用する場合は、以下の手順で行
います。
1. bsrtopen関数を発行します。
2. bsrtput関数を発行します。
bsrtput関数はPowerSORTに渡すレコードがなくなるまで連続して発行します。
3. bsrtput関数を発行し、レコードの終わりを通知します。
4. bsrtget関数を発行します。
bsrtget関数は、PowerSORTからレコードの終わりが通知されるまで連続して発行します。
5. bsrtclse関数を発行します。
bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)および出力ファイルパス名(また
は標準出力)を指定しないとこの形態になります。
入力にファイル(標準入力を含む)を使用し、出力にユーザアプリケーション(bsrtget
関数)を使用する形態
入力にファイル(標準入力を含む)を使用し、出力にユーザアプリケーション(bsrtget関数)を使用す
る場合は、以下の手順で行います。
1. bsrtopen関数を発行します。
2. bsrtget関数を発行します。
bsrtget関数は、PowerSORTからレコードの終わりが通知されるまで連続して発行します。
3. bsrtclse関数を発行します。
bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)を指定し、出力ファイルパス名(ま
たは標準出力)を指定しないとこの形態になります。
入力にユーザアプリケーション(bsrtput関数)を使用し、出力にファイル(標準出力を
含む)を使用する形態
入力にユーザアプリケーション(bsrtput関数)を使用し、出力にファイル(標準出力を含む)を使用す
る場合は、以下の手順で行います。
1. bsrtopen関数を発行します。
141
第7章 C言語プログラムからPowerSORTを使用する
2.
bsrtput関数を発行します。
bsrtput関数はPowerSORTに渡すレコードがなくなるまで連続して発行します。
3. bsrtput関数を発行し、レコードの終わりを通知します。
4. bsrtclse関数を発行します。
bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)を指定しないで、出力ファイルパ
ス名(または標準出力)を指定するとこの形態になります。
7.2.2 マージ機能を使用する場合
マージ機能を使用する場合は、入出力の形態により次の4つがあります。
●
●
●
●
入出力ともファイル(標準出力を含む)を使用する形態
入出力ともユーザアプリケーション(bsrtmrge関数)を使用する形態
入力にファイルを使用し、出力にユーザアプリケーション(bsrtmrge関数)を使用する形態
入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力を含
む)を使用する形態
入出力ともファイル(標準出力を含む)を使用する形態
入出力ともファイル(標準出力を含む)を使用する場合、以下の手順で行います。
1. bsrtopen関数を発行します。
2. bsrtclse関数を発行します。
bsrtopen関数のパラメタで、入力ファイルパス名および出力ファイルパス名(または標準出力)を指定
するとこの形態になります。
入出力ともユーザアプリケーション(bsrtmrge関数)を使用する形態
入出力ともユーザアプリケーション(bsrtmrge関数)を使用する場合は、以下の手順で行います。
1. bsrtopen関数を発行します。
2. bsrtmrge関数を発行します。
bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。
この形態のbsrtmrge関数には、ユーザアプリケーションからPowerSORTにレコードを渡す働
きとPowerSORTからレコードを受け取る働きの2つがあります。bsrtmrge関数の発行では、
個々のストリング(ソート済のレコード群)のレコードを渡し、PowerSORTから返されるレコ
ードを受け取ります。ストリングのレコードがなくなったときはレコードの終わりを通知
し、PowerSORTから返されるレコードを受け取ります。処理しているすべてのストリングに
対してレコードの終わりを通知したら、渡すレコードがなくてもPowerSORTからレコードの
終わりが通知されるまで連続して発行して、PowerSORTから返されるレコードを受け取りま
す。
3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。
bsrtopen関数のパラメタで、入力ファイルパス名および出力ファイルパス名(または標準出力)を指定
しないとこの形態になります。
入力にファイルを使用し、出力にユーザアプリケーション(bsrtmrge関数)を使用する
形態
入力にファイルを使用し、出力にユーザアプリケーション(bsrtmrge関数)を使用する場合は、以下の
手順で行います。
1. bsrtopen関数を発行します。
2. bsrtmrge関数を発行します。
bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。
この形態のbsrtmrge関数には、PowerSORTからレコードを受け取る働きがあります。
3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。
bsrtopen関数のパラメタで、入力ファイルパス名を指定し、出力ファイルパス名(または標準出力)
を指定しないとこの形態になります。
142
7.2 BSORT関数の使い方
入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力
を含む)を使用する形態
入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力を含む)を使用す
る場合は、以下の手順で行います。
1. bsrtopen関数を発行します。
2. bsrtmrge関数を発行します。
bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。
この形態のbsrtmrge関数には、ユーザアプリケーションからPowerSORTにレコードを渡す働
きがあります。bsrtmrge関数の発行では、個々のストリングのレコードを渡し、ストリン
グのレコードがなくなったときはレコードの終わりを通知します。処理しているすべての
ストリングに対してレコードの終わりを通知したら、渡すレコードがなくてもPowerSORTか
らレコードの終わりが通知されるまで連続して発行します。
3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。
bsrtopen関数のパラメタで、入力ファイルパス名を指定しないで、出力ファイルパス名(または標準
出力)を指定するとこの形態になります。
7.2.3 コピー機能を使用する場合
コピー機能を使用する場合、入出力ともファイル(標準入力と標準出力を含む)を使用する形態があり
ます。ソート機能とマージ機能のようにPowerSORTへレコードを渡したり、PowerSORTからレコードを
受け取る形態はありません。
コピー機能を使用する場合は、以下の手順で行います。
1. bsrtopen関数を発行します。
2. bsrtclse関数を発行します。
143
第7章 C言語プログラムからPowerSORTを使用する
7.3 BSORT関数の種類
ここでは、各BSORT関数の詳細について説明します。
7.3.1 bsrtopen関数
bsrtopen関数は、PowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域にロードし、各関数
のアドレスをパラメタfuncに設定します。さらにPowerSORTの実行環境を準備します。
記述形式
#include "bsrt.h"
int bsrtopen (long int BSRTVL, BSPTR_BSRTFUNC func,
BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec,
BSPTR_BSRTKEY key, BSPTR_BSRTFILE file,
BSPTR_BSRTOPT opt);
機能説明
以下にbsrtopen関数の機能を示します。
● PowerSORTの実行環境を構築します。
● 入力にファイル(標準入力を含む)、出力にユーザアプリケーションを使用する場合、ソー
ト機能のときはソート処理を行い、結果を出力する直前に復帰します。マージ機能のとき
はそれぞれのファイルから少しずつレコードを入力し、マージ処理をする直前に復帰しま
す。
● 入出力ともファイル(標準入力、標準出力を含む)を指定した場合は、ソート処理またはマ
ージ処理まで実施して復帰します。
● コピー機能の場合は、コピー処理を実施して復帰します。
パラメタ詳細
long int BSRTVL
PowerSORTのバージョンレベル(BSRTVL)を指定します。
BSRTVLはBSORT関数のヘッダファイル(bsrt.h)で定義されています。このパラメタにより、BSORT関数
のインタフェースに変更があってもユーザアプリケーションを変更することなく動作させることが
できます。
BSPTR_BSRTFUNC func
BSORT関数(bsrtput関数、bsrtget関数およびbsrtmrge関数)の各アドレスが設定されます。なお、
BSPTR_BSRTFUNCは、BSRTFUNC構造体のポインタを意味します。
BSPTR_BSRTPRIM prim
ソート機能、マージ機能、コピー機能、レコード選択機能、レコード再編成機能、先入力先出力(FIFO)
機能、レコード集約機能およびサプレス機能などを指定するパラメタです。なお、BSPTR_BSRTPRIM
は、BSRTPRIM構造体のポインタを意味します。
BSPTR_BSRTREC rec
bsrtopen関数で指定する情報はありません。エラーがあった場合、その詳細コードが設定されます。
なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。
144
7.3 BSORT関数の種類
BSPTR_BSRTKEY key
ソート機能またはマージ機能で使用するキーフィールドを指定します。なお、BSPTR_BSRTKEYは、
BSRTKEY構造体のポインタを意味します。
BSPTR_BSRTFILE file
入力ファイル、出力ファイルおよび一時ファイルなどファイル情報を指定するパラメタです。なお、
BSPTR_BSRTFILEは、BSRTFILE構造体のポインタを意味します。
BSPTR_BSRTOPT opt
オプション機能を指定するパラメタです。集約フィールド、選択フィールド、再編成フィールドおよ
び読み飛ばしレコード件数を指定する各構造体のポインタを指定します。
上記の構造体のポインタをいずれも指定しない場合は、bsrtopen関数のパラメタoptに0を指定します。
いずれかを指定する場合は、それぞれ領域を確保した上で指定します。なお、BSPTR_BSRTOPTは、
BSRTOPT構造体のポインタを意味します。
復帰値
bsrtopen関数の復帰値を示します。
復帰値
意味
0
正常にbsrtopen関数が終了したことを示します。
続けて、bsrtput関数、bsrtget関数、bsrtmrge関数またはbsrtclse関数を
発行してください。
-1
bsrtopen関数で異常が発生したことを示します。詳細な情報は、BSRTREC
構造体のerrdetailまたはsub_error_codeに設定されます。
続けて、bsrtclse関数を発行してください。
-2
bsrtopen関数で異常が発生したことを示します。詳細な情報は、BSRTREC
構造体のerrdetailまたはsub_error_codeに設定されます。
なお、当復帰値の場合は、bsrtclse関数を発行する必要はありません。
● BSRTVLを除いた他のパラメタは、値を設定しない場合でもbsrtopen関数発行前に0クリア
する必要があります。値を設定するパラメタは、設定前にフィールドを0クリアします。
● bsrtopen関数のパラメタのうち、BSRTVL、func、prim、recは省略できません。key、file、
optは省略できます。省略する場合は、bsrtopen関数のパラメタでポインタに0を指定しま
す。
例)
bsrtopen( BSRTVL,func, prim, rec,
(BSPTR_BSRTKEY) 0, (BSPTR_BSRTFILE) 0,
(BSPTR_BSRTOPT) 0);
7.3.2 bsrtclse関数
bsrtclse関数は、bsrtopen関数が構築したPowerSORTの実行環境を消去します。
記述形式
#include "bsrt.h"
int bsrtclse (long int BSRTVL, BSPTR_BSRTFUNC func,
BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec);
145
第7章 C言語プログラムからPowerSORTを使用する
機能説明
以下にbsrtclse関数の機能を示します。
● bsrtopen関数が構築したPowerSORTの実行環境を消去します(作業域の開放、入出力ファイ
ルと一時ファイルのクローズなど)。
● bsrtopen関数でロードしたPowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶
域から消去します。
● bsrtget関数、bsrtput関数の処理の途中でbsrtclse関数を呼んだときに処理を中断します。
パラメタ詳細
long int BSRTVL
PowerSORTのバージョンレベル(BSRTVL)を指定します。
BSRTVLはBSORT関数のヘッダファイル(bsrt.h)で定義されています。
BSPTR_BSRTFUNC func
bsrtopen関数で指定したfuncを指定します。なお、BSPTR_BSRTFUNCは、BSRTFUNC構造体のポインタを
意味します。
BSPTR_BSRTPRIM prim
bsrtopen関数で指定したprimを指定します。なお、BSPTR_BSRTPRIMは、BSRTPRIM構造体のポインタを
意味します。
BSPTR_BSRTREC rec
bsrtopen関数で指定したrecを指定します。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意
味します。
復帰値
bsrtclse関数の復帰値を説明します。
復帰値
意味
0
正常にbsrtclse関数が終了しました。
1
処理の中断を指示され、正常に中断処理が終了しました。
次のような状態のときにbsrtclse関数を発行すると処理を中断します。
● ユーザアプリケーションが、bsrtput関数またはbsrtmrge関数でデー
タの終わりを通知していない状態
● ユーザアプリケーションに、bsrtget関数またはbsrtmrge関数がデー
タの終わりを通知していない状態
-1
bsrtclse関数の処理で異常が発生したことを示します。
BSRTREC構造体のerrdetailまたはsub_error_codeに詳細コードが設定さ
れます。
bsrtclse関数のパラメタには、ユーザアプリケーションが新しく設定するメンバはありま
せん。
7.3.3 bsrtput関数
bsrtput関数は、bsrtopen関数でソート機能を指定し、かつユーザアプリケーションからPowerSORT
にレコードを渡す場合に使用します。
146
7.3 BSORT関数の種類
記述形式
#include "bsrt.h"
BSRTFUNC func; (注)
int func.bsrtput(BSPTR_BSRTREC rec);
注) funcはbsrtopen関数で指定したパラメタです。
機能説明
以下にbsrtput関数の機能を示します。
● ユーザアプリケーションからPowerSORTにレコードまたはレコード群を渡します。
● レコードまたはレコード群の終わりをPowerSORTに通知します。
レコード群の渡し方
複数のレコードを一括してPowerSORTに渡す場合は、BSRTREC構造体のrec_lenにレコード群の長さを
指定します。
レコード群の長さは、固定長レコード形式の場合、レコード長のレコード件数倍になります。
可変長レコード形式の場合は、個々のレコードにレコード長の領域(long型)を前置します。レコード
群の長さは、レコードとレコード長の領域の累積長になります。なお、レコード長の領域に設定する
レコード長にはレコード長の領域を含みません。
テキストファイルの場合は、改行文字を含めたレコードを連続領域に並べます。レコード群の長さは、
レコードの先頭から最後のレコードの改行文字までの長さとなります。
パラメタ詳細
BSPTR_BSRTREC rec
bsrtopen関数で指定したrecを指定します。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意
味します。
復帰値
bsrtput関数の復帰値を説明します。
復帰値
0
意味
正常にbsrtput関数が終了しました。
1
正常にレコードまたはレコード群の終わりを受け付けました。
-1
bsrtput関数の処理で異常が発生したことを示します。BSRTREC構造体の
errdetailまたはsub_error_codeに詳細コードが設定されます。
7.3.4 bsrtget関数
bsrtget関数は、bsrtopen関数でソート機能を指定し、かつPowerSORTからソート結果のレコードを受
け取る場合に使用します。
記述形式
#include "bsrt.h"
BSRTFUNC func; (注)
int func.bsrtget(BSPTR_BSRTREC rec);
注) funcはbsrtopen関数で指定したパラメタです。
機能説明
以下にbsrtget関数の機能を示します。
● PowerSORTからレコードまたはレコード群を受け取ります。
● レコードまたはレコード群の終わりをPowerSORTから通知されます。
147
第7章 C言語プログラムからPowerSORTを使用する
返却されるレコード群の形式
個々のレコードを連続した領域に並べて返却します。
固定長レコード形式の場合は、先頭レコードのアドレスがBSRTREC構造体のrec_addrに、レコード群
の長さ(レコード長のレコード件数倍)がBSRTREC構造体のrec_lenに設定されます。
可変長レコード形式の場合は、各レコードの先頭にレコード長を格納した領域(long型)を持つ形式で、
先頭レコードのアドレスがBSRTREC構造体のrec_addrに、レコードとレコード長の領域を累積した長
さがBSRTREC構造体のrec_lenに設定されます。
テキストファイルのレコードの場合は、改行文字を含めたレコードを連続した領域に並べて返却しま
す。先頭レコードのアドレスがBSRTREC構造体のrec_addrに、返却するレコードの累積した長さが
BSRTREC構造体のrec_lenに設定されます。
パラメタ詳細
BSPTR_BSRTREC
rec
bsrtopen関数で指定したrecを指定します。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意
味します。
復帰値
bsrtget関数の復帰値を説明します。
復帰値
意味
0
正常にbsrtget関数が終了しました。
1
正常にbsrtget関数が終了しました。すべてのレコードを渡し終えたため、
BSRTREC構造体のrec_addrとrec_lenに0を設定しました。
通常の処理では、bsrtget関数の復帰値が1になるまでbsrtget関数を繰返
し発行してください。
-1
bsrtget関数の処理で異常が発生したことを示します。BSRTREC構造体の
errdetailまたはsub_error_codeに詳細コードが設定されます。
7.3.5 bsrtmrge関数
bsrtmrge関数は、bsrtopen関数でマージ機能を指定し、PowerSORTにマージするレコードを渡す場合、
およびPowerSORTからマージ結果のレコードを受け取る場合に使用します。
記述形式
#include "bsrt.h"
BSRTFUNC func; (注)
int func.bsrtmrge(BSPTR_BSRTREC rec);
注) funcはbsrtopen関数で指定したパラメタです。
機能説明
以下にbsrtmrge関数の機能を示します。
● ユーザアプリケーションからPowerSORTにマージするレコードを渡します。
● PowerSORTからユーザアプリケーションにマージ結果のレコードが返却されます。
● ストリングの終わりをPowerSORTに通知します。ストリングとは、ソート済のレコードの
集まりのことをいいます。
● マージ結果のレコードの終わりは、PowerSORTからユーザアプリケーションに通知されま
す。
パラメタ詳細
BSPTR_BSRTREC rec
bsrtopen関数で指定したrecを指定します。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意
148
7.3 BSORT関数の種類
味します。
復帰値
bsrtmrge関数の復帰値を説明します。
復帰値
意味
0
正常にbsrtmrge関数が終了しました。
1
正常にbsrtmrge関数が終了しました。すべてのレコードを渡し終えたた
め、BSRTREC構造体のmgrec_addrとmgrec_lenに0を設定しました。
-1
bsrtmrge 関数の処理で異常が発生したことを示します。
BSRTREC構造体のerrdetailまたはsub_error_codeに詳細コードが設定さ
れます。
149
第7章 C言語プログラムからPowerSORTを使用する
7.4 BSORT関数で使用する構造体
BSORT関数で使用する構造体について説明します。
● 基本情報を設定する
― BSRTPRIM構造体
● レコード情報を設定する
― BSRTREC構造体
● キーフィールド情報を設定する
― BSRTKEY構造体
― BSKEY構造体
― BSKANJI構造体
― BSCOL構造体
● ファイル情報を設定する
― BSRTFILE構造体
― BSFILE構造体
― BSFSYS構造体
― BSIDX構造体
― BSIDXKEY構造体
― BSFILE_EXT構造体
― BSFILE_BTRV構造体
― BSFILE_BASE構造体
● レコードオプション情報を設定する
― BSRTOPT構造体
― BSRTSUM構造体
― BSSUM構造体
― BSRTSELE構造体
― BSSELE構造体
― BSRTRCON構造体
― BSRCON構造体
― BSRTSKIP構造体
● その他の構造体
― BSRTFUNC構造体
7.4.1 BSRTPRIM構造体
BSRTPRIM構造体は、ソート処理、マージ処理およびコピー処理など主要な基本情報を設定するための
構造体です。
150
7.4 BSORT関数で使用する構造体
typedef struct {
unsigned long
unsigned char
unsigned char
unsigned char
reserve1;
function;
recform;
optionfunc;
unsigned
unsigned
unsigned
unsigned
unsigned
unsigned
fileoprat;
recoprat;
msglevel;
cdmode;
chklevel;
rec_len;
char
char
char
char
char
long
/*
unsigned long
unsigned long
BSPTR_VOID
unsigned long
BSPTR_UCHAR
unsigned char
input_string;
memory_size;
memory_addr;
input_recno;
fldchar_addr;
debuginfo;
unsigned
unsigned
unsigned
unsigned
unsigned
unsigned
fieldmode;
keyoption;
keyoption2;
linedlmt;
error_happened;
altmode;
char
char
char
char
char
char
unsigned char
} BSRTPRIM;
reserve4;
/*
reserved
*/
reserved
*/
BSRTPRIM構造体メンバ
unsigned char
function
PowerSORTの主要機能を指定します。
以下から1つを選択して指定します。省略はできません。
定義値
意味
BS_SORT
ソート機能
BS_MERGE
マージ機能
BS_COPY
コピー機能
unsigned char
recform
レコード形式を指定します。
以下から1つを選択して指定します。テキストファイルのときは値を指定する必要はありません。
定義値
意味
BS_FREC
固定長レコード形式
BS_VREC
可変長レコード形式
unsigned char
optionfunc
オプション機能を指定します。
必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。
151
第7章 C言語プログラムからPowerSORTを使用する
定義値
意味
BS_FIFO
先入力先出力(FIFO)機能を示します。
BS_SUPPRESSとBS_SUMとは排他関係にあります。(注)
BS_SUPPRESS
サプレス機能を示します。
BS_FIFOとBS_SUMとは排他関係にあります。
BS_SUM
レコード集約機能を示します。BS_FIFOとBS_SUPPRESSとは排他関係に
あります。
BS_SUMを指定したときは、BSRTOPT構造体に集約テーブル(BSRTSUM構
造体)のアドレスを設定する必要があります。
BS_SELECT
レコード選択機能を示します。
BS_SELECT を 指 定 し た と き は 、 BSRTOPT 構 造 体 に 選 択 テ ー ブ ル
(BSRTSELE構造体)のアドレスを設定する必要があります。
BS_RECON
レコード再編成機能を示します。
BS_RECON を 指 定 し た と き は 、 BSRTOPT 構 造 体 に 再 編 成 テ ー ブ ル
(BSRTRCON構造体)のアドレスを設定する必要があります。
BS_REVERSE
降順にソート処理またはマージ処理することを示します。
キーフィールドを省略した場合に有効になります。
BSMSG_STDERR
標準エラー出力にメッセージを出力することを示します。
出力メッセージはBSRTPRIM構造体のmsglevelに依存します。
注) 入力ファイルがMicro Focus COBOLファイルシステムの索引ファイルの場合に先入力先出力
(FIFO)機能を指定すると、インデックス順ではなく物理順で優先順位が決定します。
unsigned char
fileoprat
入出力情報を指定します。
必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。
定義値
意味
BS_OVERWRITE
ソート機能において、入力ファイルの1つと出力ファイルが同一なと
き、処理を継続することを示します。このオプションを指定し、入力
ファイルの1つと出力ファイルが同一な場合、ソート処理中に異常が
発生すると、入力ファイルのデータは保証されない場合がありますの
で、注意してください。
BS_STDIN
標準入力からレコードを入力することを示します。BS_STDINはマージ
機能では指定できません。BSRTFILE構造体で入力ファイルを指定して
いる場合は、無視されます。
BS_STDOUT
標準出力に結果を出力することを示します。BSRTFILE構造体で出力フ
ァイルを指定している場合は、無視されます。
unsigned char
recoprat
PowerSORTとのレコードの受渡し方法を指定します。
複数指定する場合は、入力の受渡し方法と出力の受渡し方法から1つずつ選んでその論理和を指定し
ます。
入力の受渡し方法
定義値
152
意味
BS_IS
bsrtput 関 数 ま た は bsrtmrge 関 数 を 使 用 し て 、 1 レ コ ー ド ず つ
PowerSORTに渡すことを示します。
BS_IM
bsrtput関数を使用して複数のレコードを一括してPowerSORTに渡す
ことを示します。この機能はマージ機能のときは指定できません。
7.4 BSORT関数で使用する構造体
出力の受渡し方法
定義値
意味
BS_OS
bsrtget 関 数 ま た は bsrtmrge 関 数 を 使 用 し て 1 レ コ ー ド ず つ
PowerSORTから受け取ることを示します。
BS_OM
bsrtget関数を使用して複数のレコードを一括してPowerSORTから
受け取ることを示します。この機能はマージ機能のときは指定でき
ません。
unsigned char
msglevel
PowerSORTが出力するメッセージのレベルを指定します。
以下から1つを選択して指定します。
なお、メッセージを標準エラー出力に出力するためには、BSRTPRIM構造体のoptionfuncに
BSMSG_STDERRを設定する必要があります。
定義値
意味
BSMSG_LEVEL0
何も出力しません。
BSMSG_LEVEL1
エラーメッセージを出力します。
BSMSG_LEVEL2
エラーメッセージと情報メッセージを出力します。
unsigned char
cdmode
入力ファイルのコード系を指定します。
以下から1つを選択して指定します。
定義値
意味
BSZD_AU
ASCIIコード系(富士通COBOL形式)
BSZD_AC
ASCIIコード系(Micro Focus COBOL形式、COBOL/2形式)
BSZD_EBCDIC
EBCDICコード系 (注)
BSZD_UCS2
Unicode系(UCS-2形式)
システム標準のバイトオーダ
BSZD_UCS2B
Unicode系(UCS-2形式)
Big endianのバイトオーダ
BSZD_UCS2L
Unicode系(UCS-2形式)
Little endianのバイトオーダ
BSZD_UTF8
Unicode系(UTF-8形式)
注) EBCDICコード系はバイナリファイルの場合に指定可能です。
unsigned char
chklevel
BSORT関数のチェック機構を指定します。
以下から1つを選択して指定します。
定義値
意味
BSCHK_LEVEL0
何もチェックしません。
BSCHK_LEVEL1
インタフェースチェックをします。
インタフェースチェックは、bsrtput関数、bsrtget関数、bsrtmrge関
数でパラメタの正当性をチェックするものです。
unsigned long
rec_len
入力レコード長を指定します。
可変長レコード形式では最大レコード長を指定します。
テキストファイルでは改行コードを含んだ最大レコード長を指定します。
unsigned long
input_string
入力ストリング数を指定します。
ソート機能またはコピー機能を指定したときは0を指定します。
153
第7章 C言語プログラムからPowerSORTを使用する
マージ機能を指定したときは、ストリング数を指定します。
ストリングとは、ソート済のレコードの集まりのことをいいます。
unsigned long
memory_size
PowerSORTが使用する作業域の大きさ(メモリサイズ)をバイト数で指定します。32768~2147482624
バイトの範囲で指定します。
省略する場合は、0を指定します。省略した場合、環境変数BSORT_MEMSIZEの指定があればその大きさ
の作業域を使用し、指定していなければ作業域は自動的に設定されます。2147482625以上の値を指定
した場合は、2147482624を指定したとみなされます。
BSPTR_VOID
memory_addr
PowerSORTが使用する作業域のアドレスを指定します。
省略する場合は、<NULL>を指定します。memory_addrを指定する場合はmemory_sizeでその大きさを指
定する必要があります。不当な値が指定された場合、PowerSORTの処理は保証されません。PowerSORT
の作業域は、システムの制御等によってアドレスが移動しない領域を指定してください。
unsigned long
input_recno
入力レコード件数を概数で指定します。
分からない場合は、0を設定してください。
BSPTR_UCHAR
fldchar_addr
フィールド分離文字列のアドレスを指定します。
テキストファイル浮動フィールド指定のときに有効です。フィールド分離文字列は、\0で終わる文字
列です。
unsigned char
debuginfo
サポートしていないメンバです。何も設定する必要はありません。
unsigned char
fieldmode
テキストファイルのときのフィールドの決め方を指定します。
テキストファイルのときは、必ず指定します。以下から1つを選択して指定します。
定義値
意味
BS_FLTFLD
テキストファイル浮動フィールド指定を示します。
フィールド分離文字列で区切られたフィールドの番号で各フィール
ドを指定します。
フィールド分離文字の位置によりフィールド位置が決定されるため、
レコードごとにフィールド位置(カラム位置)は異なります。
BS_FIXFLD
テキストファイル固定フィールド指定を示します。
バイト位置によって各フィールドを指定します。
unsigned char
keyoption
キーフィールドの操作を指定します。
テキストファイルの場合でキーフィールドの指定を省略したときに有効です。
必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。
154
7.4 BSORT関数で使用する構造体
定義値
意味
BS_BLANK
キーフィールドの先頭の空白とタブを無視します。
BS_DICTIONARY
空白と英数字だけを比較の対象とします。
BS_IGNORE
制御文字コードを無視します。
BS_JUMBO
英小文字を英大文字として比較します。
BS_NUMERIC
符号を含んだ数字の文字列を算術的な値で比較します。文字列中に数
字以外の文字が存在した場合の結果は保証されません。この定義値
は、BS_CHARNUMおよびkeyoption2のBS_WCHRとは排他関係にあります。
BS_CHARNUM
英字と数字の連結データ(例えば、data123など)を英字と数値に分け
て評価し並べます。英字だけを比較の対象として比較後、数字だけの
文字列を算術的な値で比較します。指定フィールドの左から評価し、
有効データ後に出現したデータは無視します。この定義値は、
BS_NUMERICおよびkeyoption2のBS_WCHRとは排他関係にあります。
unsigned char
keyoption2
キーフィールドの操作を指定します。
複数バイトで表現される文字の文字列を文字単位に比較する場合に指定します。テキストファイルの
場合でキーフィールドの指定を省略したときに有効なオプションです。このメンバはkeyoptionの
BS_NUMERICおよびBS_CHARNUMとは排他関係にあります。
必要に応じて、以下を指定します。
定義値
意味
BS_WCHR
unsigned char
複数バイトから成る文字が混在していても文字ごとに比較して並べ
ます。
linedlmt
レコード分離文字を指定します。
テキストファイルのときに有効です。以下から1つを選択して指定します。
定義値
意味
BSLDM_LF
<LF>を改行文字とします。
BSLDM_CR
<CR>を改行文字とします。
BSLDM_CL
<CR><LF>を改行文字とします。
unsigned char
error_happened
サポートしていないメンバです。何も設定する必要はありません。
unsigned char
altmode
ASCIIコードとEBCDICコード間の変換方式を指定します。
以下の場合にASCIIコードとEBCDICコード間の変換が行われます。
● 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がASCIIコード系でキーフィールドの
データ形式がEBCDICコードの場合におけるキーフィールドの比較
● 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系でキーフィールド
のデータ形式がASCIIコードの場合におけるキーフィールドの比較
以下から1つを選択して指定します。
定義値
意味
BSALT_ASCII
EBCDICコードとUS ASCIIコード間のコード変換をします。
BSALT_JIS8
EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。
BSALT_JIS7
EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をしま
す。
155
第7章 C言語プログラムからPowerSORTを使用する
7.4.2 BSRTREC構造体
BSRTREC構造体は、PowerSORTとユーザアプリケーション間でレコードを受け渡すための構造体です。
BSRTREC構造体には、bsrtopen関数発行前にユーザアプリケーションが設定するメンバはありません。
typedef struct {
BSPTR_VOID
unsigned long
unsigned long
unsigned long
BSPTR_VOID
unsigned long
unsigned char
unsigned char
unsigned short
BSPTR_VOID
unsigned long
unsigned long
unsigned long
} BSRTREC;
sort_table;
errdetail;
in_count;
out_count;
rec_addr;
rec_len;
rec_status;
mgrec_status;
mgrec_string;
mgrec_addr;
mgrec_len;
hProcFile;
sub_error_code;
BSRTREC構造体メンバ
BSPTR_VOID
sort_table
bsrtopen関数を処理するときにPowerSORTが使用する作業域のアドレスが設定されます。このメンバ
は、PowerSORTが使用する専用の領域であり、ユーザアプリケーションはbsrtopen関数発行時から
bsrtclse関数の発行が完了するまでの間、内容を保証しなければなりません。
ユーザアプリケーションはこのメンバに対して何もする必要はありません。
unsigned long
errdetail
PowerSORTが処理中にエラーを検出した場合に、BSORT関数のエラー詳細コードが設定されます。ユー
ザアプリケーションは、エラーの発生を各BSORT関数の戻り値から知ることができます。
ユーザアプリケーションはエラー発生時以外にこのメンバを参照する必要はありません。
unsigned long
in_count
PowerSORTがユーザアプリケーションから受け取ったレコード件数を、レコードの受渡し毎にユーザ
アプリケーションに通知します。
このメンバは、ユーザアプリケーションが必要な場合に参照してください。
unsigned long
out_count
PowerSORTがユーザアプリケーションに受け渡したレコード件数を、レコードの受渡し毎にユーザア
プリケーションに通知します。
このメンバは、ユーザアプリケーションが必要な場合に参照してください。
BSPTR_VOID
rec_addr
[bsrtput関数の場合]
PowerSORTに渡すレコードのアドレスを設定します。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合、レコード群のアドレス
を設定します。
[bsrtget関数の場合]
ユーザアプリケーションに返却するレコードのアドレスが設定されます。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合、レコード群のアドレス
156
7.4 BSORT関数で使用する構造体
が設定されます。返却するレコードまたはレコード群がないときは、<NULL>が設定されます。
[bsrtmrge関数の場合]
PowerSORTに渡すレコードのアドレスを設定します。
unsigned long
rec_len
[bsrtput関数の場合]
PowerSORTに渡すレコードの長さを設定します。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合、レコード群の長さを設
定します。テキストファイルのレコードを渡すときは、改行文字を含めたレコードの長さを設定しま
す。
[bsrtget関数の場合]
ユーザアプリケーションに返却するレコードの長さが設定されます。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合、レコード群の長さが設
定されます。返却するレコードがないときは、0が設定されます。
[bsrtmrge関数の場合]
PowerSORTに渡すレコードの長さを設定します。テキストファイルのレコードを渡すときは、改行文
字までの長さを設定します。
unsigned char
rec_status
[bsrtput関数の場合]
レコードを渡し終えたかどうかを通知します。以下のいずれかを設定します。
定義値
意味
BS_CONT
PowerSORTに渡すレコードはまだあります。
BS_ENDDATA
PowerSORTに渡すレコードは終わりました。レコードの終りを通知す
るときのrec_addrとrec_lenには、0を指定します。
[bsrtget関数の場合]
使用しません。
[bsrtmrge関数の場合]
最終レコードか否かを通知します。以下のいずれかを設定します。
定義値
意味
BS_CONT
mgrec_stringのストリングにはレコードがまだあります。
BS_ENDDATA
mgrec_stringのストリングのレコードは終わりました。
unsigned char
mgrec_status
PowerSORTからレコードの入力要求が通知されます。
bsrtmrge関数を使用するときに設定されるメンバです。
以下のいずれかが設定されます。
定義値
意味
BS_REQ
レコードの入力要求を示します。
mgrec_stringが示すストリングのレコードを次のbsrtmrge関数で渡
します。
BS_NOREQ
レコードの入力要求はありません。rec_addrとrec_lenに0を設定し
て、再度bsrtmrge関数を発行します。
unsigned short
mgrec_string
PowerSORTに渡すレコードのストリング番号を設定します。
bsrtmrge関数で最初のレコードを渡すときに0を設定します。2回め以降はPowerSORTがストリング番
号を設定するため参照だけになります。ユーザアプリケーションは、ここで設定されたストリング番
号のレコードを、次のbsrtmrge関数発行時にPowerSORTへ渡してください。
bsrtmrge関数を使用するときに設定されるメンバです。
157
第7章 C言語プログラムからPowerSORTを使用する
BSPTR_VOID
mgrec_addr
ユーザアプリケーションに返却するレコードのアドレスが設定されます。
返却するレコードがないときは<NULL>が設定されます。
bsrtmrge関数を使用するときに設定されるメンバです。
unsigned long
mgrec_len
ユーザアプリケーションに返却するレコードの長さが設定されます。
返却するレコードがないときは0が設定されます。
bsrtmrge関数を使用するときに設定されるメンバです。
unsigned long
hProcFile
PowerSORTが処理のために使用するメンバです。ユーザアプリケーションはこのメンバに対して何も
する必要はありません。
unsigned long
sub_error_code
ファイルシステムまたは漢字ソートマージ機能でエラーが発生した場合、その詳細コードが設定され
ます。Btrieveファイルシステムでエラーが発生した場合は、Btrieveファイルに関するエラーコード
が設定されます。また、漢字ソートマージ機能使用時には、ADJUSTに関するエラーコードまたはICONV
に関するエラーコードが設定されています。
7.4.3 BSRTKEY構造体
BSRTKEY構造体は、ソート処理またはマージ処理するときのキーフィールドを定義するための構造体
です。
キーフィールドの指定を省略した場合、レコード全体をキーフィールドとみなし、コード順に並べま
す。
BSRTKEY構造体の領域を確保する際の領域の大きさはBS_KEYTABSIZE(n)を使って求められます。
BS_KEYTABSIZE(n)は、n個のBSKEY構造体をもつBSRTKEY構造体の大きさを求めるマクロです。
typedef struct {
unsigned long
BSKEY
} BSRTKEY;
entry_no;
key_entry[1];
BSRTKEY構造体メンバ
unsigned long
entry_no
キーフィールドの数を指定します。
0を指定した場合は、キーフィールドの省略を意味します。
BSKEY
key_entry[n]
キーフィールドを指定します。詳細はBSKEY構造体を参照してください。
7.4.4 BSKEY構造体
BSKEY構造体は、個々のキーフィールドを定義するための構造体です。
キーフィールドのデータ形式については、キーフィールドに指定可能なデータ形式を参照してくださ
い。
158
7.4 BSORT関数で使用する構造体
typedef struct {
unsigned long
unsigned long
unsigned char
unsigned char
unsigned char
unsigned char
BSPTR_VOID
} BSKEY;
key_position;
key_length;
key_type;
key_order;
key_option;
key_option2;
subfield_addr;
BSKEY構造体メンバ
unsigned long
key_position
キーフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
unsigned long
key_length
キーフィールドの長さをバイト数で指定します。
データ形式に符号なし2進数(BSKEY_BIT)を指定する場合は、当メンバにマスク値を指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
unsigned char
key_type
キーフィールドのデータ形式を指定します。
キーフィールドのデータ形式については、キーフィールドに指定可能なデータ形式を参照してくださ
い。
unsigned char
key_order
キーフィールドの並びを指定します。
以下のいずれかを指定します。
定義値
BS_ASCND
昇順を示します。(省略値)
BS_REVRS
降順を示します。
unsigned char
意味
key_option
キーフィールドの操作を指定します。
BSOPT_K以外の操作は、テキストファイルのときのみ有効です。必要に応じて以下を指定します。複
数指定する場合は、その論理和を指定します。
159
第7章 C言語プログラムからPowerSORTを使用する
定義値
意味
BSOPT_B
キーフィールドの先頭の空白とタブを無視します。
BSOPT_D
空白と英数字だけを比較の対象とします。
BSOPT_I
制御文字コードを無視します。
BSOPT_J
英小文字を英大文字とみなして比較します。
BSOPT_K
漢字ソートマージ機能を使用します。
BSOPT_N
符号を含む数字の文字列を算術的な値で比較します。文字列中に数字
以外の文字が存在した場合の結果は保証されません。
BSOPT_LNおよびkey_option2のBSOPT2_Wとは排他関係にあります。
BSOPT_LN
英字と数字の連結データ(例えば、data123など)を英字と数値に分け
て評価し並べます。英字だけを比較の対象として比較後、数字だけの
文字列を算術的な値で比較します。指定フィールドの左から評価し、
有効データ後に出現したデータは無視します。
BSOPT_Nおよびkey_option2のBSOPT2_Wとは排他関係にあります。
● 漢字ソートマージ機能を使用する場合は、BSOPT_Bだけが有効です。漢字ソートマージ機
能では、BSOPT_Bの指定があると全角空白も無視します。
● キーフィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、key_optionの
指定はできません。
unsigned char
key_option2
複数バイトで表現される文字の文字列を文字単位に比較する場合の操作を指定します。
ここで指定する定義値は、key_optionのBSOPT_NおよびBSOPT_LNとは排他関係にあります。
必要に応じて以下を指定します。
定義値
意味
BSOPT2_W
複数バイトから成る文字が混在していても、文字ごとに比較して並べ
ます。
データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式ま
たはUnicode UTF-8形式で、入力ファイルのコード系(BSRTPRIM構造体
のcdmode)がEBCDICコード系以外の場合に有効です。
キーフィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、key_option2
の指定はできません。
BSPTR_VOID
subfield_addr
漢字ソートマージ機能または照合順序変更機能を使用する場合に指定します。
● 漢字ソートマージ機能を使用する場合、その方法を定義したBSKANJI構造体のアドレスを
指定します。漢字ソートマージ機能は、BSKEY構造体のkey_optionメンバにBSOPT_Kが指定
されている場合に利用できます。
● 照合順序変更機能を使用する場合は、照合順序変更を定義したBSCOL構造体のアドレスを
指定します。照合順序変更機能は、key_typeにBSKEY_COLが指定されている場合に利用で
きます。
160
7.4 BSORT関数で使用する構造体
7.4.5 BSKANJI構造体
BSKANJI構造体は漢字フィールドおよびふりがなフィールドを定義するための構造体です。
typedef struct {
unsigned char
unsigned char
unsigned
unsigned
unsigned
unsigned
unsigned
} BSKANJI;
Kkey_order[4];
Kkey_form;
char
char
char
long
long
reserve1;
reserve2;
Fkey_type;
Fkey_position;
Fkey_length;
/*
/*
reserved
reserved
*/
*/
BSKANJI構造体メンバ
unsigned char
Kkey_order[4]
漢字フィールドの漢字属性を指定します。
漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで指定
できます。
指定可能な漢字属性を以下に示します。
定義値
意味
BS_BUSHU
部首コード順に並べます。
BS_SOKAKU
総画数順に並べます。
BS_ONYOMI
音読み順に並べます。
BS_KUNYOMI
訓読み順に並べます。
BS_CODE
漢字コード順に並べます。
unsigned char
Kkey_form
漢字ソートマージ機能の方式を指定します。
指定可能な方式を以下に示します。
定義値
意味
BSFM_STD
基本方式(漢字属性の順)に並べます。ふりがなフィールドの指定は必
要ありません。BSKANJI構造体のKkey_orderメンバの指定が必要です。
BSFM_DIC
国語辞典方式(ふりがなの順)に並べます。ふりがなフィールドの指定
が必要となります。
unsigned char
Fkey_type
ふりがなフィールドのデータ形式を指定します。
ふりがなフィールドには、半角文字と全角文字が混在できます。
指定可能なデータ形式を以下に示します。
バイナリファイルの場合
種類
文字
データ形式
定義値
長さ(バイト)
ASCIIコード
BSKEY_ASC
1~レコード長 (注1)
EBCDICコード (注2)
BSKEY_EBC
1~レコード長 (注1)
シフトJISコード
BSKEY_SJI
1~レコード長 (注1)
JEFコード (注2)
BSKEY_JEF
2~レコード長 (2の倍数) (注1)
161
第7章 C言語プログラムからPowerSORTを使用する
テキストファイルの場合
種類
文字
データ形式
ASCIIコード
定義値
BSKEY_ASC
長さ(バイト)
1~レコード長 (注1)
シフトJISコード
BSKEY_SJI
1~レコード長 (注1)
注1) 入力ファイルのレコード再編成機能を指定した場合は、入力レコード再編成後のレコード長
まで指定できます。
注2) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。
unsigned long
Fkey_position
ふりがなフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
unsigned long
Fkey_length
ふりがなフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
7.4.6 BSCOL構造体
BSCOL構造体は照合順序変更機能を定義するための構造体です。
typedef struct {
unsigned char
} BSCOL;
col_char[256];
BSCOL構造体メンバ
unsigned char
col_char[256]
照合順序変更用の256バイトのテーブルを指定します。このテーブルのオフセット値のコード番号の
位置に変更したいコード番号を設定します。なお、256バイトすべてにコードを設定する必要があり
ます。変更したくないコードはオフセット値と同じコードを設定します。
7.4.7 BSRTFILE構造体
BSRTFILE構造体は、入力ファイル、出力ファイル、メッセージファイルおよび一時ファイルの情報を
指定するための構造体です。
BSRTFILE構造体で指定するすべてのファイル情報を省略する場合は、bsrtopen関数のパラメタのfile
に<NULL>を指定します。ファイル情報を指定する場合は、領域を確保した上で指定します。
162
7.4 BSORT関数で使用する構造体
typedef struct {
BSPTR_BSFILE
BSPTR_UCHAR
BSPTR_BSFILE
BSPTR_UCHAR
BSPTR_BSFSYS
unsigned char
unsigned char
unsigned char
BSPTR_BSIDX
BSPTR_BSFILE_EXT
BSPTR_VOID
} BSRTFILE;
inpfile_tbl;
outfile_addr;
tmpfile_tbl;
msgfile_addr;
inpfsys_tbl;
outfsys;
recovery;
reserve[2];
idx_addr;
outfile_tbl;
/*
reserved
*/
reserve2;
BSRTFILE構造体のメンバ
BSPTR_BSFILE
inpfile_tbl
入力ファイルパス名を指定する場合は、入力ファイルパス名を指定したBSFILE構造体のアドレスを設
定します。
標準入力から入力させる場合、またはユーザアプリケーションからレコードを渡す場合(bsrtput関数
またはbsrtmrge関数)は、<NULL>を設定します。
BSPTR_UCHAR
outfile_addr
出力ファイルパス名を指定する場合は、出力ファイルパス名のアドレスを設定します。
出力ファイルパス名は<NULL>で終わる文字列です。
出力ファイルを複数指定する場合は、BSRTFILE構造体のoutfile_tblに設定します。
標準出力に出力させる場合、ユーザアプリケーションにレコードを返す場合(bsrtget関数または
bsrtmrge関数)、または出力ファイルを複数指定する場合は<NULL>を設定します。
BSPTR_BSFILE
tmpfile_tbl
一時ファイルパス名を指定する場合は、一時ファイルパス名を指定したBSFILE構造体のアドレスを設
定します。
一時ファイルパス名を省略する場合は<NULL>を設定します。一時ファイルパス名を省略すると、以下
の優先順位に従って一時ファイルを作成するフォルダを決定します。指定されたフォルダが存在しな
い場合はエラーとなります。
1. 環境変数BSORT_TMPDIRで指定されたフォルダ
2. 環境変数TEMPで指定されたフォルダ
3. 環境変数TMPで指定されたフォルダ
4. Windowsシステムのフォルダ
BSPTR_UCHAR
msgfile_addr
メッセージファイルパス名を指定する場合は、メッセージファイルパス名のアドレスを設定します。
メッセージファイルパス名は<NULL>で終わる文字列です。
メッセージファイルパス名を省略する場合は、<NULL>を設定します。
メッセージファイルパス名を省略した場合、環境変数BSORT_MSGFILEの指定があれば、指定したファ
イルにメッセージを出力します。
BSPTR_BSFSYS
inpfsys_tbl
BSFSYS構造体のアドレスを設定します。
入力ファイルパス名を指定しない場合、またはシステムの標準ファイルシステムだけを使用する場合
は指定を省略できます。
163
第7章 C言語プログラムからPowerSORTを使用する
unsigned char
outfsys
出力ファイルのファイルシステムを設定します。
ファイルシステムについてはBSFSYS構造体を参照してください。出力ファイルパス名を指定しない場
合、またはシステムの標準ファイルシステムを使用する場合は指定を省略できます。
unsigned char
recovery
出力ファイルがファイルシステムの許容量を超えた場合のリカバリ処理を設定します。
リカバリ処理は、出力ファイルがファイルシステムの許容量を超えた場合、複数のファイルに分割し
て出力します。このため、リカバリ処理を指定した場合は出力ファイルを複数指定してください。リ
カバリ処理の指定がないときに出力ファイルがファイルシステムの許容量を超えた場合には、別の出
力ファイルをオープンすることなく出力処理は終了します。リカバリ処理は以下のファイルを処理す
る場合に指定できます。
● システム標準のファイル(テキストファイル、バイナリファイル)
リカバリ処理を指定する場合は以下を指定します。
定義値
意味
BSRC_FILE
BSPTR_BSIDX
リカバリ処理を行います。
idx_addr
BSIDX構造体のアドレスを設定します。
出力ファイルが富士通COBOLファイルシステムの索引ファイルのときに有効です。富士通COBOLファイ
ルシステムの索引ファイルの場合は省略できません。BSIDX構造体については、BSIDX構造体を参照し
てください。
BSPTR_BSFILE_EXT
outfile_tbl
BSFILE_EXT構造体のアドレスを設定します。
リカバリ処理を行う場合の出力ファイルの情報を設定します。
また、入力ファイルまたは出力ファイルのファイルシステムにBtrieveファイルシステムを指定した
場合に、入力Btrieveファイルのオーナーネーム、または出力Btrieveファイルのインデックス情報を
設定します。
7.4.8 BSFILE構造体
BSFILE構造体は、入力ファイルパス名と一時ファイルパス名を指定するための構造体です。
BSFILE構造体の領域を確保する際の領域の大きさはBS_FILESIZE(n)を使って求められます。
BS_FILESIZE(n)は、n個のファイルパス名のポインタをもつBSFILE構造体の大きさを求めるマクロで
す。
typedef struct {
unsigned long
unsigned_char
entry_no;
*file_addr[1];
} BSFILE;
BSFILE構造体メンバ
unsigned long
entry_no
入力ファイルパス名または一時ファイルパス名の数を設定します。
0を設定すると入力ファイルパス名または一時ファイルパス名の指定を省略したものとみなします。
マージ機能で入力ファイルパス名を指定する場合は、入力ファイルパス名の数とBSRTPRIM構造体の
input_stringには同じ値を設定しなければなりません。
unsigned_char
*file_addr[n]
入力ファイルパス名または一時ファイルパス名のアドレスを設定します。
ファイルパス名は、<NULL>で終わる文字列です。
164
7.4 BSORT関数で使用する構造体
7.4.9 BSFSYS構造体
BSFSYS構造体は、入力ファイルシステムを指定するための構造体です。
BSFSYS構造体の領域を確保する際の領域の大きさはBS_INPFSYSSIZE(n)を使って求められます。
BS_INPFSYSSIZE(n)は、n個の入力ファイルシステムの情報をもつBSFSYS構造体の大きさを求めるマク
ロです。
typedef struct {
unsigned long
unsigned char
} BSFSYS;
entry_no;
filesys[1];
BSFSYS構造体メンバ
unsigned long
entry_no
指定する入力ファイルシステムの数を設定します。
unsigned char
filesys[n]
入力ファイルのファイルシステムを設定します。
入力ファイルシステムの指定は、BSFILE構造体のfile_addr[i]に指定したファイルのファイルシステ
ムをfilesys[i]で設定するように、入力ファイルと1対1に対応します。入力ファイルシステムの数が
入力ファイルパス名の数より少ない場合は、最後に指定したファイルシステムが残りのファイルに適
用されます。
指定可能なファイルシステムを以下に示します。
定義値
ファイルシステム
BSFS_DOSFS
システムの標準ファイルシステム(省略値)
BSFS_COBS
富士通COBOLファイルシステム(順ファイル)
BSFS_COBS64
富士通COBOLファイルシステム(BSAM対応順ファイル)
BSFS_COBR
富士通COBOLファイルシステム(相対ファイル)
BSFS_COBI
富士通COBOLファイルシステム(索引ファイル)
BSFS_MFCS
Micro Focus COBOLファイルシステム(順ファイル)
BSFS_MFCR
Micro Focus COBOLファイルシステム(相対ファイル)
BSFS_MFCI
Micro Focus COBOLファイルシステム(索引ファイル)
BSFS_BTRV
Btrieveファイルシステム
BSFS_RDM
RDMファイルシステム
● PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、ア
クセスすることができません。また、富士通COBOLファイルシステム(索引ファイル)を
指定した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもアク
セスすることができません。共用モード、排他モードについては、お使いの富士通COBOL
ファイルシステムのマニュアルを参照してください。
● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定しても、使用する富士通COBOL
ファイルシステムが対応していない場合は富士通COBOLファイルシステム(順ファイル)と
して動作します。BSAM対応については、お使いの富士通COBOLファイルシステムのマニュ
アルを参照してください。
● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定した場合は、富士通COBOLファ
イルシステムの仕様によりレコード排他処理が行われません。
● Micro Focus COBOLファイルシステム(索引ファイル)は、入力ファイルのファイルシステ
165
第7章 C言語プログラムからPowerSORTを使用する
ムとしてのみ指定可能です。
● データが圧縮されたMicro Focus COBOLの索引ファイルを入力ファイルに指定することは
できません。
7.4.10 BSIDX構造体
BSIDX構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデック
スを作成するための構造体です。
BSIDX構造体の領域を確保する際の領域の大きさはBS_IDXTABSIZE(n)を使って求められます。
BS_IDXTABSIZE(n)は、n個のインデックスの情報をもつBSIDX構造体の大きさを求めるマクロです。
typedef struct {
unsigned char
unsigned char
unsigned long
BSIDXKEY
idx_flag;
reserve[3];
entry_no;
idx_entry[1];
/*
reserved
*/
} BSIDX;
BSIDX構造体メンバ
unsigned char
idx_flag
インデックスの作成方法を設定します。
以下から選択して指定します。複数指定する場合は、その論理和を指定します。
定義値
意味
BSIF_COMP
圧縮指定を設定します。
BSIF_CMPR
レコードのデータ圧縮指定を設定します。
unsigned long
entry_no
インデックスの数を指定します。
上限値は富士通COBOLファイルシステムの上限値に従います。
BSIDXKEY
idx_entry[n]
インデックスフィールドを指定します。詳細はBSIDXKEY構造体を参照してください。
7.4.11 BSIDXKEY構造体
BSIDXKEY構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデ
ックスを指定するための構造体です。
typedef struct {
unsigned long
unsigned long
unsigned char
unsigned char
unsigned char
unsigned char
} BSIDXKEY;
166
idx_position;
idx_length;
idx_type;
idx_order;
idx_msub;
idx_comp;
7.4 BSORT関数で使用する構造体
BSIDXKEY構造体のメンバ
unsigned long
idx_position
インデックスフィールドの位置を、レコードの先頭を0としたバイト位置で指定します。
unsigned long
idx_length
インデックスフィールドの長さをバイト数で指定します。
unsigned char
idx_type
インデックスフィールドのデータ形式を指定します。
指定可能なデータ形式と長さを以下に示します。
定義値
長さ
(バイト)
ASCIIコード
BSKEY_ASC
1~254
富士通COBOLのCHARTYPE
Unicode UCS-2形式(注)
BSKEY_UCS2
2~254
(2の倍数)
富士通COBOLのCHARTYPE
Unicode UTF-8形式
BSKEY_UTF8
1~254
富士通COBOLのCHARTYPE
種類
文字
データ形式
意味
注) Unicode UCS-2形式のバイトオーダはLittle endianとなります。
unsigned char
idx_order
インデックスフィールドの並びを指定します。
富士通COBOLファイルシステムの索引ファイルの場合は、昇順を指定します。
定義値
並び
BS_ASCND
unsigned char
昇順を示します。
idx_msub
出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドの
作成方法を指定します。必要に応じて、以下を指定します。最終セグメントには、必ずBS_ISEGEND
を指定します。
定義値
意味
BSIF_DUPS
インデックスに重複キー指定を示します。
BS_IMAIN
主キー指定を示します。
BS_ISUBとは排他関係にあります。
BS_ISUB
副キー指定を示します。
BS_IMAINとは排他関係にあります。
BS_ISEGEND
セグメントの終わりを示します。
unsigned char
idx_comp
現在サポートしていないメンバです。<NULL>を設定します。
7.4.12 BSFILE_EXT構造体
BSFILE_EXT構造体は複数の出力ファイルを指定するための構造体です。
出力ファイルがファイルシステムの許容量を超えたとき、リカバリ処理として複数のファイルへ分割
して出力する場合に指定します。リカバリ処理は、以下のファイルを処理する場合に指定できます。
● システム標準のファイル(テキストファイル、バイナリファイル)
また、Btrieveファイルシステムを指定する場合は、本エントリでは入力ファイルのオーナーネーム
や出力ファイルのインデックス情報を指定します。出力ファイル名は、BSRTFILE構造体の
outfile_addrに設定してください。
BSFILE_EXT構造体の領域を確保する際の領域の大きさはBS_OUTTABSIZE(n)を使って求められます。
BS_OUTTABSIZE(n)は、n個の出力ファイルの情報をもつBSFILE_EXT構造体の大きさを求めるマクロで
す。
167
第7章 C言語プログラムからPowerSORTを使用する
typedef struct {
unsigned long
entry_no;
union {
BSPTR_BSFILE_BASE
BSPTR_BSFILE_BASE
BSPTR_BSFILE_BTRV
} outfile_opt[1];
} BSFILE_EXT;
dosfs;
text;
btrieve;
BSFILE_EXT構造体のメンバ
unsigned long
entry_no
出力ファイルパス名の数を設定します。
システムの標準ファイルシステムの場合は複数の出力ファイルを指定できますが、それ以外のファイ
ルシステムの場合は1を指定します。
0を設定すると出力ファイルの指定を省略したものとみなします。
ファイル拡張情報を設定するメンバ
これらのメンバは、共用体で定義されています。
BSPTR_BSFILE_BASE
outfile_opt[n].dosfs
システムの標準ファイルシステムのバイナリファイルの場合にBSFILE_BASE構造体のアドレスを設定
します。
entry_noで指定した個数分指定します。
BSPTR_BSFILE_BASE
outfile_opt[n].text
システムの標準ファイルシステムのテキストファイルの場合にBSFILE_BASE構造体のアドレスを設定
します。
entry_noで指定した個数分指定します。
BSPTR_BSFILE_BTRV
outfile_opt[n].btrieve
Btrieveファイルシステムの場合にBSFILE_BTRV構造体のアドレスを設定します。
entry_noで指定した個数分指定します。
7.4.13 BSFILE_BTRV構造体
BSFILE_BTRV構造体は、入力Btrieveファイルのオーナーネームまたは出力Btrieveファイルのインデ
ックス情報を指定するための構造体です。
typedef struct {
BSPTR_BSFILE
short int
short int
char
} BSFILE_BTRV;
InOwnerNameTbl;
key_len;
bufsize;
*btrv_spec;
BSFILE_BTRV構造体メンバ
BSPTR_BSFILE
InOwnerNameTbl
入力Btrieveファイルのオーナーネームテーブルのアドレスを設定します。
通常、省略可能で、省略する場合は<NULL>を指定します。
168
7.4 BSORT関数で使用する構造体
short int
key_len
出力Btrieveファイルのインデックスキーの合計長を設定します。
short int
bufsize
出力Btrieveファイルのファイル情報とインデックスキー情報を設定した領域の大きさを設定します。
char
*btrv_spec
出力Btrieveファイルのファイル情報とインデックスキー情報を設定した領域のアドレスを設定しま
す。
オーナーネームテーブル
オーナーネームの指定はBSFILE構造体を使用して指定します。入力ファイルが複数のときは入力ファ
イル名と同じ順でオーナーネームを指定します。オーナーネームがない場合は、BSFILE構造体の
file_addr[i]には<NULL>を指定します。
ファイル情報とインデックスキー情報
ファイル情報とインデックスキー情報は、出力Btrieveファイルのファイル情報およびキー情報を指
定するための領域です。概要は以下のとおりです。テーブルの形式や指定内容に関する詳しい説明に
ついては、Btrieveのプログラマーズガイドまたはオペレーションマニュアルを参照してください。
169
第7章 C言語プログラムからPowerSORTを使用する
7.4.14 BSFILE_BASE構造体
BSFILE_BASE構造体は、出力ファイルごとに固有のファイル情報を指定するための構造体です。
typedef struct {
BSPTR_UCHAR
unsigned char
unsigned char
BSPTR_BSOUT_COND
} BSFILE_BASE;
outfile_addr;
file_kind;
reserve[3];
out_cond;
/*
reserved
*/
BSFILE_BASE構造体のメンバ
BSPTR_UCHAR
outfile_addr
出力ファイルパス名のアドレスを設定します。出力ファイルパス名は、<NULL>で終わる文字列です。
unsigned char
file_kind
出力ファイルのファイルシステムを設定します。
170
7.4 BSORT関数で使用する構造体
複数のファイルシステムを混在させることはできません。ファイルシステムについては、BSFSYS構造
体を参照してください。
BSPTR_BSOUT_COND
out_cond
サポートしていないメンバです。何も設定する必要はありません。
7.4.15 BSRTOPT構造体
BSRTOPT構造体は、集約フィールド、選択フィールド、再編成フィールドおよび読み飛ばしレコード
件数を指定するための構造体です。
typedef struct {
BSPTR_BSRTSUM
BSPTR_BSRTSELE
BSPTR_BSRTRCON
BSPTR_BSRTSKIP
} BSRTOPT;
sum_addr;
sele_addr;
rcon_addr;
skip_addr;
BSRTOPT構造体メンバ
BSPTR_BSRTSUM
sum_addr
BSRTSUM構造体のアドレスを設定します。
BSRTSUM構造体は集約フィールドを定義する構造体です。BSRTSUM構造体は、BSRTPRIM構造体の
optionfuncにBS_SUMを指定したときに有効になります。BSRTPRIM構造体のoptionfuncにBS_SUMを指定
し、集約フィールドを省略するとエラーになります。
レコード集約処理実行中にオーバフローが発生した場合、集約フィールドを含まない短い
レコードが入力された場合、またはテキストレコードの集約処理実行中に集約フィールド
内に不適切なコードが発見された場合、bsrtopen関数の復帰値は0、BSRTREC構造体の
errdetailには、それぞれBSERR_OVERFLOW、BSERR_SUMSHRTREC、BSERR_SUMFIELDが設定さ
れます。
BSPTR_BSRTSELE
sele_addr
BSRTSELE構造体のアドレスを設定します。
BSRTSELE構造体は選択フィールドを定義する構造体です。BSRTSELE構造体は、BSRTPRIM構造体の
optionfuncにBS_SELECTを指定したときに有効になります。BSRTPRIM構造体のoptionfuncにBS_SELECT
を指定し、選択フィールドを省略するとエラーになります。
BSPTR_BSRTRCON
rcon_addr
BSRTRCON構造体のアドレスを設定します。
BSRTRCON構造体は再編成フィールドを定義する構造体です。BSRTRCON構造体は、BSRTPRIM構造体の
optionfuncにBS_RECONを指定したときに有効になります。BSRTPRIM構造体のoptionfuncにBS_RECON
を指定し、再編成フィールドを省略するとエラーになります。
再編成フィールドを指定した場合、キーフィールドと集約フィールドで指定する位置は、
再編成後のレコードの先頭から計算します。
171
第7章 C言語プログラムからPowerSORTを使用する
BSPTR_BSRTSKIP
skip_addr
BSRTSKIP構造体のアドレスを設定します。
BSRTSKIP構造体は読み飛ばすレコード件数を定義する構造体です。BSRTSKIP構造体は、BSRTFILE構造
体で入力ファイル名を指定したときに有効になります。
7.4.16 BSRTSUM構造体
BSRTSUM構造体は、レコード集約機能を使用する場合に、集約フィールドを定義するための構造体で
す。
テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式で記述され
た数字(半角)だけを処理の対象とします。
BSRTSUM構造体の領域を確保する際の領域の大きさはBS_SUMTABSIZE(n)を使って求められます。
BS_SUMTABSIZE(n)は、n個のBSRTSUM構造体の大きさを求めるマクロです。
typedef struct {
unsigned long
BSSUM
} BSRTSUM;
entry_no;
sum_entry[1];
BSRTSUM構造体メンバ
unsigned long
entry_no
集約フィールドのエントリ数を設定します。
このメンバに0を設定すると指定を省略したものとみなします。
BSSUM
sum_entry[n]
集約フィールドを設定します。詳細はBSSUM構造体を参照してください。
7.4.17 BSSUM構造体
BSSUM構造体は、個々の集約フィールドを定義するための構造体です。
typedef struct {
unsigned long
unsigned long
unsigned char
unsigned char
unsigned char
unsigned char
} BSSUM;
sum_position;
sum_length;
sum_type;
sum_resultsign
sum_resultnumber;
reserve;
/*
reserved
*/
BSSUM構造体メンバ
unsigned long
sum_position
集約フィールドの位置を設定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
unsigned long
sum_length
集約フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
172
7.4 BSORT関数で使用する構造体
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、指定したフィールド長に拡張して処理します。集約フィールドに指定可能な長さはデータ形
式によって異なります。詳細は集約フィールドに指定可能なデータ形式を参照してください。
unsigned char
sum_type
集約フィールドのデータ形式を指定します。
詳細は集約フィールドに指定可能なデータ形式を参照してください。
unsigned char
sum_resultsign
テキストファイルの場合に符号の有無を指定します。
必要に応じて、以下を指定します。
定義値
意味
BS_SIGNED
集約フィールドの値に符号をつけます。BS_PLUSUNSIGNEDとは排他関
係にあります。
集 約 フ ィ ー ル ド の 値 が 負 の 値 の 場 合 だ け 符 号 (-) を つ け ま す 。
BS_SIGNEDとは排他関係にあります。
指定を省略した場合は入力されたデータに従って、以下の処理をします。
● 符号付きデータ同士を集約した場合は、集約結果に符号をつけます。
● 集約結果が負数(-)の場合は、集約結果に符号をつけます。
● 符号なしデータと符号付きデータの集約結果が正数(+)の場合は、集約結果に符号をつけ
ません。
● 符号なしデータ同士を集約した場合は、集約結果に符号をつけません。
● 符号なしデータと符号付きデータを集約して、結果が0の場合は、符号をつけません。
● 符号付きデータ同士を集約して、結果が0の場合は+符号を付けます。
BS_PLUSUNSIGNED
unsigned char
sum_resultnumber
テキストファイルの場合に集約フィールドの値がフィールド長に満たない場合の扱いを指定します。
必要に応じて、以下を指定します。
定義値
意味
BS_ZEROPADDING
集約フィールドの値がフィールド長に満たない場合、左余白にゼロ
(0)を詰めます。例えば、集約フィールドの値が1234という4バイトの
数字であり、集約フィールド長が6バイトの場合、001234という数字
にします。BS_BLANKPADDING、BS_ZBDELETEとは排他関係にあります。
BS_BLANKPADDING
集約フィールドの値がフィールド長に満たない場合、左余白に空白を
詰めます。例えば、集約フィールドの値が1234という4バイトの数字
であり、集約フィールド長が6バイトの場合、__1234(_は空白を表わ
す)という数字にします。BS_ZEROPADDING、BS_ZBDELETEとは排他関係
にあります。
集約フィールドの先頭から空白、タブおよび'0'を削除します。集約
フィールドの先頭に空白、タブおよび'0'がある場合、左から評価し、
'0'以外の数字が出現するまでの空白、タブおよび'0'を削除します。
例えば、'00123'の場合、'123'という数字にします。ただし、集約フ
BS_ZBDELETE
ィールドが0(0、0000、+000など)の場合、最後の'0'は削除されませ
ん。テキストファイル浮動フィールド指定の場合に指定可能です。
BS_ZEROPADDING、BS_BLANKPADDINGとは排他関係にあります。
指定を省略した場合は、入力されたデータにしたがって以下の処理をします。
● 出力結果の左余白に0を詰める場合の条件
― 左余白に'0'が詰められているデータ同士のとき
― 左余白に'0'が詰められているデータと左余白に空白が詰められているデータのと
き
― 左余白に'0'が詰められているデータと左余白にタブが詰められているデータのと
き
173
第7章 C言語プログラムからPowerSORTを使用する
● 出力結果の左余白に空白を詰める場合の条件
― 左余白に空白が詰められているデータ同士のとき
― 左余白にタブが詰められているデータ同士のとき
― 左余白に空白が詰められているデータと左余白にタブが詰められているデータの
とき
集約フィールドの加算処理中にオーバフローが生じた場合の動作は、環境変数
BSORT_SUMOVERCONTの指定によります。
7.4.18 BSRTSELE構造体
BSRTSELE構造体は、レコード選択機能を使用する場合に、選択フィールドを定義するための構造体で
す。
BSRTSELE構造体の領域を確保する際の領域の大きさはBS_SELETABSIZE(n)を使って求められます。
BS_SELETABSIZE(n)は、n個のBSRTSELE構造体の大きさを求めるマクロです。
typedef struct {
unsigned long
BSSELE
} BSRTSELE;
entry_no;
sele_entry[1];
BSRTSELE構造体メンバ
unsigned long
entry_no
選択フィールドのエントリ数を指定します。
このメンバに0を設定すると指定を省略したものとみなします。
BSSELE
sele_entry[n]
選択フィールドを指定します。
詳細はBSSELE構造体を参照してください。
7.4.19 BSSELE構造体
BSSELE構造体は、個々の選択フィールドを定義するための構造体です。
174
7.4 BSORT関数で使用する構造体
typedef struct {
unsigned char
unsigned char
unsigned char
unsigned char
sele_cmpoprat;
sele_type1;
sele_type2;
sele_option;
unsigned long
unsigned long
union {
unsigned long
BSPTR_UCHAR
} pos2;
unsigned long
unsigned char
unsigned char
unsigned char
unsigned char
unsigned long
unsigned long
BSPTR_VOID
} BSSELE;
sele_position1;
sele_length1;
sele_position2;
sele_literal;
sele_length2;
sele_trueop;
sele_falseop;
sele_mask;
sele_option2;
sele_truejmp;
sele_falsejmp;
subfield_addr;
BSSELE構造体メンバ
unsigned char
sele_cmpoprat
比較演算子を指定します。
以下に、比較演算子と真の条件について説明します。
比較演算子と真の条件
比較演算子
真の条件
BSCOND_EQ
被比較フィールド = 比較フィールドまたは自己規定値
BSCOND_NE
被比較フィールド ≠ 比較フィールドまたは自己規定値
BSCOND_GT
被比較フィールド > 比較フィールドまたは自己規定値
BSCOND_GE
被比較フィールド ≧ 比較フィールドまたは自己規定値
BSCOND_LT
被比較フィールド < 比較フィールドまたは自己規定値
BSCOND_LE
被比較フィールド ≦ 比較フィールドまたは自己規定値
unsigned char
sele_type1
被比較フィールドのデータ形式を指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
unsigned char
sele_type2
比較フィールドのデータ形式を指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。なお、比較
フィールドに自己規定値を指定するときは、sele_type2にBS_LITERALを指定します。
unsigned char
sele_option
被比較フィールドの操作を指定します。
テキストファイルの場合に有効です。必要に応じて、以下を指定します。複数指定する場合は、その
論理和を指定します。
175
第7章 C言語プログラムからPowerSORTを使用する
操作
意味
BSOPT_B
フィールドの先頭の空白とタブを無視します。
BSOPT_D
空白と英数字だけを比較の対象とします。
BSOPT_I
制御文字コードを無視します。
BSOPT_J
英小文字を英大文字とみなして比較します。
BSOPT_N
符号を含む数字の文字列を算術的な値で比較します。文字列中に数
字以外の文字が存在した場合の結果は保証されません。
sele_option2のBSOPT2_Wとは排他関係にあります。
被比較フィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、被比較フィ
ールドの操作は指定できません。
unsigned long
sele_position1
被比較フィールドの位置を設定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
unsigned long
sele_length1
被比較フィールドの長さを設定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
unsigned long
pos2.sele_position2
比較フィールドの位置を設定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
pos2.sele_literalとは共用体で定義されています。自己規定値を指定するときは、
pos2.sele_literalに設定します。
BSPTR_UCHAR
pos2.sele_literal
自己規定値のアドレスを設定します。
テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列を含むことはで
きません。pos2.sele_position2とは共用体で定義されています。自己規定値以外を指定するときは、
pos2.sele_position2に設定します。
unsigned long
sele_length2
比較フィールドまたは自己規定値の長さを設定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
unsigned char
sele_trueop
比較結果が真のときの処理を設定します。
最後のエントリのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を設定します。
比較結果の処理については以下を参照してください。
176
7.4 BSORT関数で使用する構造体
比較結果の処理方法
処理の種類
INCLUDE
OMIT
次の選択フィールドの処理
指定選択フィールドへ飛ぶ
unsigned char
定義値
意味
BSSEL_INCLUDE
比較処理の終りとレコードを処理対象と
することを示します。
BSSEL_OMIT
比較処理の終りとレコードを処理対象外
とすることを示します。
BSSEL_NEXT
次の比較処理に移ることを示します。
BSSEL_JUMP
指定した比較処理に移ることを示しま
す。
sele_falseop
比較結果が偽のときの処理を設定します。
最後のエントリのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を設定します。
比較結果の処理については、比較結果の処理方法を参照してください。
BSPTR_UCHAR
sele_mask
サポートしていないメンバです。何も設定する必要はありません。
unsigned char
sele_option2
複数バイトで表現される文字の文字列を文字単位に比較する場合の操作を指定します。
必要に応じて、以下を指定します。
定義値
意味
BSOPT2_W
複数バイトから成る文字が混在していても文字ごとに比較します。
データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式ま
たはUnicode UTF-8形式で、入力ファイルのコード系(BSRTPRIM構造体
のcdmode)がEBCDICコード系以外の場合に有効です。
被比較フィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、被比較フィ
ールドの操作は指定できません。
unsigned long
sele_truejmp
sele_trueopにBSSEL_JUMPを設定したときの飛び先を設定します。
iを設定すると真のとき、sele_entry[i]の選択フィールドの処理に移ります。sele_truejmpと
sele_falsejmpには、自身のエントリ番号+1~entry_no-1の範囲の値を設定します。
unsigned long
sele_falsejmp
sele_falseopにBSSEL_JUMPを設定したときの飛び先を設定します。
iを設定すると偽のとき、sele_entry[i]の選択フィールドの処理に移ります。sele_truejmpと
sele_falsejmpには、自身のエントリ番号+1~entry_no-1の範囲の値を設定します。
BSPTR_VOID
subfield_addr
照合順序変更機能を使用する場合、照合順序変更を定義したBSCOL構造体のアドレスを指定します。
照合順序変更機能は、sele_type1、またはsele_type2にBSKEY_COLが指定されている場合に利用でき
ます。
選択フィールド複合条件の指定方法
選択フィールドは、複数の選択フィールドを指定することで複合条件を指定することができます。こ
こでは、複合条件の指定方法を説明します。
1つの選択フィールドは、1つの論理式を表現します。
177
第7章 C言語プログラムからPowerSORTを使用する
次の複合条件を満たすレコードを選択する場合の指定方法を以下に示します。
例)
(論理式1 ∩ 論理式2) ∪ 論理式3
∩:論理積
∪:論理和
entry_no = 3
[0] 論理式1 true BSSEL_NEXT
[1] 論理式2 true BSSEL_INCLUDE
[2] 論理式3 true BSSEL_INCLUDE
false BSSEL_JUMP 2
false BSSEL_NEXT
false BSSEL_OMIT
7.4.20 BSRTRCON構造体
BSRTRCON構造体は、レコード再編成機能を使用する場合に、再編成フィールドを定義するための構造
体です。
BSRTRCON構造体の領域を確保する際の領域の大きさはBS_RCONTABSIZE(n)を使って求められます。
BS_RCONTABSIZE(n)は、n個のBSRTRCON構造体の大きさを求めるマクロです。
typedef struct {
unsigned long
BSRCON
entry_no;
rcon_entry[1];
} BSRTRCON;
BSRTRCON構造体のメンバ
unsigned long
entry_no
再編成フィールドのエントリ数を設定します。
このメンバに0を設定すると指定を省略したものとみなします。
BSRCON
rcon_entry[n]
再編成フィールドを指定します。
詳細はBSRCON構造体を参照してください。
再編成フィールドを指定した場合、キーフィールドと集約フィールドで指定する位置は、
レコード再編成後の位置を指定します。
7.4.21 BSRCON構造体
BSRCON構造体は、個々の再編成フィールドを定義するための構造体です。
typedef struct {
union {
unsigned long
BSPTR_UCHAR
} pos;
unsigned long
unsigned char
unsigned char
} BSRCON;
178
rcon_position;
rcon_literal;
rcon_length;
rcon_consinf;
reserve[3];
/*
reserved
*/
7.4 BSORT関数で使用する構造体
BSRCON構造体メンバ
unsigned long
pos.rcon_position
再編成フィールドの位置を設定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ
ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指
定します。
このフィールドに指定する再編成フィールドの位置は、PowerSORTが入力するレコードのフィールド
位置です。pos.rcon_literalとは共用体で定義されています。自己規定値を指定したいときは、
pos.rcon_literalに設定します。
BSPTR_UCHAR
pos.rcon_literal
自己規定値のアドレスを設定します。
テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできま
せん。テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列およびレ
コード分離文字を含むことはできません。pos.rcon_positionとは共用体で定義されています。入力
レコード中のフィールドを指定したい場合は、pos.rcon_positionに設定します。
unsigned long
rcon_length
再編成フィールドまたは自己規定値の長さを指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた
場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた
場合は、実際のフィールド長で処理します。
rcon_consinfにBS_RECENDを指定する場合は、0を指定してください。
unsigned char
rcon_consinf
入力レコード中のフィールドを再編成フィールドにするか、または自己規定値を再編成フィールドに
するかを設定します。
テキストファイル浮動フィールド指定の処理で自己規定値を指定した場合、PowerSORTがフィールド
分離文字列を追加して再編成します。
定義値
意味
BS_FIELD
入力レコード中のフィールドを再編成フィールドに指定します。
BS_LITERAL
自己規定値を再編成フィールドに指定します。
BS_RECEND
指定位置からレコードの最後までを再編成フィールドに指定します。
7.4.22 BSRTSKIP構造体
BSRTSKIP構造体は、入力ファイルの先頭から不要なレコードを処理前に読み飛ばす場合に、読み飛ば
すレコード件数を定義するための構造体です。
BSRTSKIP構造体の領域を確保する際の領域の大きさはBS_SKIPTABSIZE(n)を使って求められます。
BS_SKIPTABSIZE(n)は、n個のBSRTSKIP構造体の大きさを求めるマクロです。
typedef struct {
unsigned long
unsigned long
entry_no;
skip_recnum[1];
} BSRTSKIP;
BSRTSKIP構造体メンバ
unsigned long
entry_no
読み飛ばすレコード件数のエントリ数を指定します。
このメンバに0を設定すると指定を省略したものとみなします。
179
第7章 C言語プログラムからPowerSORTを使用する
unsigned long
skip_recnum[n]
読み飛ばすレコード件数を指定します。
0を指定するとすべてのレコードが処理対象となります。入力ファイルの指定順に合わせて入力ファ
イルごとにレコード件数を指定します。
入力ファイル数より読み飛ばすレコード件数の指定が少ない場合は、指定のない入力ファイルのレコ
ードはすべて処理対象となります。入力ファイル数より読み飛ばすレコード件数の指定が多い場合は、
ファイルに対応しない指定が無視されます。
7.4.23 BSRTFUNC構造体
BSRTFUNC構造体は、BSORT関数の各アドレスが設定される構造体です。
typedef struct {
int (BSPTR_BSRT bsrtput) (BSPTR_BSRTREC);
int (BSPTR_BSRT bsrtget) (BSPTR_BSRTREC);
int (BSPTR_BSRT bsrtmrge) (BSPTR_BSRTREC);
int (BSPTR_BSRT bsrtinit) (long int, struct _BSRTFUNC BSPTR_BSRT,
BSPTR_BSRTPRIM, BSPTR_BSRTREC, BSPTR_BSRTKEY, BSPTR_BSRTFILE, BSPTR_BSRTOPT);
int (BSPTR_BSRT bsrtterm) (BSPTR_BSRTPRIM, BSPTR_BSRTREC);
unsigned long
unsigned long
BSPTR_VOID
} BSRTFUNC;
reserve1;
reserve2;
handle;
/*
/*
reserved
reserved
*/
*/
BSRTFUNC構造体メンバ
int (BSPTR_BSRT bsrtput) (BSPTR_BSRTREC)
bsrtopen関数により、bsrtput関数のアドレスが設定されます。
このメンバは、更新しないでください。
int (BSPTR_BSRT bsrtget) (BSPTR_BSRTREC)
bsrtopen関数により、bsrtget関数のアドレスが設定されます。
このメンバは、更新しないでください。
int (BSPTR_BSRT bsrtmrge) (BSPTR_BSRTREC)
bsrtopen関数により、bsrtmrge関数のアドレスが設定されます。
このメンバは、更新しないでください。
int (BSPTR_BSRT bsrtinit) (long int, struct _BSRTFUNC BSPTR_BSRT,BSPTR_BSRTPRIM,
BSPTR_BSRTREC, BSPTR_BSRTKEY,BSPTR_BSRTFILE, BSPTR_BSRTOPT)
PowerSORTが実行中に使用するメンバです。
このメンバは、参照および更新をする必要はありません。
int (BSPTR_BSRT bsrtterm) (BSPTR_BSRTPRIM, BSPTR_BSRTREC)
PowerSORTが実行中に使用するメンバです。
このメンバは、参照および更新をする必要はありません。
BSPTR_VOID
handle
PowerSORTが実行中に使用するメンバです。
このメンバは、参照および更新をする必要はありません。
180
第8章 メッセージとエラーコード
ここでは、bsort、bsortexの各コマンドおよびBSORT関数が出力するメッセージと、PowerSORT OCX
およびBSORT関数が返すエラー詳細コードについて説明します。
第8章 メッセージとエラーコード
8.1 メッセージ
PowerSORTが出力するメッセージには、情報メッセージとエラーメッセージがあります。
また、環境変数BSORT_EVENTLOGにYESの指定がある場合は、動作結果に応じたイベントログを出力し
ます。
8.1.1 情報メッセージ
情報メッセージは、環境変数BSORT_MSGLEVEL、bsortexコマンドの-optionオプションのmsglevelオペ
ランド、bsortコマンドの-lオプションまたはBSORT関数のBSRTPRIM構造体で情報メッセージの出力を
指定した場合に出力されます。
システムの地域設定を日本以外に指定すると情報メッセージは英語で出力されます。
8.1.1.1 メッセージの説明形式
以下にメッセージの説明形式を示します。
日本語メッセージ
英語メッセージ
埋込み変数
メッセージ中の変数を示します。
%s: %sの位置に示されている文字列の意味
処置
PowerSORTの処置を示します。
8.1.1.2 情報メッセージ
以下に情報メッセージを示します。
Business Sort <<< %s1 >>> DATE %s2 TIME %s3
Business Sort <<< %s1 >>> DATE %s2 TIME %s3
埋込み変数
%s1: PowerSORTのバージョン
%s2: 日付
%s3: 時刻
処置
処理を開始または終了します。
182
8.1 メッセージ
入力レコード件数は%sです.
Number of input records is %s.
埋込み変数
%s: 入力ファイルから読み込んだすべてのレコード件数またはユーザアプリケーションから受け取
ったすべてのレコード件数
処置
処理を継続します。
出力レコード件数は%sです.
Number of output records is %s.
埋込み変数
%s: 出力ファイルに出力したすべてのレコード件数またはユーザアプリケーションへ返却したすべ
てのレコード件数
処置
処理を継続します。
削除レコード件数は%sです.
Number of suppress records is %s.
埋込み変数
%s: レコードの選択、集約またはサプレス機能で処理の対象外になったレコード件数
処置
処理を継続します。
8.1.2 エラーメッセージ
bsortコマンド、bsortexコマンドおよびBSORT関数が出力するエラーメッセージについて説明します。
システムの地域設定を日本以外に指定するとエラーメッセージは英語で出力されます。
8.1.2.1 メッセージの説明形式
以下にメッセージの説明形式を示します。
日本語メッセージ
英語メッセージ
埋込み変数
メッセージ中の変数を示します。
%s: %sの位置に示されている文字列の意味
%d: %dの位置に示されている数値の意味
エラー原因
エラーの原因を示します。
183
第8章 メッセージとエラーコード
処置
PowerSORTの処置を示します。
ユーザ対処
ユーザの対処方法を示します。
8.1.2.2 エラーメッセージ
以下にエラーメッセージを示します。
オプション(%s)は省略できません.
Option (%s) is not specified.
埋込み変数
%s: 必要とするオプション
エラー原因
次のいずかの場合に出力されます。
● 標準出力許可(-w)の指定がない場合、出力ファイル名(-o)の指定を省略できません。
● COBOLファイルまたはRDMファイルを指定した場合は、レコード形式(recform(-record)ま
たは-Z)の指定を省略できません。
処置
処理を中断します。
ユーザ対処
必要なオプションを指定して、再度実行してください。
オプション(%s1)と(%s2)は同時に指定できません.
Exclusive options (%s1), (%s2) are specified.
埋込み変数
%s1: 排他関係にあるオプション1
%s2: 排他関係にあるオプション2
エラー原因
次のいずれかの場合に出力されます。
● ソート機能(-s)、マージ機能(-m)、コピー機能(-c)のいずかを同時に指定しています。
● 先入力先出力(FIFO)機能(fifo(-option)または-f)、サプレス機能(suppress(-summary)
または-u)、レコード集約機能(field(-summary)または-g)のいずれかを同時に指定してい
ます。
● コ ピ ー 機 能 (-copy ま た は -c) と 他 の オ プ シ ョ ン (fifo(-option) 、 -summary 、
overwrite(-input)または-f、-u、-g、-r、-v)のいずれかを同時に指定しています。
● マージ機能(-mergeまたは-m)と上書き許可(overwrite(-input)または-v)を同時に指定し
ています。
処置
処理を中断します。
ユーザ対処
排他関係にあるオプションの指定を修正して、再度実行してください。
184
8.1 メッセージ
オプション(%s)が重複しています.
Duplicate options (%s) are specified.
埋込み変数
%s: 重複しているオプション
エラー原因
フィールド指定以外のオプションを重複して指定しています。
処置
処理を中断します。
ユーザ対処
オプションの重複を修正して、再度実行してください。
オプション(%s)の指定に誤りがあります.
Invalid option (%s) is specified.
埋込み変数
%s: 不当なオプション
エラー原因
次のいずれかの場合に出力されます。
● オプションとして認識できない文字列があります。
● マージ機能(-m)を指定していますが、入力ファイルの指定がありません。
● ファイルシステム(-F)の指定が許されたもの以外です。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
オプション(%s)の値に誤りがあります.
Invalid value (%s) is specified.
埋込み変数
%s: 不当なオプション
エラー原因
次のいずれかの場合に出力されます。
● レコード長(-z)、メッセージ出力レベル(-l)の指定が数値ではありません。
● 当該オプションの値として許されたもの以外です。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
185
第8章 メッセージとエラーコード
引数ファイルに誤りがあります.
The mistake is found in argument file.
埋込み変数
なし
エラー原因
アーギュメントファイル(引数ファイル)内のクォーテーション( ' )またはダブルクォーテーション
( " )がペアになっていません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
文法的な誤り(%s)があります.
Syntax error (%s).
埋込み変数
%s: 文法的な誤りを検出した文字列
エラー原因
次のいずれかの場合に出力されます。
● 引数が必要なオプションに引数がありません。
● 引数なしオプション(例えば -s、-m、-f、-u、-v)と引数付オプション(例えば、-y、-z、
-o)を連続して指定しています。
処置
処理を中断します。
ユーザ対処
オプションまたはオペランドの指定形式を修正して、再度実行してください。
キーフィールド(%d)の指定に誤りがあります.
The mistake is found in the key-field(%d) specification.
埋込み変数
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
● 形式に誤りがあります。
● キーフィールド(BSRTKEY構造体のkey_entry[%d])の指定に誤りがあります。
● 当該データ形式で許しているフィールド長を超えています。または不当な値です。
● フィールド長の指定がレコード長を超えています。または、レコード長の指定がありませ
ん。
● オプションの指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
186
8.1 メッセージ
集約フィールド(%d)の指定に誤りがあります.
The mistake is found in the summation-field(%d) specification.
埋込み変数
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
● 形式に誤りがあります。
● 集約フィールド(BSRTSUM構造体のsum_entry[%d])の指定に誤りがあります。
● BSRTPRIM構造体のoptionfuncでBS_SUMを指定していますが、BSRTSUM構造体の指定があり
ません。
● 当該データ形式で許しているフィールド長を超えています。または不当な値です。
● フィールド長の指定がレコード長を超えています。または、レコード長の指定がありませ
ん。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
再編成フィールド(%d)の指定に誤りがあります.
The mistake is found in the reconstruction-field(%d) specification.
埋込み変数
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
● 形式に誤りがあります。
● BSRTPRIM構造体のoptionfuncでBS_RECONを指定していますが、BSRTRCON構造体の指定があ
りません。
● 構成情報(rcon_consinf)の指定が認識できません。または指定されていません。
● bsortコマンドの引数(-e self.len typ)の自己規定値の長さ(len)より長い自己規定値
(self)を指定しました。
● bsortexコマンドの引数(-input reconst=self-def.len typ)の自己規定値の長さ(len)よ
り長い自己規定値(self-def)を指定しました。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
187
第8章 メッセージとエラーコード
選択フィールド(%d)の指定に誤りがあります.
The mistake is found in the selection-field(%d) specification.
埋込み変数
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
● 形式に誤りがあります。
● 選択フィールド(BSRTSELE構造体のsele_entry[%d])の指定に誤りがあります。
● BSRTPRIM構造体のoptionfuncでBS_SELECTを指定していますが、BSRTSELE構造体の指定が
ありません。
● 当該データ形式で許しているフィールド長を超えています。または不当な値です。
● フィールド長の指定がレコード長を超えています。または、レコード長の指定がありませ
ん。
● 真または偽のオペレーションあるいは飛び先に誤りがあります。
● オプションの指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
環境変数の指定に誤りがあります.
Invalid environment variable is specified.
埋込み変数
なし
エラー原因
環境変数の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
環境変数(%s)の指定に誤りがあります.
Invalid environment variable (%s) is specified.
埋込み変数
%s: 誤りを検出した環境変数
エラー原因
環境変数の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
188
8.1 メッセージ
bsrtopen関数で指定したBSRTPRIM(%s)に誤りがあります.
The mistake is found in BSRTPRIM(%s) specified by the bsrtopen function.
埋込み変数
%s: 誤りを検出したフィールド名
エラー原因
次のいずれかの場合に出力されます。
● 機能種別(function)を認識できません。または、指定されていません。
● レコード形式(recform)が認識できません。または、指定されていません。
● オプション機能(optionfunc)が認識できません。
● ファイル操作指示(fileoprat)が認識できません。
● レコード操作指示(recoprat)が認識できません。
● メッセージ出力レベル(msglevel)が認識できません。または、指定されていません。
● 入力コード指示(cdmode)が認識できません。
●
●
●
●
●
チェックレベル(chklevel)が認識できません。
キーオプション(keyoption)が認識できません。
キーオプション2(keyoption2)が認識できません。
マージ機能のとき、ファイル数またはストリング数の指定がありません。
マージ機能のとき、標準入力からレコードを入力するよう指定されています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
bsrtopen関数で指定したBSRTFILE(%s)に誤りがあります.
The mistake is found in BSRTFILE(%s) specified by the bsrtopen function.
埋込み変数
%s: 誤りを検出したフィールド名
エラー原因
次のいずれかの場合に出力されます。
● 入力ファイル(infile_tbl)内の指定に誤りがあります。
● 出力ファイル(outfile_tbl)内の指定に誤りがあります。
● 一時ファイル(tmpfile_tbl)内の指定に誤りがあります。
● メッセージファイル(msgfile_addr)内の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
189
第8章 メッセージとエラーコード
bsrtopen関数で指定したBSRTOPT(%s)に誤りがあります.
The mistake is found in BSRTOPT(%s) specified by the bsrtopen function.
埋込み変数
%s: 誤りを検出したフィールド名
エラー原因
次のいずれかの場合に出力されます。
● オプション機能(optfunc)が認識できません。
● 出力レコード位置(outrecpos)が認識できません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
キーフィールドと集約フィールド,または集約フィールドと集約フィールドが重なっています.
Key field and summation field positions, or summation fields positions are identical.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● キーフィールドと集約フィールドが重なっています。
● 集約フィールド同士が重なっています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
bsrtput関数の使用方法に誤りがあります.
Invalid use for bsrtput function.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● ファイルから入力するよう指定しているときに、bsrtput関数を発行しています。
● bsrtput関数でBS_ENDDATA(レコード渡し終了)を指定した後、bsrtput関数を発行していま
す。
● bsrtopen関数でマージ機能を指定しているときに、ソート機能専用のbsrtput関数を発行
しています。
処置
処理を中断します。
ユーザ対処
誤りの原因を修正して、再度実行してください。
190
8.1 メッセージ
bsrtget関数の使用方法に誤りがあります.
Invalid use for bsrtget function.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● ファイルに出力するよう指定しているときに、bsrtget関数を発行しています。
● bsrtput関数でBS_ENDDATA(レコード渡し終了)を指定する前に(レコード渡し途中)、
bsrtget関数を発行しています。
● PowerSORTからレコードの終了通知後、bsrtget関数を発行しています。
● bsrtopen関数でマージ機能を指定しているときに、ソート機能専用のbsrtget関数を発行
しています。
処置
処理を中断します。
ユーザ対処
誤りの原因を修正して、再度実行してください。
bsrtmrge関数の使用方法に誤りがあります.
Invalid use for bsrtmrge function.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● bsrtopen関数で入力ファイルと出力ファイルを指定しているときに、bsrtmrge関数を発行
しています。
● PowerSORTからレコードの終了通知後、bsrtmrge関数を発行しています。
● bsrtopen関数でソート機能を指定したときに、マージ機能専用のbsrtmrge関数を発行して
います。
● bsrtopen関数で指定したストリング番号より大きな値をbsrtmrge関数のストリング番号
に設定しています。
処置
処理を中断します。
ユーザ対処
誤りの原因を修正して、再度実行してください。
%s関数でレコードアドレスの指定がありません.
Record address is not specified in %s function.
埋込み変数
%s: bsrtput または bsrtmrge
エラー原因
次のいずれかの場合に出力されます。
191
第8章 メッセージとエラーコード
● bsrtput関数でレコードのポインタを指定していません。
● bsrtmrge関数でレコードを渡し終えたことを指示する前に、レコードのポインタを省略し
ました。
処置
処理を中断します。
ユーザ対処
レコードのポインタを指定するようユーザアプリケーションを修正してください。すべてのレコード
を渡し終えているのであれば、BS_ENDDATAを指定するようにユーザアプリケーションを修正してくだ
さい。
%s関数で指定したレコード長に誤りがあります.
Invalid record length is specified in %s function.
埋込み変数
%s: bsrtopen、bsrtput または bsrtmrge
エラー原因
次のいずれかの場合に出力されます。
● 固定長レコード形式のときに、bsrtopen関数で指定した長さと異なる長さを指定していま
す。
● 可変長レコード形式のときに、bsrtopen関数で指定した最大レコード長よりも長いレコー
ドを指定しています。
● bsrtopen関数でレコード長を指定していません。
● 固定長レコード形式でレコード群渡しのとき、bsrtopen関数で指定したレコード長の整数
倍の値を指定していません。
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をしてください。
● レコード長が正しい値になるよう、ユーザアプリケーションを修正してください。
● bsrtopen関数で指定した最大レコード長が実際の最大レコード長以上であるか確認して
ください。違っていればユーザアプリケーションを修正してください。
● bsrtopen関数で検出された場合は、レコード長を指定するようユーザアプリケーションを
修正してください。
入力処理後のレコード長に誤りがあります.
The mistake is found in record length after the input process.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 入力レコード再編成の指定がない場合、入力ファイルグループ間で指定したレコード長が
異なります。
● 入力レコード再編成の指定がある場合、入力ファイルグループ間で入力レコード再編成後
のレコード長が異なります。
処置
処理を中断します。
192
8.1 メッセージ
ユーザ対処
次のいずれかの対処をしてください。
● 入力レコード再編成機能を使用する場合は、入力ファイルグループ間で入力レコード再編
成後のレコード長が同じになるようにして、再度実行してください。
● 入力レコード再編成機能を使用しない場合は、入力ファイルグループ間で同じレコード長
にして、再度実行してください。
PowerSORTの動作に必要な領域を確保できません.
An necessary PowerSORT working area cannot be secured.
埋込み変数
なし
エラー原因
必要メモリを確保できません。
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をお願いします。
● 環境変数BSORT_MEMSIZEの指定を増やしてください。ただし、物理メモリの空きが少ない
ときは、BSORT_MEMSIZEの指定を物理メモリの空き以下に減らしてください。
● ユーザアプリケーションから呼び出している場合には、PowerSORTが使用できるメモリ量
が充分にあるか確認してください。
● PowerSORTの動作には最低32キロバイト以上の作業域が必要です。
メッセージファイルの容量が足りません.メッセージファイルへの出力を中止します.
The message file capacity was insufficient. The output to the message file was
interrupted.
埋込み変数
なし
エラー原因
ディスクの空き容量がないため、スペースの拡張ができません。
処置
メッセージファイルへの出力を中断し、本メッセージを含めて標準エラー出力に切り換えて処理を続
行します。
ユーザ対処
次のいずれかの対処をお願いします。
● メッセージファイルを別のディスク上に指定してください。
● 不要なファイルを削除してディスクに空きスペースを作って再度実行してください。
193
第8章 メッセージとエラーコード
一時ファイルの容量が足りません.
Not enough temporary file space.
埋込み変数
なし
エラー原因
一時ファイルへのデータ書き出し時に容量不足を検出しました。
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をお願いします。
● ディスクのスペースに空きがある場合は、空きスペースの存在するフォルダを一時ファイ
ル用に定義してください。
● ディスクのスペースに空きがあり、bsrtopen関数で一時ファイルパス名を指定している場
合は、指定する一時ファイルの数を増やしてください。
● ディスクのスペースに空きがない場合は、不要なファイルを削除して空きスペースを作っ
てください。
一時ファイルが生成できません.
The temporary file cannot be created.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 一時ファイルの指定に誤りがあります。
● 一時ファイルの自動確保処理で、一時ファイル生成に必要な仮想記憶域、またはディスク
の空きスペースが不足しています。
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をお願いします。
● 一時ファイルの指定を確認してください。
● PowerSORTまたはユーザアプリケーションが使用する仮想記憶域の大きさを減らしてくだ
さい。
● システムの負荷が軽い時間帯に再度実行してください。
● 不要なファイルを削除してディスクに空きスペースを作ってください。
ファイル(%s)は存在しません.
File(%s) does not exist.
埋込み変数
%s: 入力ファイルパス名または出力ファイルパス名
エラー原因
入力ファイルまたは出力ファイルに指定されたファイルパス名が存在しません。
194
8.1 メッセージ
処置
処理を中断します。
ユーザ対処
入力ファイルパス名または出力ファイルパス名を確認してください。
同じファイル(%s)を指定しています.
Same file(%s) is specified.
埋込み変数
%s: ファイルパス名
エラー原因
次のいずれかの原因により出力されます。
1. 入力ファイルと出力ファイルに同じファイルを指定していますが、上書き許可(bsortex
コマンドの-inputオプションのoverwriteオペランド、bsortコマンドの-vオプション、ま
たはbsrtopen関数におけるfileopratのBS_OVERWRITE)を指定していません。
2. マージ機能またはコピー機能で、入力ファイルと出力ファイルに同じファイルを指定して
います。
3. 入力ファイルとメッセージファイルに同じファイルを指定しています。
4. 出力ファイルとメッセージファイルに同じファイルを指定しています。
5. 一時ファイルと入力ファイル、一時ファイルと出力ファイル、一時ファイルとメッセージ
ファイル、または一時ファイルと他の一時ファイルに同じファイルを指定しています。
6. 一時ファイルパス名の生成で、一意なパス名の生成に失敗しました。
処置
エラー原因が1.~4.の場合は、処理を中断します。5.または6.の場合は処理を継続します。
ユーザ対処
同じファイルパス名を指定しないようにしてください。入力ファイルと出力ファイルに同じファイル
を指定し、処理途中で異常が発生した場合、ファイルの復元ができなくなることがあります。
ファイル(%s)の形式に誤りがあります.
Invalid format of file (%s).
埋込み変数
%s: エラーのあったファイルパス名
エラー原因
レコード形式に可変長形式を指定していますが、ファイルシステムを省略またはシステム標準のファ
イルシステムを指定しています。
処置
処理を中断します。
ユーザ対処
ファイルの形式を確認して再度実行してください。
195
第8章 メッセージとエラーコード
ファイル(%s)の属性に誤りがあります.
Invalid attribute of file (%s).
埋込み変数
%s: ファイルパス名
エラー原因
次のいずれかの原因により出力されます。
1. 入力ファイルに固定長レコード形式と可変長レコード形式を混在して指定しています。
2. 入力のレコード形式と異なるファイルを出力ファイルに指定しています。
3. BSRTPRIM構造体のrecformで指定されたレコード形式とファイル内のレコード形式が異な
ります。
4. BSRTPRIM構造体のrec_lenで指定されたレコード長とファイル内のレコード長が異なりま
す。
5. 一時ファイルの属性が違います。または、ディレクトリが使用不可です。
処置
エラー原因が1.~4.の場合は処理を中断します。5.の場合は処理を継続します。
ユーザ対処
エラー原因を取り除いて、再度実行してください。
レコード長を指定していません.
Record length is not specified.
埋込み変数
なし
エラー原因
次のいずれかの原因により出力されます。
● レコード長を指定していません。
● BSRTPRIM構造体のrec_lenの指定がありません。
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をお願いします。
● レコード長を指定してください。
● BSRTPRIM構造体のrec_lenにレコード長を指定してください。
ファイル(%s1)のオープンでエラー(%s2)が発生しました.
Error occurred during file (%s1) open.(%s2)
埋込み変数
%s1: ファイルパス名
%s2: エラー番号またはエラー詳細情報
エラー原因
次のいずれかの原因により出力されます。
● システム内のファイルオープン処理でメモリ不足が発生しました。
● 親フォルダのスペースが拡張できません。
196
8.1 メッセージ
● ファイルのスペースを獲得できません。
● ファイルパス名の要素がフォルダではありません。
● 他プロセスで使用中です。
● 媒体障害、またはソフト障害によるデータ破壊が発生しました。
● ファイルの存在するディスクが使用できません。
● 索引ファイルの場合、インデックスの指定に誤りがあります。
● 格納レコード件数が0件のRDMファイルが入力されました。
なお、エラー原因の調査のため、エラー番号として以下に示す情報が出力される場合があります。
● 入出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、シス
テムが設定するエラーコード
● 入出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通
COBOLファイルシステムが設定するエラーコード
● 入出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラ
ーコード("iserrno,isstat4"の形式)
処置
一時ファイルのオープンで発生した場合は処理を継続します。他のファイルで発生した場合は処理を
中断します。
ユーザ対処
次のいずれかの対処をお願いします。
● メモリ不足が原因の場合は、PowerSORTまたはユーザアプリケーションが使用する仮想記
憶域を減らして、再度実行してください。
● ディスクのスペース不足が原因の場合は、ディスク上に空きスペースを作って、再度実行
してください。
● ファイルパス名の要素がフォルダでない場合は、正しいファイルパス名を指定してくださ
い。
● 他プロセスで使用中の場合は、使用中でない時間帯に再度実行してください。
● パス名、またはパス名の要素の長さが制限を超えている場合は、正しい名前を指定して再
度実行してください。
● 格納レコード件数が0件のRDMファイルを処理する場合は、環境変数BSORT_RDM_EMPTYに
CONTINUEを指定してください。
また、出力されたエラー番号について、使用している各ファイルシステムのマニュアルを参照し、エ
ラー原因を取り除いてください。
プロセス内,またはシステム内でオープン中のファイルが多過ぎます.
There are too many files open in the system or in the process.
埋込み変数
なし
エラー原因
次のいずれかの原因により出力されます。
● プロセス内、またはシステム内でオープン中のファイルが多過ぎるため、必要なファイル
をオープンできません。
● ソート処理に必要とする一時ファイルの数が多過ぎます。
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をお願いします。
● bsortコマンドまたはbsortexコマンドを使用している場合は、入力ファイルの数を減らし
てください。
197
第8章 メッセージとエラーコード
● BSORT関数を使用している場合は、BSORT関数発行前にオープン中のファイルをクローズし
てください。
● システム内でオープン中のファイルが多過ぎる場合は、システムの負荷が低いときに再実
行してください。
● ソート処理に必要とする一時ファイルの数が多過ぎる場合は、一時ファイルに指定したデ
ィスクスペースを拡張してください。また、環境変数BSORT_TMPDIR等により一時ファイル
を作成するフォルダを指定している場合は、個々のディレクトリパス名の長さを短くして
ください。
ファイル(%s1)のクローズでエラー(%s2)が発生しました.
Error occurred during file (%s1) close.(%s2)
埋込み変数
%s1: ファイルパス名
%s2: エラー番号またはエラー詳細情報
エラー原因
次のいずれかの原因により出力されます。
● メモリ不足が発生しました。
● 媒体障害、またはソフト障害によるデータ破壊が発生しました。
● ファイルの存在するディスクが使用できません。
なお、エラー原因の調査のため、エラー番号として以下に示す情報が出力される場合があります。
● 入出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、シス
テムが設定するエラーコード
● 入出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通
COBOLファイルシステムが設定するエラーコード
● 入出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラ
ーコード("iserrno,isstat4"の形式)
処置
処理を中断します。
ユーザ対処
PowerSORTまたはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してください。
また、出力されたエラー番号について、使用している各ファイルシステムのマニュアルを参照し、エ
ラー原因を取り除いてください。
ファイル(%s1)からのレコード入力中にエラー(%s2)が発生しました.
Error occurred during the file (%s1) reading.(%s2)
埋込み変数
%s1: ファイルパス名
%s2: エラー番号またはエラー詳細情報
エラー原因
次のいずれかの原因により出力されます。
● ファイルからのレコード入力中にメモリ不足が発生しました。
● 媒体障害、またはソフト障害によるデータ破壊が発生しました。
● ファイルの存在するディスクが使用できません。
なお、エラー原因の調査のため、エラー番号として以下に示す情報が出力される場合があります。
● 入力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システ
ムが設定するエラーコード
198
8.1 メッセージ
● 入力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通
COBOLファイルシステムが設定するエラーコード
● 入力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラー
コード("iserrno,isstat4"の形式)
処置
処理を中断します。
ユーザ対処
PowerSORTまたはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してください。
また、出力されたエラー番号について、使用している各ファイルシステムのマニュアルを参照し、エ
ラー原因を取り除いてください。
ファイル(%s1)へのレコード出力中にエラー(%s2)が発生しました.
Error occurred during the file (%s1) writing.(%s2)
埋込み変数
%s1: ファイルパス名
%s2: エラー番号またはエラー詳細情報
エラー原因
次のいずれかの原因により出力されます。
● ファイルへのレコード出力中にメモリ不足が発生しました。
● ファイルのスペースを拡張できません。
● 媒体障害、またはソフト障害によるデータ破壊が発生しました。
● ファイルの存在するディスクが使用できません。
なお、エラー原因の調査のため、エラー番号として以下に示す情報が出力される場合があります。
● 出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システ
ムが設定するエラーコード
● 出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通
COBOLファイルシステムが設定するエラーコード
● 出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラー
コード("iserrno,isstat4"の形式)
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をお願いします。
● メモリ不足が発生した場合は、PowerSORTまたはユーザアプリケーションが使用する仮想
記憶域を減らして、再度実行してください。
● 出力ファイルのスペースを拡張できなかった場合は、スペースの拡張ができるように、デ
ィスク上に空きスペースを作ってから再度実行してください。
また、出力されたエラー番号について、使用している各ファイルシステムのマニュアルを参照し、エ
ラー原因を取り除いてください。
ファイル(%s)には参照許可がありません.
There is no reference permission in file(%s).
埋込み変数
%s: ファイルパス名
199
第8章 メッセージとエラーコード
エラー原因
参照することを許されていないファイルを指定しています。
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をお願いします。
● ファイルパス名を間違えていた場合は、正しいパス名を指定して再度実行してください。
● 指定に誤りがない場合は、参照する権利がありませんので、ファイルの管理者に許可をも
らってください。
ファイル(%s)には書込許可がありません.
There is no writing permission in the file(%s).
埋込み変数
%s: ファイルパス名
エラー原因
書込みすることを許されていないファイルを指定しています。
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をお願いします。
● ファイルパス名を間違えていた場合は、正しいパス名を指定して再度実行してください。
● 指定に誤りがない場合は、書き込む権利がありませんので、ファイルの管理者に許可をも
らってください。
ファイル(%s)には参照許可または書込許可がありません.
There is no reference or writing permission on the file(%s).
埋込み変数
%s: ファイルパス名
エラー原因
参照または書込みすることを許されていないファイルを指定しています。
処置
処理を継続します。
ユーザ対処
ファイルの指定を確認し、再度実行してください。
ストリングが並んでいません.
The string was not sorted.
埋込み変数
なし
エラー原因
マージ機能の入力に指定したファイル、またはストリングが指定したキー順に並んでいません。
200
8.1 メッセージ
処置
処理を中断します。
ユーザ対処
マージ機能では、ソート済みのファイルまたはストリングを指定してください。
集約処理でオーバフローが発生しました.
The overflow occurred at the summation process.
埋込み変数
なし
エラー原因
レコード集約処理でオーバフローが発生しました。
処置
次のいずれかの処置を行います。
● 環境変数BSORT_SUMOVERCONTの指定がない、またはOFFの場合は、集約処理を中断し、それ
以後の同値のキーフィールドを持つレコードに対しては、集約処理を行いません。
● 環境変数BSORT_SUMOVERCONTの指定がONの場合は、オーバフローする直前まで集約された
レコードを出力し、それ以後の同値のキーフィールドを持つレコードに対しては、別レコ
ードとして集約処理を継続します。
ソートまたはマージの処理は継続します。bsortopt.exeで値が設定されている場合は、復帰値として
指定値を返します。
ユーザ対処
集約フィールドで指定したフィールドを拡張してください。
集約フィールドが存在しないレコードが入力されたため,集約処理を中止します.
Summation field did not exist on the input record. Therefore, the summation process was
discontinued.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 可変長レコード入力中、集約フィールドを含まない短いレコードが入力されたため、集約
処理を中止します。
● テキストレコード入力中、集約フィールドを含まないレコードが入力されたため、集約処
理を中止します。
処置
レコード集約処理を中断します。ソートまたはマージの処理は継続します。
bsortopt.exeで値が設定されている場合は、復帰値として指定値を返します。
ユーザ対処
集約フィールドの指定を確認してください。
201
第8章 メッセージとエラーコード
選択フィールドが存在しないレコードが入力されました.
Selection field did not exist on the input record.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 可変長レコード入力中、選択フィールドを含まない短いレコードが入力されました。
● テキストレコード入力中、選択フィールドを含まないレコードが入力されました。
処置
処理を中断します。
ユーザ対処
選択フィールドの指定を確認してください。
再編成フィールドが存在しないレコードが入力されました.
Reconstruction field did not exist on the input record.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 可変長レコード入力中、再編成フィールドを含まない短いレコードが入力されました。
● テキストレコード入力中、再編成フィールドを含まないレコードが入力されました。
処置
処理を中断します。
ユーザ対処
再編成フィールドの指定を確認してください。
キーフィールドの内部に判別不可能なコードが検出されました.
Unreasonable code is found in the key field.
埋込み変数
なし
エラー原因
キーフィールドの内部に未定義のコードが検出されました。
処置
処理を中断します。
ユーザ対処
キーフィールドの指定を確認してください。
202
8.1 メッセージ
ファイルシステム(%s)でエラーが発生しました.
Error occurred in file system(%s).
埋込み変数
%s: 指定したファイルシステム
エラー原因
指定したファイルシステムがインストールされていません。
処置
処理を中断します。
ユーザ対処
必要なファイルシステムをインストールしてください。
ファイルパス名(%s)が長すぎます.
File path name(%s) is too long.
埋込み変数
%s: ファイルパス名
エラー原因
入力ファイル、出力ファイルまたはアーギュメントファイルのパス名の長さがシステムで定義されて
いるPATH_MAXを超えています。
処置
処理を中断します。
ユーザ対処
ファイルパス名の長さをPATH_MAX以下にして、再度実行してください。
%sのパスプレフィックスの構成要素にフォルダでないものがあります.
A path prefix component of %s is not a folder.
埋込み変数
%s: ファイルパス名
エラー原因
入力ファイル、出力ファイルまたはアーギュメントファイルのパスプレフィックスの中にフォルダで
ないものがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
指定した%sはフォルダです.
Specified %s is a folder.
埋込み変数
%s: パス名
203
第8章 メッセージとエラーコード
エラー原因
出力ファイルにフォルダを指定しています。
処置
処理を中断します。
ユーザ対処
出力ファイルにファイルを指定して、再度実行してください。
出力デバイス上のスペースが足りません.
No space left on the output device.
埋込み変数
なし
エラー原因
出力ファイルまたは一時ファイルの書込み中にそのデバイス上に空き領域がなくなりました。
処置
処理を中断します。
ユーザ対処
充分な空き領域があるデバイスを割り当て、再度実行してください。
ファイル(%s)のサイズがプロセスの限度あるいは最大ファイルサイズを超えました.
File(%s) size exceeds the process's file size limit or the maximum file size.
埋込み変数
%s: ファイル名
エラー原因
出力ファイルまたは一時ファイルの書込み中に、そのファイルサイズがシステムで設定しているプロ
セスのファイルサイズの限度、またはユーザが設定している最大ファイルサイズを超えました。
処置
処理を中断します。
ユーザ対処
処理対象のレコードを選択して出力ファイルサイズを小さくしてください。
システムコールまたはライブラリ関数(%s)でエラー(%d)が発生しました.
Error occurred during system call or library function (%s)(%d).
埋込み変数
%s: システムコールまたはライブラリ関数名
%d: エラー番号(errno)
エラー原因
システムコールまたはライブラリ関数の呼び出しでエラーが発生しました。
処置
重大なエラーの場合は処理を中断します。そうでない場合は処理を継続します。
ユーザ対処
関数名およびエラー番号からエラーの原因が分かる場合は、そのエラー原因を取り除いて再度実行し
204
8.1 メッセージ
てください。エラーの原因が分からない場合は、関数名およびエラー番号とともに技術員(SE)に連絡
してください。
システムコールまたはライブラリ関数(%s1)でエラー(%d)が発生しました(パス名:%s2).
Error occurred during system call or library function (%s1)(%d) (path name:%s2).
埋込み変数
%s1: システムコールまたはライブラリ関数名
%d : エラー番号(errno)
%s2: パス名
エラー原因
ファイルに対するシステムコールまたはライブラリ関数の呼び出しでエラーが発生しました。
処置
重大なエラーの場合は処理を中断します。そうでない場合は処理を継続します。
ユーザ対処
関数名、エラー番号およびパス名からエラーの原因が分かる場合は、そのエラー原因を取り除いて再
度実行してください。エラーの原因が分からない場合は、関数名、エラー番号およびパス名とともに
技術員(SE)に連絡してください。
PowerSORTのローディング中にエラーが発生しました.
Error occurred during PowerSORT loading.
埋込み変数
なし
エラー原因
PowerSORTのライブラリがインストールの時点から移動された可能性があります。または、ファイル
が壊されている可能性があります。
処置
処理を中断します。
ユーザ対処
PowerSORTを再インストールしてください。
%s関数で指定したレコードにラインフィードが存在しません.
Line feed did not exist on the record specified in %s function.
埋込み変数
%s: bsrtput または bsrtmrge
エラー原因
指定したテキストレコードにラインフィードが存在しません。
処置
処理を中断します。
ユーザ対処
次のいずれかの対処をしてください。
● 入力レコードがテキスト形式であることを確認してください。
● bsrtput関数またはbsrtmrge関数で指定するレコード長を確認してください。
205
第8章 メッセージとエラーコード
キーフィールドが存在しないレコードが入力されました.
Key field did not exist on the input record.
埋込み変数
なし
エラー原因
テキストファイル浮動フィールド指定の場合のレコード入力中、キーフィールドが存在しないレコー
ドが入力されました。
処置
処理を中断します。
ユーザ対処
キーフィールドの指定を確認してください。
レコード長の指定に誤りがあります.
Invalid record length is specified.
埋込み変数
なし
エラー原因
次のいずれかの原因により出力されます。
● 可変長レコード入力中に指定したレコード長を超えるレコードが入力されました。
● テキストレコード入力中に指定したレコード長を超えるレコードが入力されました。
処置
処理を中断します。
ユーザ対処
レコード長の指定を確認してください。
集約フィールド(%d)の内部に不適切なコードが発見されたため,集約処理を中断します.
Unreasonable code is found in the summation-field(%d) specification. The summation
process was interrupted.
埋込み変数
%d: フィールド番号
エラー原因
テキストレコードの集約フィールドに数字、符号、空白およびタブ以外の文字が発見されました。
処置
レコード集約処理を中断します。ソートまたはマージの処理は継続します。
bsortopt.exeで値が設定されている場合は、復帰値として指定値を返します。
ユーザ対処
集約フィールドの指定を確認してください。
206
8.1 メッセージ
漢字コードの変換処理(%s)でエラー(%d)が発生しました.
Error occurred during kanji code conversion (%s)(%d).
埋込み変数
%s: エラーが発生した関数名
%d: errnoまたはADJUSTが設定するエラー番号
エラー原因
ADJUSTまたは標準コード変換関数(iconv)がインストールされていません。
処置
処理を中断します。
ユーザ対処
ADJUSTおよび標準コード変換関数(iconv)が正しくインストールされているか確認してください。
同時に指定すべきオプション(%s1)と(%s2)の指定がありません.
Synchronous option (%s1), (%s2) are not specified.
埋込み変数
%s1: 必要とするオプション1
%s2: 必要とするオプション2
エラー原因
同時に指定すべき2つのオプションのどちらかを指定していません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
ASCIIコードとEBCDICコード間の変換方式の指定に誤りがあります.
Invalid conversion method between ASCII code and EBCDIC code is specified.
埋込み変数
なし
エラー原因
ASCIIコードとEBCDICコード間の変換方式の指定に誤りがあります。
● bsortコマンドの-Qオプション
● bsortexコマンドの-optionのiconvオペランド
● BSRTPRIM構造体のaltmode
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
207
第8章 メッセージとエラーコード
FIFOと集約/サプレスは同時に指定できません.
Exclusive options, FIFO and summation/suppress are specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 先入力先出力(FIFO)機能とレコード集約機能を同時に指定しています。
● 先入力先出力(FIFO)機能とサプレス機能を同時に指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
インデックスの作成方法の指定に誤りがあります.
Invalid index creation method is specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 主キーと副キーのどちらも指定していません。
● インデックスの作成方法の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
インデックスのデータ形式を指定していません.
Index data type is not specified.
埋込み変数
なし
エラー原因
インデックスのデータ形式を指定していません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
208
8.1 メッセージ
インデックスの作成方法を指定していません.
Index creation method is not specified.
埋込み変数
なし
エラー原因
インデックスの作成方法を指定していません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
インデックスの長さの指定に誤りがあります.
Invalid index length is specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● インデックスの長さが0バイトです。
● インデックスの長さが、指定したデータ形式で指定できる長さを超えています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
インデックスの並びの指定に誤りがあります.
Invalid index order is specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 富士通COBOLファイルシステムまたはMicro Focus COBOLファイルシステムの索引ファイル
の場合に、降順を指定しています。
● インデックスの並びの指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
209
第8章 メッセージとエラーコード
キーオプションの数字の算術的比較と英数字の分割比較は同時に指定できません.
Exclusive key options, arithmetic comparison of numeric string and division comparison
of alphanumeric string are specified.
埋込み変数
なし
エラー原因
キーオプションの数字の算術的比較と英数字の分割比較を同時に指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
キー形式の指定に誤りがあります.
Invalid key type is specified.
埋込み変数
なし
エラー原因
キー形式の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
コピー機能と集約機能/サプレス機能/並びの降順は同時に指定できません.
Exclusive options, copy and summation/suppress/reverse are specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● コピー機能でレコード集約機能を指定しています。
● コピー機能でサプレス機能を指定しています。
● コピー機能で並びの降順を指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
210
8.1 メッセージ
ストリング数の指定に誤りがあります.
Invalid string number is specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● マージ機能で、入力ファイル数とストリング数が異なります。
● マージ機能で、ストリング数に0を指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
チェックレベルの指定に誤りがあります.
Invalid check level is specified.
埋込み変数
なし
エラー原因
チェックレベルの指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
テキストファイルのフィールド分離文字列の指定に誤りがあります.
Invalid field separating character-string in the text file is specified.
埋込み変数
なし
エラー原因
フィールド分離文字列にレコード区切り文字が含まれています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
211
第8章 メッセージとエラーコード
テキストファイルのフィールド形式を指定していません.
Text field format is not specified.
埋込み変数
なし
エラー原因
テキストファイルの場合に、固定フィールドまたは浮動フィールドの指定がありません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
ファイルシステムの指定に誤りがあります.
Invalid file system is specified.
埋込み変数
なし
エラー原因
ファイルシステムの指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
メッセージレベルの指定に誤りがあります.
Invalid message level is specified.
埋込み変数
なし
エラー原因
メッセージレベルの指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力時のレコード区切り文字の指定に誤りがあります.
Invalid output line delimiter is specified.
埋込み変数
なし
エラー原因
出力時のレコード区切り文字の指定に誤りがあります。
212
8.1 メッセージ
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
レコード形式の指定に誤りがあります.
Invalid record format is specified.
埋込み変数
なし
エラー原因
レコード形式の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
レコード形式を指定していません.
Record format is not specified.
埋込み変数
なし
エラー原因
レコード形式を指定していません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
レコード形式またはテキストフィールド形式を指定していません.
Record format or text field format is not specified.
埋込み変数
なし
エラー原因
バイナリ固定長レコード形式、バイナリ可変長レコード形式、テキストファイル固定フィールド指定
のレコード形式、テキストファイル浮動フィールド指定のレコード形式のいずれも指定していません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
213
第8章 メッセージとエラーコード
レコード受渡し方法の指定に誤りがあります.
Invalid method of passing and receiving records is specified.
埋込み変数
なし
エラー原因
レコード受渡し方法の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
索引ファイルで出力可能な最大ファイルサイズまたは最大レコード数を指定しています.
Exclusive options, max output file size/max output record number and indexed file are
specified.
埋込み変数
なし
エラー原因
索引ファイルのとき、1つのファイルに出力可能な最大ファイルサイズまたは最大レコード数を指定
しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
集約機能とサプレス機能は同時に指定できません.
Exclusive options, summation and suppress are specified.
埋込み変数
なし
エラー原因
レコード集約機能とサプレス機能を同時に指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
214
8.1 メッセージ
集約機能/サプレス機能以外で先頭/最終レコードの出力を指定しています.
First/last option is specified without summation/suppress function.
埋込み変数
なし
エラー原因
レコード集約機能およびサプレス機能の指定がないときに、先頭/最終レコードの出力を指定してい
ます。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力ファイルとメッセージファイルに同じファイル(%s)を指定しています.
Same file(%s) is specified for output file and message file.
埋込み変数
%s: ファイルパス名
エラー原因
出力ファイルとメッセージファイルに同じファイルパス名を指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力ファイルに同じファイル(%s)を指定しています.
Same file(%s) is specified for output files.
埋込み変数
%s: ファイルパス名
エラー原因
出力ファイルに同じファイルを複数指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力ファイルシステムに誤りがあります.
Invalid output file system is specified.
埋込み変数
なし
215
第8章 メッセージとエラーコード
エラー原因
次のいずれかの場合に出力されます。
● テキストファイルのとき、システム標準のファイルシステム(dos)以外を指定しています。
● 標準出力のとき、システム標準のファイルシステム(dos)以外を指定しています。
● 出力ファイルシステムに誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
入力時のレコード区切り文字の指定に誤りがあります.
Invalid input line delimiter is specified.
埋込み変数
なし
エラー原因
入力時のレコード区切り文字の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力ファイルパス名(%s)の指定に誤りがあります.
Invalid output file path name(%s) is specified.
埋込み変数
%s: ファイルパス名
エラー原因
出力ファイルパス名の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力可能な最大ファイルサイズの指定に誤りがあります.
Invalid max output file size is specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 出力レコード長(レコード再編成後の長さ)より小さい最大ファイルサイズを指定してい
ます。
● 出力可能な最大ファイルサイズの指定に誤りがあります。
216
8.1 メッセージ
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力可能な最大ファイルサイズまたは最大レコード数の指定に誤りがあります.
Invalid max output file size or max output record number is specified.
埋込み変数
なし
エラー原因
出力ファイルが標準出力のときに、1つのファイルに出力可能な最大ファイルサイズまたは最大レコ
ード数を指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
マージ機能/コピー機能で入力ファイルへの上書きを指定しています.
Exclusive options, merge/copy and overwrite are specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● マージ機能で入力ファイルへの上書きを指定しています。
● コピー機能で入力ファイルへの上書きを指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
入力コード系の指定に誤りがあります.
Invalid input data code is specified.
埋込み変数
なし
エラー原因
入力コード系の指定に誤りがあります。
● bsortコマンドの-qオプション
● bsortexコマンドの-optionのicodeオペランド
● BSRTPRIM構造体のcdmode
処置
処理を中断します。
217
第8章 メッセージとエラーコード
ユーザ対処
誤りを修正して、再度実行してください。
入力ファイルとメッセージファイルに同じファイル(%s)を指定しています.
Same file(%s) is specified for input file and message file.
埋込み変数
%s: ファイルパス名
エラー原因
入力ファイルとメッセージファイルに同じファイルパス名を指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
入力ファイルと出力ファイルに同じファイル(%s)を指定しています.
Same file(%s) is specified for input file and output file.
埋込み変数
%s: ファイルパス名
エラー原因
入力ファイルと出力ファイルに同じファイルパス名を指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
入力ファイルシステムに誤りがあります.
Invalid input file system is specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● テキストファイルで、システム標準のファイルシステム(dos)以外を指定しています。
● 標準入力で、システム標準のファイルシステム(dos)以外を指定しています。
● 入力ファイルシステムに誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
218
8.1 メッセージ
入力ファイルパス名(%s)の指定に誤りがあります.
Invalid input file path name(%s) is specified.
埋込み変数
%s: ファイルパス名
エラー原因
入力ファイルパス名の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
標準入力と入力への上書きは同時に指定できません.
Exclusive options, standard input and overwrite are specified.
埋込み変数
なし
エラー原因
標準入力と入力への上書きを同時に指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
入力ファイルパス名を指定していません.
Input file path name is not specified.
埋込み変数
なし
エラー原因
入力ファイルパス名を指定していません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力ファイルパス名を指定していません.
Output file path name is not specified.
埋込み変数
なし
エラー原因
出力ファイルパス名を指定していません。
219
第8章 メッセージとエラーコード
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
入力ファイルシステムの指定に誤りがあります.
The mistake is found in input file system specification.
埋込み変数
なし
エラー原因
入力ファイルシステムの指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力ファイルシステムの指定に誤りがあります.
The mistake is found in output file system specification.
埋込み変数
なし
エラー原因
出力ファイルシステムの指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
インデックスのデータ形式の指定に誤りがあります.
Invalid index data type is specified.
埋込み変数
なし
エラー原因
次のいずれかの場合に出力されます。
● 富士通COBOLファイルシステムまたはMicro Focus COBOLファイルシステムの索引ファイル
で、ASCIIコード、Unicode以外を指定しています。
● インデックスのデータ形式の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
220
8.1 メッセージ
システム標準のファイルシステムでは可変長レコード形式を指定できません.
Exclusive options, standard file system and variable-length record format are specified.
埋込み変数
なし
エラー原因
システム標準のファイルシステムで可変長レコード形式を指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
索引ファイルで出力レコード渡しを指定しています.
Exclusive options, output record passing and indexed file are specified.
埋込み変数
なし
エラー原因
索引ファイルで出力レコード渡しを指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
bsrtopen関数でBSRTPRIMを指定していません.
BSRTPRIM is not specified by the bsrtopen function.
埋込み変数
なし
エラー原因
bsrtopen関数でBSRTPRIM構造体を指定していません。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
バイナリファイルでテキスト用キーオプションを指定しています.
Key option is specified for binary file.
埋込み変数
なし
221
第8章 メッセージとエラーコード
エラー原因
バイナリファイルでテキスト用キーオプションを指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
テキストファイルで入力コード系にEBCDICコード系を指定しています.
Exclusive options, text file and EBCDIC input data code are specified.
埋込み変数
なし
エラー原因
テキストファイルで入力コード系にEBCDICコード系を指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
bsrtopen関数で指定した%s1(%s2)に誤りがあります.
The mistake is found in %s1(%s2) specified by the bsrtopen function.
埋込み変数
%s1: 誤りを検出した構造体名
%s2: 誤りを検出したフィールド名
エラー原因
BSIDX構造体のidx_flagの指定に誤りがある場合に出力されます。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
出力可能な最大ファイルサイズ指定または最大レコード数指定は,出力ファイルが1つのとき
指定できません.
Division of output file cannot be specified for one output file.
埋込み変数
なし
エラー原因
出力ファイルが1つのとき、出力可能な最大ファイルサイズまたは最大レコード数による出力ファイ
ルの分割出力を指定しています。
処置
処理を中断します。
222
8.1 メッセージ
ユーザ対処
次のいずれかの対処をしてください。
● 複数の出力ファイルを指定して、再度実行してください。
● 出力ファイルの分割出力の指定を外して、再度実行してください。
ソート機能,マージ機能またはコピー機能を同時に指定しています.
Exclusive options, -sort, -merge or -copy are specified.
埋込み変数
なし
エラー原因
ソート機能、マージ機能またはコピー機能のいずれかを同時に指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
オペランド(%s)の指定に誤りがあります.
Invalid operand (%s) is specified.
埋込み変数
%s: 不当なオペランド
エラー原因
次のいずれかの場合に出力されます。
● オペランドとして認識できない文字列があります。
● bsortexコマンドのソートオプション(-sort)またはマージオプション(-merge)における
key=ALL指定のとき、キーフィールドの操作の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
分割出力で指定した%sの後の出力ファイルが足りません.
Not enough output file after %s specified for the output division.
埋込み変数
%s: 分割出力で指定した最後の出力ファイルパス名
エラー原因
分割出力で指定した出力ファイルが少ないため、出力できないレコードがあります。
処置
処理を中断します。
ユーザ対処
分割出力で指定する出力ファイルを増やして、再度実行してください。
223
第8章 メッセージとエラーコード
指定したファイルシステムでは出力可能な最大ファイルサイズを指定できません.
Max output file size is specified with the file system which dose not support it.
埋込み変数
なし
エラー原因
システム標準のファイル(テキストファイル、バイナリファイル)以外のファイルで、1つのファイル
に出力可能な最大ファイルサイズを指定しています。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
オペランド(%s)は省略できません.
Operand (%s) is not specified.
埋込み変数
%s: 必要とするオペランド
エラー原因
-inputオプションでレコード長(reclenオペランド)の指定がありません。
処置
処理を中断します。
ユーザ対処
必要なオペランドを指定して、再度実行してください。
漢字フィールド(%d)の指定に誤りがあります.
The mistake is found in the jef-field(%d) specification.
埋込み変数
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
● 漢字ソートマージの方式の指定に誤りがあります。
● 漢字フィールドの漢字属性の指定に誤りがあります。
● ふりがなフィールドの位置または長さの指定に誤りがあります。
● ふりがなフィールドのデータ形式の指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
224
8.1 メッセージ
インデックスフィールド(%d)の指定に誤りがあります.
The mistake is found in the index-field(%d) specification.
埋込み変数
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
● 位置または長さの指定に誤りがあります。
● データ形式の指定に誤りがあります。
● オプションの指定に誤りがあります。
処置
処理を中断します。
ユーザ対処
誤りを修正して、再度実行してください。
PowerSORTの処理で内部論理の矛盾を検出しました.(%s-%d)
Logical error occurred at PowerSORT.(%s-%d)
埋込み変数
%s: 検出モジュール名
%d: エラー識別番号
エラー原因
内部論理の矛盾を検出しました。
処置
処理を中断します。
ユーザ対処
エラー識別番号とともに技術員(SE)に連絡してください。
PowerSORTが正しくインストールされていません.
PowerSORT is not correctly installed.
埋込み変数
なし
エラー原因
PowerSORTが正しくインストールされていません。
処置
処理を中断します。
ユーザ対処
PowerSORTのインストール環境が壊れている可能性があります。必要であればPowerSORTを再度インス
トールしてください。
225
第8章 メッセージとエラーコード
8.1.3 アプリケーションログへの出力メッセージ
PowerSORTは、環境変数BSORT_EVENTLOGにYESの指定がある場合、動作結果に応じたイベントログを出
力します。イベントログは、システム添付のイベントビューアを起動し、アプリケーションログを参
照してください。PowerSORTがアプリケーションログへメッセージを出力した場合は、該当するシス
テム、ハードウェア、動作環境または使用しているファイルシステムに異常がないか確認してくださ
い。なお、イベントIDには、BSORT関数のエラー詳細コード(errdetail)と同じ値が設定されます。
イベント
ID
メッセージ
対処
52
PowerSORTの動作に必要なメモリを
確保できませんでした。
メモリ不足への対処方法を参照して
ください。
200
ファイルからレコードの読込み中に
エラーが発生しました。
入力ファイルを別のドライブ/装置に
移すか、再作成します。
201
ファイルへのレコード書込み中にエ
ラーが発生しました。
出力ファイルを別のドライブ/装置に
移すか、再作成します。
224
一時ファイルへの書込み中にエラー
が発生しました。
一時ファイルの割当て先を変更しま
す。環境変数BSORT_TMPDIRを参照して
ください。
225
一時ファイルからの読込み中にエラ
ーが発生しました。
一時ファイルの割当て先を変更しま
す。環境変数BSORT_TMPDIRを参照して
ください。
231
COBOLのファイルシステムのエラー
が発生しました。
使用しているCOBOLファイルまたはラ
ンタイムライブラリを再作成/設定し
ます。
Btrieveファイルシステムでエラー
を検出しました。
Btrieveファイルまたはランタイムラ
イブラリを再作成/設定します。
COBOL索引ファイルシステムでエラ
ーを検出しました。
使用しているCOBOL索引ファイルまた
はランタイムライブラリを再作成/設
定します。
PowerSORTの処理に誤りがあります。
PowerSORTのメモリ量や、オプション
機能の有無など実行条件を変更しま
す。
600
漢字ソートマージ処理にエラーが発
生しました。
ADJUSTの環境を再構築します。
601
ADJUST 処 理 に エ ラ ー が 発 生 し ま し
た。
ADJUSTの環境を再構築します。
602
ICONV処理にエラーが発生しました。
ADJUSTの環境を再構築します。
242
243
250
226
8.2 エラーコード
8.2 エラーコード
ユーザアプリケーションからPowerSORTを呼び出したときに通知されるエラー詳細コードは、BSRTREC
構造体のerrdetailに設定されます。また、富士通COBOLファイルシステム、Btrieveファイルシステ
ムおよび漢字ソートマージ機能使用時は、より詳細なコードがBSRTREC構造体のsub_error_codeに設
定されます。
PowerSORT OCXからPowerSORTを呼び出したときに通知されるエラー詳細コードは、ErrorDetailプロ
パティに設定されます。また、富士通COBOLファイルシステム、Btrieveファイルシステムおよび漢字
ソートマージ機能使用時は、より詳細なコードがSubErrorCodeプロパティに設定されます。
8.2.1 BSORT関数のエラー詳細コード(errdetail)
BSORT関数が実行中にエラーを検出すると、BSRTREC構造体のerrdetailにエラー詳細コードが通知さ
れます。ここでは、errdetailに設定される詳細コードとその意味を示します。
コード
エラーコードの定義値
意味
1
BSERR_VL
bsrtopen関数、またはbsrtclse関数の第1
引数に誤りがあります。
2
BSERR_LOAD
PowerSORTのローディングでエラーが発
生しました。
3
BSERR_DELETE
PowerSORTを仮想記憶域から消去する処
理でエラーが発生しました。
5
BSERR_PRODUCT
PowerSORTが正しくインストールされて
いません。
50
BSERR_MEMSIZE
bsrtopen関数で指定したメモリサイズが
小さ過ぎます。
51
BSERR_PASSMEM
bsrtopen関数で指定したメモリアドレス
の領域は、bsrtclse関数で環境の消去が
されていません。
52
BSERR_ALCMEM
PowerSORTの動作に必要な仮想記憶域を
確保できません。
53
BSERR_MEMZERO
bsrtopen関数で仮想記憶域のアドレスを
指定していますが、仮想記憶域の大きさ
を指定していません。
54
BSERR_MANYFILE
bsrtopen関数で指定した入力ファイルパ
ス名の数が多過ぎます。
55
BSERR_INFILETAB
bsrtopen関数で指定した入力ファイル名
テーブルに誤りがあります。
227
第8章 メッセージとエラーコード
bsrtopen関数で指定したBSRTPRIM情報に
誤りがあります。
● bsrtopen関数でマージ機能を指定
していますが、ファイル数またはス
トリング数の指定がありません。
● 入力ストリング数がBSRTFILEの指
56
BSERR_BSRTPRIM
定と異なります。
● 入力ファイルのレコード形式と
BSRTPRIMで指定したレコード形式
が異なります。
● 入力ファイルに通常ファイルを指
定していますが、通常ファイルのフ
ァイルサイズがレコード長の倍数
ではありません。
排他関係にある機能を指定しました。
● 先入力先出力(FIFO)機能、サプレス
57
BSERR_EXCLUSIVE
機能、レコード集約機能
● ソート機能、マージ機能、コピー機
能
59
60
BSERR_KEYTAB
BSERR_SUMTAB
キーテーブルに誤りがあります。
● キーフィールドがレコードの外を
指しています。
● キーフィールドの形式を認識でき
ません。
● キーフィールド長が各データ形式
のサポート範囲外です。
● オプションの指定に誤りがありま
す。
集約テーブルに誤りがあります。
● 集約フィールドの数を指定してい
ません。
● 集約フィールドがレコードの外を
指しています。
● 集約フィールドの形式を認識でき
ません。
● 集約フィールド長がサポート範囲
外です。
61
BSERR_DUPKEY
キーフィールドと集約フィールド、また
は集約フィールド同士が重なっていま
す。
62
BSERR_UNSUPPORT
未サポート機能を指定しています。
63
BSERR_SELTAB
選択テーブルに誤りがあります。
64
BSERR_RECONTAB
再編成テーブルに誤りがあります。
BSERR_FILESYS
ファイルシステムの指定に誤りがありま
す。または、PowerSORTのファイルアクセ
スライブラリがローディングできませ
ん。
65
228
8.2 エラーコード
66
BSERR_SELSHRTREC
選択フィールドの指定に誤りがありま
す。
● 選択フィールドより短いレコード
が入力されました。
● テキストレコード入力中、選択フィ
ールドを含まないレコードが入力
されました。
再編成フィールドの指定に誤りがありま
す。
● 再編成フィールドより短いレコー
67
BSERR_RCONSHRTREC
ドが入力されました。
● テキストレコード入力中、再編成フ
ィールドを含まないレコードが入
力されました。
68
BSERR_OUTFILETAB
69
BSERR_BSRTOPT
100
101
出力ファイルテーブルに誤りがありま
す。
bsrtopen関数で指定したBSRTOPT構造体
に誤りがあります。
BSERR_NOOPEN
bsrtopen関数を呼び出す前にbsrtput関
数、bsrtget関数またはbsrtmrge関数を使
用しています。
BSERR_BSRTPUT
bsrtput関数の使用方法に誤りがありま
す。
● bsrtopen関数でファイルからレコ
ードを入力するよう指定したとき
に、bsrtput関数を使用しています。
● レコードの受渡しが完了した後に
bsrtput関数を使用しています。
● マージ処理を指定しているときに
bsrtput関数を使用しています。
bsrtget関数の使用方法に誤りがありま
す。
● bsrtopen関数でファイルにレコー
ドを出力するよう指定したときに、
bsrtget関数を使用しています。
● bsrtput関数によるレコードの受渡
102
BSERR_BSRTGET
しが完了する前にbsrtget関数を使
用しています。
● bsrtget関数ですべてのレコードを
出力した後にbsrtget関数を使用し
ています。
● マージ処理を指定しているときに
bsrtget関数を使用しています。
229
第8章 メッセージとエラーコード
103
BSERR_BSRTMRGE
bsrtmrge関数の使用方法に誤りがありま
す。
● bsrtopen関数でファイルからレコ
ードを入力して結果をファイルに
出力するよう指定したときに、
bsrtmrge関数を使用しています。
● bsrtmrge関数ですべてのレコード
を出力した後にbsrtmrge関数を使
用しています。
● ソート処理を指定しているときに
bsrtmrge関数を使用しています。
● bsrtopen関数で指定したストリン
グ番号より大きい値をbsrtmrge関
数のストリング番号に指定してい
ます。
104
BSERR_BSRTCLSE
出力処理の途中でbsrtclse関数を呼び出
しました。
110
BSERR_NORECADR
レコードのポインタが設定されていませ
ん。
111
BSERR_RECLEN
レコード長に誤りがあります。
114
BSERR_NOTORDER
マージ処理の入力ストリングが並んでい
ません。
115
BSERR_OVERFLOW
レコード集約処理でオーバフローが発生
しました。
116
BSERR_SUMSHRTREC
集約フィールドの指定に誤りがありま
す。
● 可変長レコード入力中、集約フィー
ルドを含まない短いレコードが入
力されたため、レコード集約処理を
中止します。
● テキストレコード入力中、集約フィ
ールドを含まないレコードが入力
されたため、レコード集約処理を中
止します。
117
BSERR_NONLF
テキストファイルでレコードの終りに改
行文字がありません。
BSERR_EXTSHRTREC
テキストレコード入力中、キーフィール
ドを含まないレコードが入力されまし
た。
119
BSERR_SUMFIELD
テキストレコードのレコード集約処理
中、フィールド内に不適切なコードが発
見されたため、レコード集約処理を中止
します。
200
BSERR_READFILE
ファイルからのレコード読込み中にエラ
ーが発生しました。
201
BSERR_WRITEFILE
ファイルへのレコード書込み中にエラー
が発生しました。
202
BSERR_FILEATTR
ファイルの属性に誤りがあります。ファ
イル属性の取得に失敗しました。
118
230
8.2 エラーコード
203
BSERR_TEMPATTR
一時ファイルの属性に誤りがあります。
ファイル属性の取得に失敗しました。
ファイルの形式に誤りがあります。
● 通常ファイルと順ファイルを混在
して指定しました。
204
BSERR_FILEFORMAT
● 相対ファイルまたは索引ファイル
を指定しました。
● メッセージファイルに通常ファイ
ル以外を指定しました。
205
BSERR_SAMEFILE
ファイルパス名の指定に重複がありま
す。
● 入力ファイルと出力ファイルに同
じファイルを指定しました。
● 入力ファイルとメッセージファイ
ルに同じファイルを指定しました。
● 出力ファイルとメッセージファイ
ルに同じファイルを指定しました。
206
207
BSERR_RECFORM
BSERR_FILERECLEN
レコード形式に誤りがあります。
● 固定長ファイルと可変長ファイル
を混在して指定しています。
● 入力と出力のレコード形式が異な
っています。
レコード長に誤りがあります。
● 可変長ファイルを指定したときは、
bsrtopen関数で指定した長さより
ファイル属性のレコード長の方が
長い場合に発生します。
● 固定長ファイルを指定したときは、
bsrtopen関数で指定した長さとフ
ァイル属性の長さが異なる場合に
発生します。
BSERR_FILEOPEN
ファイルのオープンでエラーが発生しま
した。
209
BSERR_OPENMAX
プロセス内またはシステム内でオープン
中のファイルが多過ぎます。または、必
要とする一時ファイルの数が多過ぎま
す。
210
BSERR_FILECLOSE
ファイルのクローズでエラーが発生しま
した。
211
BSERR_FILEIO
媒体障害、またはソフト障害によるデー
タ破壊が発生しました。
212
BSERR_TEMPSPACE
一時ファイルの容量が足りません。
213
BSERR_INCORE
インコアソートできません。
214
BSERR_TEMPCREAT
一時ファイルの生成ができません。
215
BSERR_FILENONE
入力または出力に指定したファイルがあ
りません。
216
BSERR_PERMIFILE
入力に指定したファイルには参照許可が
ありません。
217
BSERR_PERMOFILE
出力に指定したファイルには書込許可が
ありません。
208
231
第8章 メッセージとエラーコード
232
218
BSERR_PERMMFILE
指定したメッセージファイルには書込許
可がありません。
219
BSERR_PERMTFILE
一時ファイルに指定したファイルには参
照許可または書込許可がありません。
220
BSERR_MSGSPACE
メッセージファイルの容量が足りませ
ん。メッセージファイルへの出力を中断
します。
221
BSERR_EXTRECLEN
bsrtopen関数で指定したレコード長に誤
りがあります。
222
BSERR_STRFILEREC
入力に通常ファイルを指定しています
が、通常ファイルを指定した場合は、レ
コード長の省略はできません。
223
BSERR_CLSEARG
bsrtclse関数の引数に誤りがあります。
224
BSERR_WRITETEMP
一時ファイルへの書込み中にエラーが発
生しました。
225
BSERR_READTEMP
一時ファイルからの読込み中にエラーが
発生しました。
226
BSERR_ENVAR
環境変数の設定に誤りがあります。
230
BSERR_EUC
キーフィールドまたは選択フィールドに
判別不可能なコードがあります。
231
BSERR_COBOL85
ファイルシステムのエラーが発生しまし
た。または、指定したファイルシステム
のライブラリがありません。
232
BSERR_SYMLINK
パス名のチェック中に見つかったシンボ
リックリンクの数がMAXSYMLINKSを超え
ました。
233
BSERR_NAMELONG
ファイルパス名が長過ぎます。
234
BSERR_NOTDIR
パスプレフィックスの構成要素にフォル
ダでないものがあります。
235
BSERR_ISDIR
指定したパスはフォルダです。
236
BSERR_OUTNOSPC
出力デバイス上のスペースが足りませ
ん。
237
BSERR_FILEBIG
ファイルサイズがプロセスの限度または
最大ファイルサイズを超えました。
238
BSERR_LIBC
システムコールまたはライブラリ関数で
エラーが発生しました。
250
BSERR_LOGICAL
PowerSORTの処理に誤りがあります。
251
BSERR_ALREADY_EXISTS
既に存在しているファイルを作成しよう
としました。
252
BSERR_BAD_DEVICE
指定されたデバイス名が無効です。
253
BSERR_IN_BAD_DEVICE
指定された入力ファイルのデバイス名が
無効です。
254
BSERR_OUT_BAD_DEVICE
指定された出力ファイルのデバイス名が
無効です。
255
BSERR_BAD_PATHNAME
指定されたパス名が無効です。
256
BSERR_IN_BAD_PATHNAME
指定された入力ファイルのパス名が無効
です。
257
BSERR_OUT_BAD_PATHNAME
指定された出力ファイルのパス名が無効
です。
258
BSERR_BAD_UNIT
指定されたデバイスを見つけることがで
きません。
8.2 エラーコード
259
BSERR_IN_BAD_UNIT
指定された入力ファイルのデバイスを見
つけることができません。
260
BSERR_OUT_BAD_UNIT
指定された出力ファイルのデバイスを見
つけることができません。
261
BSERR_BUFFER_OVERFLOW
ファイル名が長過ぎます。
262
BSERR_IN_BUFFER_OVERFLOW
入力ファイル名が長過ぎます。
263
BSERR_OUT_BUFFER_OVERFLOW
出力ファイル名が長過ぎます。
264
BSERR_CANNOT_MAKE
フォルダまたはファイルを作成できませ
ん。
265
BSERR_IN_CANNOT_MAKE
入力ファイルとして指定されたフォルダ
またはファイルを作成できません。
266
BSERR_OUT_CANNOT_MAKE
出力ファイルとして指定されたフォルダ
またはファイルを作成できません。
267
BSERR_CONNECTION_UNAVAIL
デバイスへの接続は以前から記憶されて
いる接続ですが現在は接続されていませ
ん。
268
BSERR_IN_CONNECTION_UNAVAIL
入力ファイルのデバイスへの接続は以前
から記憶されている接続ですが現在は接
続されていません。
269
BSERR_OUT_CONNECTION_UNAVAIL
出力ファイルのデバイスへの接続は以前
から記憶されている接続ですが現在は接
続されていません。
270
BSERR_DIR_NOT_ROOT
指定されたフォルダは有効なフォルダで
はありません。
271
BSERR_IN_DIR_NOT_ROOT
入力ファイルとして指定されたフォルダ
は有効なフォルダではありません。
272
BSERR_OUT_DIR_NOT_ROOT
出力ファイルとして指定されたフォルダ
は有効なフォルダではありません。
273
BSERR_DIRECTORY
フォルダ名が無効です。
274
BSERR_IN_DIRECTORY
入力ファイルとして指定されたフォルダ
名が無効です。
275
BSERR_OUT_DIRECTORY
出力ファイルとして指定されたフォルダ
名が無効です。
276
BSERR_DISK_CORRUPT
ディスク装置が壊れていて読み取ること
ができません。
277
BSERR_DISK_FULL
ディスク上に充分な容量がありません。
278
BSERR_DISK_OPERATION_FAILED
ハードディスクへアクセス中にディスク
操作に失敗し、再試行も失敗しました。
279
BSERR_DISK_RECALIBRATE_FAILED
ハードディスクへアクセス中に再校正処
理に失敗し、再試行も失敗しました。
280
BSERR_DISK_RESET_FAILED
ハードディスクへのアクセス中にディス
クコントローラのリセットが必要になり
ましたが、失敗しました。
281
BSERR_DRIVE_LOCKED
ディスクは使用中か、またはほかのプロ
セスがロックしています。
282
BSERR_IN_DRIVE_LOCKED
入力ファイルとして指定されたディスク
は使用中か、またはほかのプロセスがロ
ックしています。
BSERR_OUT_DRIVE_LOCKED
出力ファイルとして指定されたディスク
は使用中か、またはほかのプロセスがロ
ックしています。
283
233
第8章 メッセージとエラーコード
284
BSERR_EXTENDED_ERROR
拡張エラーが発生しました。
285
BSERR_FILE_CORRUPT
ファイルまたはフォルダが壊れており、
読み取ることができません。
BSERR_FILE_INVALID
ファイルのボリュームが外部的に交換さ
れており、オープンされているファイル
は有効でなくなりました。
BSERR_IN_FILE_INVALID
入力ファイルとして指定されたボリュー
ムが外部的に交換されており、オープン
されているファイルは有効でなくなりま
した。
288
BSERR_OUT_FILE_INVALID
出力ファイルとして指定されたボリュー
ムが外部的に交換されており、オープン
されているファイルは有効でなくなりま
した。
289
BSERR_FILE_NOT_FOUND
指定されたファイルを見つけることがで
きません。
290
BSERR_IN_FILE_NOT_FOUND
指定された入力ファイルを見つけること
ができません。
291
BSERR_OUT_FILE_NOT_FOUND
指定された出力ファイルを見つけること
ができません。
292
BSERR_FILENAME_EXCED_RANGE
ファイル名または拡張子が長過ぎます。
293
BSERR_IN_FILENAME_EXCED_RANGE
入力ファイル名または拡張子が長過ぎま
す。
294
BSERR_OUT_FILENAME_EXCED_RANGE
出力ファイル名または拡張子が長過ぎま
す。
295
BSERR_HANDLE_DISK_FULL
ディスクがいっぱいです。
296
BSERR_INVALID_DRIVE
指定されたドライブを見つけることがで
きません。
297
BSERR_IN_INVALID_DRIVE
指定された入力ファイルのドライブを見
つけることができません。
298
BSERR_OUT_INVALID_DRIVE
指定された出力ファイルのドライブを見
つけることができません。
299
BSERR_INVALID_NAME
ファイル名、フォルダ名、またはボリュ
ームラベルが構文上正しくありません。
BSERR_IN_INVALID_NAME
入力ファイルのファイル名、フォルダ名、
またはボリュームラベルが構文上正しく
ありません。
301
BSERR_OUT_INVALID_NAME
出力ファイルのファイル名、フォルダ名、
またはボリュームラベルが構文上正しく
ありません。
302
BSERR_IO_DEVICE
I/Oデバイスエラーのため要求を実行で
きませんでした。
303
BSERR_LOCK_VIOLATION
他のプロセスがファイルの一部分を既に
ロックしているため、プロセスはそのフ
ァイルにアクセスできません。
304
BSERR_IN_LOCK_VIOLATION
他のプロセスが入力ファイルの一部分を
既にロックしているため、プロセスはそ
のファイルにアクセスできません。
305
BSERR_OUT_LOCK_VIOLATION
他のプロセスが出力ファイルの一部分を
既にロックしているため、プロセスはそ
のファイルにアクセスできません。
286
287
300
234
8.2 エラーコード
306
BSERR_NEGATIVE_SEEK
ファイルの先頭よりも前の位置にファイ
ルポインタを移動しようとしました。
307
BSERR_NET_WRITE_FAULT
書込み違反がネットワーク上で発生しま
した。
308
BSERR_NETWORK_ACCESS_DENIED
ネットワークアクセスが拒否されまし
た。
309
BSERR_IN_NETWORK_ACCESS_DENIED
入力ファイルのネットワークアクセスが
拒否されました。
310
BSERR_OUT_NETWORK_ACCESS_DENIED
出力ファイルのネットワークアクセスが
拒否されました。
311
BSERR_NETWORK_BUSY
ネットワークはビジー状態です。
312
BSERR_NO_MORE_FILE
ファイルはこれ以上ありません。
313
BSERR_NO_NETWORK
ネットワークが存在しないか、または開
始されていません。
314
BSERR_IN_NO_NETWORK
入力ファイルのネットワークが存在しな
いか、または開始されていません。
315
BSERR_OUT_NO_NETWORK
出力ファイルのネットワークが存在しな
いか、または開始されていません。
316
BSERR_NO_SUCH_ALIAS
指定されたエイリアスが存在しません。
317
BSERR_IN_NO_SUCH_ALIAS
指定された入力ファイルのエイリアスが
存在しません。
318
BSERR_OUT_NO_SUCH_ALIAS
指定された出力ファイルのエイリアスが
存在しません。
319
BSERR_NO_VOLUME_LABEL
ディスクにはボリュームラベルがありま
せん。
320
BSERR_IN_NO_VOLUME_LABEL
入力ファイルのディスクにはボリューム
ラベルがありません。
321
BSERR_OUT_NO_VOLUME_LABEL
出力ファイルのディスクにはボリューム
ラベルがありません。
322
BSERR_NOT_CONNECTED
指定されたファイルのネットワーク接続
は存在しません。
BSERR_IN_NOT_CONNECTED
入力ファイルとして指定されたファイル
に対するネットワーク接続は存在しませ
ん。
324
BSERR_OUT_NOT_CONNECTED
出力ファイルとして指定されたファイル
に対するネットワーク接続は存在しませ
ん。
325
BSERR_NOT_DOS_DISK
指定されたディスクにはアクセスできま
せん。
326
BSERR_IN_NOT_DOS_DISK
指定された入力ファイルのディスクには
アクセスできません。
327
BSERR_OUT_NOT_DOS_DISK
指定された出力ファイルのディスクには
アクセスできません。
328
BSERR_NOT_READY
ドライブの準備ができていません。
329
BSERR_IN_NOT_READY
入力ファイルとして指定されたドライブ
の準備ができていません。
330
BSERR_OUT_NOT_READY
出力ファイルとして指定されたドライブ
の準備ができていません。
331
BSERR_NOT_SUPPORTED
ネットワーク要求がサポートされていま
せん。
323
235
第8章 メッセージとエラーコード
BSERR_IN_NOT_SUPPORTED
入力ファイルとして指定されたファイル
に対するネットワーク要求がサポートさ
れていません。
333
BSERR_OUT_NOT_SUPPORTED
出力ファイルとして指定されたファイル
に対するネットワーク要求がサポートさ
れていません。
334
BSERR_OPEN_FAILED
指定されたデバイスまたはファイルをオ
ープンできません。
335
BSERR_IN_OPEN_FAILED
入力ファイルとして指定されたデバイス
またはファイルをオープンできません。
336
BSERR_OUT_OPEN_FAILED
出力ファイルとして指定されたデバイス
またはファイルをオープンできません。
337
BSERR_PATH_BUSY
この時点では、指定されたパスは使えま
せん。
338
BSERR_IN_PATH_BUSY
この時点では、指定された入力ファイル
のパスは使えません。
339
BSERR_OUT_PATH_BUSY
この時点では、指定された出力ファイル
のパスは使えません。
340
BSERR_PATH_NOT_FOUND
指定されたパスを見つけることができま
せん。
341
BSERR_IN_PATH_NOT_FOUND
指定された入力ファイルのパスを見つけ
ることができません。
342
BSERR_OUT_PATH_NOT_FOUND
指定された出力ファイルのパスを見つけ
ることができません。
343
BSERR_PRIVILEGE_NOT_HELD
クライアントは必要な特権を保持してい
ません。
344
BSERR_IN_PRIVILEGE_NOT_HELD
入力ファイルに指定されたファイルに対
して、クライアントは必要な特権を保持
していません。
345
BSERR_OUT_PRIVILEGE_NOT_HELD
出力ファイルに指定されたファイルに対
して、クライアントは必要な特権を保持
していません。
346
BSERR_READ_FAULT
システムは指定されたデバイスから読み
取ることができません。
347
BSERR_REM_NET_LIST
リモートコンピュータが利用できませ
ん。
348
BSERR_REQ_NOT_ACCEP
ネットワーク要求が受け入れられません
でした。
349
BSERR_SECTOR_NOT_FOUND
ドライブは、要求されたセクタを見つけ
ることができません。
350
BSERR_RD_SECTOR_NOT_FOUND
ドライブは、読込み要求されたセクタを
見つけることができません。
351
BSERR_WT_SECTOR_NOT_FOUND
ドライブは、書込み要求されたセクタを
見つけることができません。
352
BSERR_SEEK
ドライブは、ディスク上の指定された領
域やトラックの位置を特定することがで
きません。
353
BSERR_RD_SEEK
読込み処理中、ディスク上の指定された
領域やトラックの位置を特定することが
できませんでした。
332
236
8.2 エラーコード
354
BSERR_WT_SEEK
書込み処理中、ディスク上の指定された
領域やトラックの位置を特定することが
できませんでした。
355
BSERR_SEEK_ON_DEVICE
指定されたデバイスまたはファイルにフ
ァイルポインタを設定することができま
せん。
BSERR_RD_SEEK_ON_DEVICE
指定された入力ファイルのデバイスまた
はファイルにファイルポインタを設定す
ることができません。
357
BSERR_WT_SEEK_ON_DEVICE
指定された出力ファイルのデバイスまた
はファイルにファイルポインタを設定す
ることができません。
358
BSERR_SHARING_PAUSED
リモートサーバは、一時停止状態、また
は、開始状態です。
359
BSERR_SHARING_VIOLATION
他のプロセスがファイルを使用している
ため、プロセスはそのファイルにアクセ
スできません。
360
BSERR_IN_SHARING_VIOLATION
他のプロセスが入力ファイルを使用して
いるため、プロセスはそのファイルにア
クセスできません。
361
BSERR_OUT_SHARING_VIOLATION
他のプロセスが出力ファイルを使用して
いるため、プロセスはそのファイルにア
クセスできません。
362
BSERR_IN_TOO_MANY_OPEN_FILES
入力ファイルをオープンできません。
363
BSERR_OUT_TOO_MANY_OPEN_FILES
出力ファイルをオープンできません。
BSERR_UNRECOGNIZED_MEDIA
ディスクメディアが認識されていませ
ん。フォーマットされていない可能性が
あります。
365
BSERR_IN_UNRECOGNIZED_MEDIA
入力ファイルとして指定されたディスク
メディアが認識されていません。フォー
マットされていない可能性があります。
366
BSERR_OUT_UNRECOGNIZED_MEDIA
出力ファイルとして指定されたディスク
メディアが認識されていません。フォー
マットされていない可能性があります。
367
BSERR_UNRECOGNIZED_VOLUME
ボリュームは、認識されたファイルシス
テムを持っていません。必要なファイル
システムドライバがすべてロードされ、
ボリュームが壊れていないかどうか確認
してください。
368
BSERR_WRITE_FAULT
指定されたデバイスに書き込むことがで
きません。
369
BSERR_WRITE_PROTECT
メディアは書込み禁止です。
370
BSERR_ACCESS_DENIED
アクセスが拒否されました。
371
BSERR_IN_ACCESS_DENIED
入力ファイルのアクセスが拒否されまし
た。
372
BSERR_OUT_ACCESS_DENIED
出力ファイルのアクセスが拒否されまし
た。
600
BSERR_KANJI
漢字ソートマージ処理にエラーが発生し
ました。
601
BSERR_ADJUST
漢字属性取り出し処理でエラーが発生し
ました。
356
364
237
第8章 メッセージとエラーコード
602
BSERR_ICONV
文字コード変換処理でエラーが発生しま
した。
623
BSERR_INVALID_FRIGANA
ふりがなフィールドの指定に誤りがあり
ます。
8.2.2 富士通COBOLファイルに関するエラーコード
富士通COBOLファイルシステムのエラーコードは、1~4バイトで通知されます。値はすべて16進数表
現です。最終1バイトがファイルステータス値で、それ以前の値は詳細コードです。表示された値は
後ろから1バイトずつ参照してください。
富士通COBOLファイルシステムのエラーコードの詳細については、お使いの富士通COBOLのマニュアル
を参照してください。
8.2.3 Btrieveファイルに関するエラーコード
Btrieveファイルシステムがエラーを検出した場合、PowerSORTはBtrieveファイルシステムのエラー
コードをBSRTREC構造体のsub_error_codeに設定します。
Btrieveのエラーコードの詳細については、お使いのBtrieve製品のマニュアルを参照してください。
8.2.4 ADJUSTに関するエラーコード
漢字ソートマージ機能を使用している際にADJUSTプログラムがエラーを検出した場合、PowerSORTは
ADJUSTプログラムのエラー詳細コードをBSRTREC構造体のsub_error_codeに設定します。
ADJUSTプログラムのエラー詳細コード(10進数)を以下に示します。
コード
意味
100
ファイルは既にオープン済みです。
102
利用者定義情報体がありません。
103
属性辞書のオープンエラーが発生しました。
104
管理情報のオープンエラーが発生しました。
105
利用者定義情報のオープンエラーが発生しました。
106
領域不足が発生しました。
201
ファイルは既にクローズ済みです。
202
属性辞書のクローズエラーが発生しました。
203
管理情報のクローズエラーが発生しました。
204
利用者定義情報のクローズエラーが発生しました。
301
コードエラーが発生しました。
302
辞書ファイルが未オープンです。
303
属性情報がありません。
304
属性辞書のI/Oエラーが発生しました。
305
管理情報のI/Oエラーが発生しました。
306
利用者定義情報のI/Oエラーが発生しました。
8.2.5 ICONVに関するエラーコード
漢字ソートマージ機能を使用している際にICONVプログラムがエラーを検出した場合、PowerSORTは
ICONVプログラムのエラー詳細コードをBSRTREC構造体のsub_error_codeに設定します。
ICONVプログラムのエラー詳細コード(10進数)を以下に示します。
238
8.2 エラーコード
コード
意味
2
利用者定義コード変換表のファイルがオープンできませんでした。
7
変換元バッファ領域が小さいため変換処理を中断しました。
8
サポートしていない利用者定義コード変換表の形式が指定されました。
12
領域不足が発生しました。
22
変換元文字列の終りに、不完全なコードまたはシフトコードが現れたため
変換処理を中断しました。
42
変換元文字列の中に変換元文字コードとして存在しないコードがあった
ため変換処理を中断しました。
50
利用者固有のコード変換機能で、未定義文字での復帰指示または利用者定
義コードが現れたため変換処理を中断しました。
54
利用者定義コード変換処理で、コード変換表内の変換先文字コード属性値
が正しくありません。
61
利用者定義コード変換表のアドレスが指定されていません。
8.2.6 OCX使用時のエラー詳細コード
PowerSORT OCXからPowerSORTを使用した場合、ErrorCodeプロパティにPowerSORTの復帰コードが通知
され、ErrorDetailプロパティにPowerSORTのエラー詳細コードが通知されます。
PowerSORTの復帰コード(ErrorCodeプロパティ)の値により、ErrorDetailプロパティの設定値の意味
は異なるので注意が必要です。
● エラー詳細コード(ErrorCodeプロパティが0、-1、-2のとき)
● エラー詳細コード(ErrorCodeプロパティが-3のとき)
● エラー詳細コード(ErrorCodeプロパティが-4のとき)
8.2.6.1 エラー詳細コード(ErrorCodeプロパティが0、-1、-2のとき)
ErrorCodeプロパティが、0、-1または-2の場合のErrorDetailプロパティの設定値の意味は次のとお
りです。
コード
2
意味
PowerSORTで使用するダイナミックリンクライブラリ(DLL)がローディン
グできません。以下のような原因が考えられます。
● 漢字ソートマージ機能使用時にADJUSTがインストールされていませ
ん。
● 富士通COBOLファイルを指定していますが、COBOLファイルシステム
がインストールされていません。
● Btrieveファイルを指定していますが、Btrieveファイルシステムが
インストールされていません。
50
指定したメモリサイズが小さすぎます。
52
PowerSORTの動作に必要なメモリを確保できませんでした。
56
設定されたファイル関連情報に以下のような誤りがあります。
● 実際の入力ファイルのレコード形式が指定されたレコード形式と異
なります。
● 入力ファイルのファイル種別にバイナリファイルを指定しています
が、バイナリファイルのファイルサイズがレコード長の倍数ではあ
りません。
● マージおよびコピー機能で、上書き指定がされています。
● コピー機能で、降順が指定されています。
● コピー機能で、同一キーオプション(先入力先出力(FIFO)、サプレス、
レコード集約)が指定されています。
239
第8章 メッセージとエラーコード
コード
240
意味
57
排他関係にある機能を指定しました。
● 先入力先出力(FIFO)機能、サプレス機能、レコード集約機能
● ソート機能、マージ機能、コピー機能
59
キーフィールドの指定に誤りがあります。
● キーフィールドがレコードの外を指しています。
● キーフィールドで指定されたデータ形式を認識できません。
● キーフィールドで指定されたキーの長さがサポート範囲外です。
60
集約フィールドの指定に誤りがあります。
● 集約フィールドがレコードの外を指しています。
● 集約フィールドで指定されたデータ形式を認識できません。
● 集約フィールドで指定されたキーの長さがサポート範囲外です。
61
キーフィールドと集約フィールド、または集約フィールド同士が重なって
います。
62
サポートされていない機能を指定しています。
63
選択フィールドに誤りがあります。
64
再編成フィールドに誤りがあります。
65
ファイルシステムの指定に誤りがあります。
66
選択フィールドが存在しないレコードが入力されました。
67
再編成フィールドが存在しないレコードが入力されました。
111
レコード長に誤りがあります。
114
マージ処理の入力ファイルが並んでいません。
115
レコード集約処理でオーバフローが発生しました。
116
可変長またはテキストレコード入力中、集約フィールドが存在しないレコ
ードが入力されました。集約処理を中止し、処理は継続します。
117
テキストレコードでレコードの終りに改行文字がありません。
118
テキストレコード入力中、キーフィールドを含まないレコードが入力され
ました。
200
ファイルからのレコード読込み中にエラーが発生しました。
201
ファイルへのレコード書込み中にエラーが発生しました。
202
ファイルの属性に誤りがあります。ファイル属性の取得に失敗しました。
203
一時ファイルの属性に誤りがあります。ファイル属性の取得に失敗しまし
た。
204
ファイルの形式に誤りがあります。
● 組み合わせてはいけないファイル形式を指定しました。ファイル形
式の組合せについては、入力と出力のファイル種別の組合せについ
てを参照してください。
● サポート外のファイル形式を指定しました。
205
ファイルパス名の指定に重複があります。入力ファイルと出力ファイルに
同じファイルを指定しました。
206
レコード形式に誤りがあります。
● 固定長ファイルと可変長ファイルを混在して指定しています。
● 入力と出力のレコード形式が異なっています。
207
レコード長に誤りがあります。
● 可変長ファイルを指定したときは、MaxRecordLengthプロパティで指
定した長さよりファイル属性のレコード長の方が長い場合に発生し
ます。
● 固定長ファイルを指定したときは、MaxRecordLengthプロパティで指
定した長さとファイル属性の長さが異なる場合に発生します。
208
ファイルのオープンでエラーが発生しました。
8.2 エラーコード
209
プロセス内またはシステム内でオープン中のファイルが多過ぎます。また
は、必要とする一時ファイルの数が多過ぎます。
210
ファイルのクローズでエラーが発生しました。
211
媒体障害、またはソフト障害によるデータ破壊が発生しました。
212
一時ファイルの容量が足りません。
213
インコアソート(メモリ内だけで行うソート)できません。
214
一時ファイルの生成ができません。指定された一時ファイルのフォルダ名
や属性に誤りがあり、一時ファイルの生成ができません。
215
入力に指定したファイルがありません。
216
入力に指定したファイルには参照許可がありません。
217
出力に指定したファイルには書込み許可がありません。
219
一時ファイルに指定したファイルには参照許可または書込み許可があり
ません。
222
レコード長の省略はできません。
224
一時ファイルへの書込み中にエラーが発生しました。
225
一時ファイルからの読込み中にエラーが発生しました。
226
環境変数の設定に誤りがあります。
230
キーフィールドの内部に判別不可能なコードがあります。
231
COBOLファイルシステムでエラーが発生しました。
● COBOLランタイムライブラリが正しくインストールされていません。
● 富士通COBOLファイルシステムの場合、レジストリ中のセクション
“Product_Directory”の設定に誤りがあります。
233
ファイルパス名が長過ぎます。
234
パスプレフィックスの構成要素にフォルダでないものがあります。
235
指定したファイル名はフォルダです。
236
出力デバイス上のスペースが足りません。
237
ファイルのサイズがプロセスの限度または最大ファイルサイズを超えま
した。
238
システムコールまたはライブラリ関数でエラーが発生しました。
240
レコード比較領域が確保できなかったため、処理を中断しました。
241
レコード集約処理中に数値として認識されない値が検出されました。
242
Btrieveファイルシステムでエラーを検出しました。SubErrorCodeプロパ
ティにエラー情報が設定されています。Btrieveのマニュアルなどを参照
してください。
243
COBOLファイルシステム(索引ファイル)でエラーを検出しました。
250
PowerSORTの処理に誤りがあります。
251
既に存在しているファイルを作成しようとしました。
252
指定されたデバイス名が無効です。
253
指定された入力ファイルのデバイス名が無効です。
254
指定された出力ファイルのデバイス名が無効です。
255
指定されたパス名が無効です。
256
指定された入力ファイルのパス名が無効です。
257
指定された出力ファイルのパス名が無効です。
258
指定されたデバイスを見つけることができません。
259
指定された入力ファイルのデバイスを見つけることができません。
260
指定された出力ファイルのデバイスを見つけることができません。
261
ファイル名が長過ぎます。
262
入力ファイル名が長過ぎます。
263
出力ファイル名が長過ぎます。
241
第8章 メッセージとエラーコード
242
264
フォルダまたはファイルを作成できません。
265
入力ファイルとして指定されたフォルダまたはファイルを作成できませ
ん。
266
出力ファイルとして指定されたフォルダまたはファイルを作成できませ
ん。
267
デバイスへの接続は以前から記憶されている接続ですが現在は接続され
ていません。
268
入力ファイルのデバイスへの接続は以前から記憶されている接続ですが
現在は接続されていません。
269
出力ファイルのデバイスへの接続は以前から記憶されている接続ですが
現在は接続されていません。
270
指定されたフォルダは有効なフォルダではありません。
271
入力ファイルとして指定されたフォルダは有効なフォルダではありませ
ん。
272
出力ファイルとして指定されたフォルダは有効なフォルダではありませ
ん。
273
フォルダ名が無効です。
274
入力ファイルとして指定されたフォルダ名が無効です。
275
出力ファイルとして指定されたフォルダ名が無効です。
276
ディスク装置が壊れていて読み取ることができません。
277
ディスク上に充分な容量がありません。
278
ハードディスクへアクセス中にディスク操作に失敗し、再試行も失敗しま
した。
279
ハードディスクへアクセス中に再キャリブレート操作に失敗し、再試行に
も失敗しました。
280
ハードディスクへのアクセス中にディスクコントローラのリセットが必
要になりましたが、失敗しました。
281
ディスクは使用中か、または他のプロセスがロックしています。
282
入力ファイルとして指定されたディスクは使用中か、または他のプロセス
がロックしています。
283
出力ファイルとして指定されたディスクは使用中か、または他のプロセス
がロックしています。
284
拡張エラーが発生しました。
285
ファイルまたはフォルダが壊れており、読み取ることができません。
286
ファイルのボリュームが外部的に交換されており、オープンされているフ
ァイルは有効でなくなりました。
287
入力ファイルとして指定されたボリュームが外部的に交換されており、オ
ープンされているファイルは有効でなくなりました。
288
出力ファイルとして指定されたボリュームが外部的に交換されており、オ
ープンされているファイルは有効でなくなりました。
289
指定されたファイルを見つけることができません。
290
指定された入力ファイルを見つけることができません。
291
指定された出力ファイルを見つけることができません。
292
ファイル名または拡張子が長過ぎます。
293
入力ファイル名または拡張子が長過ぎます。
294
出力ファイル名または拡張子が長過ぎます。
295
ディスクがいっぱいです。
296
指定されたドライブを見つけることができません。
297
指定された入力ファイルのドライブを見つけることができません。
298
指定された出力ファイルのドライブを見つけることができません。
8.2 エラーコード
299
ファイル名、フォルダ名、またはボリュームラベルが構文上正しくありま
せん。
300
入力ファイルのファイル名、フォルダ名、またはボリュームラベルが構文
上正しくありません。
301
出力ファイルのファイル名、フォルダ名、またはボリュームラベルが構文
上正しくありません。
302
I/Oデバイスエラーのため要求を実行できませんでした。
303
他のプロセスがファイルの一部分を既にロックしているため、プロセスは
そのファイルにアクセスできません。
304
他のプロセスが入力ファイルの一部分を既にロックしているため、プロセ
スはそのファイルにアクセスできません。
305
他のプロセスが出力ファイルの一部分を既にロックしているため、プロセ
スはそのファイルにアクセスできません。
306
ファイルの先頭よりも前の位置にファイルポインタを移動しようとしま
した。
307
書込み違反がネットワーク上で発生しました。
308
ネットワークアクセスが拒否されました。
309
入力ファイルのネットワークアクセスが拒否されました。
310
出力ファイルのネットワークアクセスが拒否されました。
311
ネットワークはビジー状態です。
312
ファイルはこれ以上ありません。
313
ネットワークが存在しないか、または開始されていません。
314
入力ファイルのネットワークが存在しないか、または開始されていませ
ん。
315
出力ファイルのネットワークが存在しないか、または開始されていませ
ん。
316
指定されたエイリアスが存在しません。
317
指定された入力ファイルのエイリアスが存在しません。
318
指定された出力ファイルのエイリアスが存在しません。
319
ディスクにはボリュームラベルがありません。
320
入力ファイルのディスクにはボリュームラベルがありません。
321
出力ファイルのディスクにはボリュームラベルがありません。
322
指定されたファイルのネットワーク接続は存在しません。
323
入力ファイルとして指定されたファイルに対するネットワーク接続は存
在しません。
324
出力ファイルとして指定されたファイルに対するネットワーク接続は存
在しません。
325
指定されたディスクにはアクセスできません。
326
指定された入力ファイルのディスクにはアクセスできません。
327
指定された出力ファイルのディスクにはアクセスできません。
328
ドライブの準備ができていません。
329
入力ファイルとして指定されたドライブの準備ができていません。
330
出力ファイルとして指定されたドライブの準備ができていません。
331
ネットワーク要求がサポートされていません。
332
入力ファイルとして指定されたファイルに対するネットワーク要求がサ
ポートされていません。
333
出力ファイルとして指定されたファイルに対するネットワーク要求がサ
ポートされていません。
334
指定されたデバイスまたはファイルをオープンできません。
243
第8章 メッセージとエラーコード
244
335
入力ファイルとして指定されたデバイスまたはファイルをオープンでき
ません。
336
出力ファイルとして指定されたデバイスまたはファイルをオープンでき
ません。
337
この時点では、指定されたパスは使えません。
338
この時点では、指定された入力ファイルのパスは使えません。
339
この時点では、指定された出力ファイルのパスは使えません。
340
指定されたパスを見つけることができません。
341
指定された入力ファイルのパスを見つけることができません。
342
指定された出力ファイルのパスを見つけることができません。
343
クライアントは必要な特権を保持していません。
344
入力ファイルに指定されたファイルに対して、クライアントは必要な特権
を保持していません。
345
出力ファイルに指定されたファイルに対して、クライアントは必要な特権
を保持していません。
346
システムは指定されたデバイスから読み取ることができません。
347
リモートコンピュータが利用できません。
348
ネットワーク要求が受け入れられませんでした。
349
ドライブは、要求されたセクタを見つけることができません。
350
ドライブは、読込み要求されたセクタを見つけることができません。
351
ドライブは、書込み要求されたセクタを見つけることができません。
352
ドライブは、ディスク上の指定された領域やトラックの位置を特定するこ
とができません。
353
読込み処理中、ディスク上の指定された領域やトラックの位置を特定する
ことができませんでした。
354
書込み処理中、ディスク上の指定された領域やトラックの位置を特定する
ことができませんでした。
355
指定されたデバイスまたはファイルにファイルポインタを設定すること
ができません。
356
指定された入力ファイルのデバイスまたはファイルにファイルポインタ
を設定することができません。
357
指定された出力ファイルのデバイスまたはファイルにファイルポインタ
を設定することができません。
358
リモートサーバは、一時停止状態または開始状態です。
359
他のプロセスがファイルを使用しているため、プロセスはそのファイルに
アクセスできません。
360
他のプロセスが入力ファイルを使用しているため、プロセスはそのファイ
ルにアクセスできません。
361
他のプロセスが出力ファイルを使用しているため、プロセスはそのファイ
ルにアクセスできません。
362
入力ファイルをオープンできません。
363
出力ファイルをオープンできません。
364
ディスクメディアが認識されていません。フォーマットされていない可能
性があります。
365
入力ファイルとして指定されたディスクメディアが認識されていません。
フォーマットされていない可能性があります。
366
出力ファイルとして指定されたディスクメディアが認識されていません。
フォーマットされていない可能性があります。
8.2 エラーコード
367
ボリュームは、認識されたファイルシステムを持っていません。必要なフ
ァイルシステムドライバがすべてロードされ、ボリュームが壊れていない
かどうか確認してください。
368
指定されたデバイスに書き込むことができません。
369
メディアは書込み禁止です。
370
アクセスが拒否されました。
371
入力ファイルのアクセスが拒否されました。
372
出力ファイルのアクセスが拒否されました。
600
漢字ソートマージ処理でエラーが発生しました。
601
ADJUST処理でエラーが発生しました。SubErrorCodeプロパティを参照して
ください。対応するエラーコードについてはADJUSTに関するエラーコード
を参照してください。
602
ICONV処理でエラーが発生しました。SubErrorCodeプロパティを参照して
ください。対応するエラーコードについてはICONVに関するエラーコード
を参照してください。
623
ふりがなフィールドの指定に誤りがあります。
8.2.6.2 エラー詳細コード(ErrorCodeプロパティが-3のとき)
ErrorCodeプロパティが-3の場合のErrorDetailプロパティの設定値の意味は次のとおりです。
コード
意味
1
PowerSORT OLEカスタムコントロール解析処理で使用する領域の確保に失
敗しました。
2
メモリサイズが不正です。(UsableMemorySizeプロパティ)
3
一時ファイルが作成できません。または、ファイル名とフォルダ名の指定
が混在しています。(TempDirプロパティ)
4
処理指定に無効な値を指定しています。(DisposalNumberプロパティ)
5
入力ファイル名を指定してください。(InputFilesプロパティ)
6
入力ファイル形式に無効な値を指定しています。(InputFileTypeプロパテ
ィ)
7
出力ファイル名を指定してください。(OutputFileプロパティ)
8
出力ファイル種別に無効な値を指定しています。(OutputFileTypeプロパ
ティ)
9
キーフィールドが長過ぎます。(KeyCmdStrプロパティ)
10
再編成自己既定値が指定した長さに収まりません。(RconCmdStrプロパテ
ィ)
11
富士通COBOL索引情報に誤りがあります。
(FjcobPrimeKeyプロパティ、FjcobAlternateKeyプロパティ)
12
同値キーの扱い指定と集約指定の組合せに誤りがあります。
(HandlingSameKeyプロパティ、SumCmdStrプロパティ)
13
同値キーの扱い指定に無効な値を指定しています。
(HandlingSameKeyプロパティ)
14
照合順序に無効な値を指定しています。(CollationOrderプロパティ)
15
フィールドモードに無効な値を指定しています。(FieldDefinitionプロパ
ティ)
16
レコード分離文字に無効な値を指定しています。(LineDelimiterプロパテ
ィ)
17
フィールド分離文字指定が長過ぎます。(FieldDelimiterプロパティ)
245
第8章 メッセージとエラーコード
コード
意味
18
フィールド分離文字指定に誤りがあります。(FieldDelimiterプロパティ)
19
ファイルの上書き指定はソート処理だけ有効です。
20
一時ファイルフォルダ指定に誤りがあります。(TempDirプロパティ)
22
レコード読み飛ばし件数の指定に誤りがあります。(InputFilesSkiprecプ
ロパティ)
Btrieve関連情報に誤りがあります。
(BtrieveInfileOwnerName プ ロ パ テ ィ 、 BtrieveIndexKey プ ロ パ テ ィ 、
23
BtrieveFileInfoプロパティ)
以下のような原因が考えられます。
出 力 フ ァ イ ル 種 別 が Btrieve で 、 BtrieveIndexKey プ ロ パ テ ィ 、
BtrieveFileInfoプロパティの双方に情報がない場合
出力がBtrieveファイルのとき、BtrieveIndexKeyプロパティ、
BtrieveFileInfoプロパティの指定は必要です。
キー長やプリアロケーションサイズなどにshort int型で表現でき
ない値が指定されている場合
Btrieve関連の指定値は、特に記述がない場合、short int型で表現
できる範囲(0~65535)です。例外として、セグメント番号はlong
型で表せる範囲(0~4294967295)まで指定できます。
24
InputDataCodeに無効な値を指定しています。(InputDataCodeプロパティ)
25
AlternateModeに無効な値を指定しています。(AlternateModeプロパティ)
26
テキストファイルのときはInputDataCodeにEBCDICを選択できません。
(InputDataCodeプロパティ、InputFileTypeプロパティ)
8.2.6.3 エラー詳細コード(ErrorCodeプロパティが-4のとき)
ErrorCodeプロパティが-4のときは、PowerSORT OCXのエラーです。
本エラーが発生した場合は、ErrorDetailプロパティの設定値を当社サポート員または販売元に通知
し、調査を依頼してください。
246
付録A 使用例
A.1 bsortコマンドの使用例
代表的な機能を使ったbsortコマンドの使用例を説明します。
● ソート処理の例
● マージ処理の例
● コピー処理の例
● レコード選択機能を使った例
● レコード再編成機能を使った例
●
●
●
●
●
●
レコード集約機能を使った例
サプレス機能を使った例
先入力先出力(FIFO)機能を使った例
Btrieveファイルをソートする例
テキストファイルをソートする例
漢字ソートマージ機能(基本方式)を使った例
● 漢字ソートマージ機能(国語辞典方式)を使った例
● Micro Focus COBOLファイルシステムのファイルをソートする例
● 出力ファイル切換え機能を使った例
例1
ソート処理の例
レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイル
bsortoutに出力します。キーフィールドは、レコードの先頭から10バイトのASCIIコードのフィール
ドを昇順に並べる指定です。
bsort –s -z100 -0.10asca -o bsortout bsortin
例2
マージ処理の例
レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、フ
ァイルbsortoutに出力します。ファイルbsortin1とbsortin2は、それぞれレコードの先頭から10バイ
トのASCIIコードのフィールドを昇順にソートしたファイルです。
bsort –m -z100 -0.10asca -o bsortout bsortin1 bsortin2
例3
コピー処理の例
レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードを、富士通COBOLの順編成ファ
イルbsortoutにコピーします。
bsort –c -z100 -Zf –Fcobseq,dos -o bsortout bsortin
例4
レコード選択機能を使った例
レコード長が100バイトのバイナリ固定長ファイルbsortin1と富士通COBOLの順編成ファイル
bsortin2のレコードをマージして、富士通COBOLの順編成ファイルbsortoutに出力します。入力ファ
イルは、20バイトめから4バイトの固定小数点2進数のフィールドが昇順にソートされているとします。
さらに、マージの際、30バイトめから4バイトの固定小数点2進数の値が30以上40未満のレコードだけ
を処理の対象とします。
bsort -m -z100 -Zf -19.4fbia –p29.4fbi.ge.d30,29.4fbi.lt.d40 –Fcobseq,dos,cobseq
-o bsortout bsortin1 bsortin2
例5
レコード再編成機能を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
付録A 使用例
力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール
ドを降順に並べる指定です。さらに、ソート処理と同時にレコードを再編成します。再編成は、レコ
ードの左端に入力レコードの10バイトめから20バイトを、その右に外部10進数の形式で10バイトのフ
ィールドを置き、その値に0を設定するという指定です。
ソート処理と再編成処理を同時に実行する場合のコマンドの指定では、キーフィールドは再編成後の
値を指定します。
bsort –s -z100 -0.20ascr –e9.20,d0.10zdl -o bsortout bsortin
例6
レコード集約機能を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール
ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、50
バイトめから8バイトの内部10進数のフィールドを加算してレコードを1つに集約します。
bsort –s -z100 -9.20ascr –g49.8pdl -o bsortout bsortin
例7
サプレス機能を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール
ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、任意
の1つのレコードを残して他を削除します。
bsort –su -z100 –9.20ascr –o bsortout bsortin
例8
先入力先出力(FIFO)機能を使った例
レコード長100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力
します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィールド
を降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、入力フ
ァイルに格納されていた順序で出力します。
bsort -sf -z100 –9.20ascr -o bsortout bsortin
例9
Btrieveファイルをソートする例
レコード長が100バイトのBtrieveファイルシステムの固定長ファイルbsortinのレコードをソートし
て、富士通COBOLの順編成(固定長)ファイルbsortoutに出力します。キーフィールドの指定は、レコ
ードの先頭から20バイトの文字のフィールドを昇順に並べる指定です。
bsort -s -z100 -Zf –0.20asca -Fcobseq,btrv -o bsortout bsortin
例10
テキストファイルをソートする例
最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイル
bsortoutに出力します。キーフィールドの指定は、レコード分離文字コロン( : )で区切られた第3
番めのフィールドの先頭から2バイト(浮動フィールド指定)のASCIIコードのフィールドを昇順に並
べる指定です。
bsort –s -z100 -2.2asca -Tflt -t: -o bsortout bsortin
例11
漢字ソートマージ機能(基本方式)を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトの漢字(シフトJISコード)
のフィールドを総画数順、音読み順の昇順に並べる指定です。
bsort -s -z100 –9.20sjiam -M stdSO -o bsortout bsortin
例12
漢字ソートマージ機能(国語辞典方式)を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトの漢字フィールドに対する
ふりがなフィールドが、レコードの50バイトめから10バイトにシフトJISコードで記述されており、
これを国語辞典の並びで昇順に並べる指定です。
248
A.2 bsortexコマンドの使用例
bsort -s -z100 -9.20sjiam -M dic49.10sji -o bsortout bsortin
例13
Micro Focus COBOLファイルシステムのファイルをソートする例
レコード長が100バイトのMicro Focus COBOLファイルシステムの索引ファイルbsortinのレコードを
ソートして、Micro Focus COBOLファイルシステムの順ファイルbsortoutに出力します。キーフィー
ルドの指定は、第1キーとしてレコードの先頭から10バイトのASCIIコードのフィールドを昇順、第2
キーとしてレコードの50バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。
bsort -s -z100 -Zf –0.10asca49.4asca -Fmfcseq,mfcidx -o bsortout bsortin
例14
出力ファイル切換え機能を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートしてファイルbsortout1に出
力します。ファイルbsortout1がファイルシステムの許容量を超えたときにファイルbsortout2に残り
のレコードを出力します。キーフィールドの指定は、レコードの先頭から10バイトのASCIIコードの
フィールドを昇順に並べる指定です。
bsort -s –z100 -0.10asca -o bsortout1 -o bsortout2 bsortin
A.2 bsortexコマンドの使用例
代表的な機能を使ったbsortexコマンドの使用例を説明します。
● ソート処理の例
● マージ処理の例
●
●
●
●
●
●
コピー処理の例
レコード選択機能を使った例
レコード再編成機能を使った例
レコード集約機能を使った例
サプレス機能を使った例
先入力先出力(FIFO)機能を使った例
●
●
●
●
●
●
Btrieveファイルをソートする例
テキストファイルをソートする例
漢字ソートマージ機能(基本方式)を使った例
漢字ソートマージ機能(国語辞典方式)を使った例
Micro Focus COBOLファイルシステムのファイルをソートする例
ファイルの分割出力機能を使った例
● 条件別ファイル出力機能を使った例(その1)
● 条件別ファイル出力機能を使った例(その2)
例1
ソート処理の例
レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイル
bsortoutに出力します。キーフィールドは、レコードの先頭から10バイトのASCIIコードのフィール
ドを昇順に並べる指定です。
bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout
例2
マージ処理の例
レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、フ
ァイルbsortoutに出力します。ファイルbsortin1とbsortin2は、それぞれレコードの先頭から10バイ
トのASCIIコードのフィールドを昇順にソートしたファイルです。
bsortex -merge key=0.10asca -input reclen=100 file=bsortin1,bsortin2 -output
file=bsortout
例3
コピー処理の例
レコード長が100バイトのシステム標準のファイルbsortinのレコードを、富士通COBOLの順編成ファ
249
付録A 使用例
イルbsortoutにコピーします。
bsortex -copy -record recform=fix -input reclen=100 file=bsortin filesys=dos
–output file=bsortout filesys=cobseq
例4
レコード選択機能を使った例
レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、富
士通COBOLの順編成ファイルbsortoutに出力します。入力ファイルは、20バイトめから4バイトの固定
小数点2進数のフィールドが昇順にソートされているとします。さらに、マージの際、30バイトめか
ら4バイトの固定小数点2進数の値が30以上40未満のレコードだけを処理の対象とします。
bsortex -merge key=19.4fbia -record recform=fix -input reclen=100 file=
bsortin1,bsortin2 include=29.4fbi.ge.d30.and.29.4fbi.lt.d40 -output file=bsortout
filesys=cobseq
例5
レコード再編成機能を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール
ドを降順に並べる指定です。さらに、ソート処理と同時にレコードを再編成します。再編成は、レコ
ードの左端に入力レコードの10バイトめから20バイトを、その右に外部10進数の形式で10バイトのフ
ィールドを置き、その値に0を設定します。
ソート処理と入力再編成処理を同時に実行する場合のコマンドの指定では、キーフィールドは入力再
編成後の値を指定します。
bsortex -sort key=0.20ascr -input reclen=100 file=bsortin reconst=9.20,d0.10zdl
-output file=bsortout
例6
レコード集約機能を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール
ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、集約
フィールドで指定した50バイトめから8バイトの内部10進数のフィールドを加算して、最初に入力し
たレコードに集約します。
bsortex -sort key=9.20ascr -input reclen=100 file=bsortin -summary field=49.8pdl
first -output file=bsortout
例7
サプレス機能を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール
ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、任意
の1つのレコードを残して他を削除します。
bsortex -sort key=9.20ascr -input reclen=100 file=bsortin -summary suppress –output
file=bsortout
例8
先入力先出力(FIFO)機能を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール
ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、入力
ファイルに格納されていた順序で出力します。
bsortex -sort key=9.20ascr -input reclen=100 file=bsortin -output file=bsortout
–option fifo
例9
Btrieveファイルをソートする例
レコード長が100バイトのBtrieveファイルシステムの固定長ファイルbsortinのレコードをソートし
て、富士通COBOLの順編成(固定長)ファイルbsortoutに出力します。キーフィールドの指定は、レコ
ードの先頭から10バイトの文字のフィールドを昇順に並べる指定です。
250
A.2 bsortexコマンドの使用例
bsortex -sort key=0.10asca -record recform=fix -input reclen=100 file=bsortin
filesys=btrv -output file=bsortout filesys=cobseq
例10
テキストファイルをソートする例
最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイル
bsortoutに出力します。キーフィールドの指定は、レコード分離文字コロン( : )で区切られた第2
番めのフィールドの先頭から2バイトのASCIIコードのフィールドを昇順に並べる指定です。
bsortex -sort key=1.2asca -record recform=txtflt fldsep=: -input reclen=100
file=bsortin -output file=bsortout
例11
漢字ソートマージ機能(基本方式)を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトの漢字(シフトJISコード)
フィールドを総画数順、音読み順の昇順に並べる指定です。
bsortex -sort key=9.20sjiam jef=stdSO -input reclen=100 file=bsortin -output
file=bsortout
例12
漢字ソートマージ機能(国語辞典方式)を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出
力します。キーフィールドの指定は、レコードの10バイトめから20バイトの漢字フィールドに対する
ふりがなフィールドが、レコードの50バイトめから10バイトにシフトJISコードで記述されており、
これを国語辞典の並びで昇順に並べる指定です。
bsortex -sort key=9.20sjiam jef=dic49.10asc -input reclen=100 file=bsortin -output
file=bsortout
例13
Micro Focus COBOLファイルシステムのファイルをソートする例
レコード長が100バイトのMicro Focus COBOLファイルシステムの索引ファイルbsortinのレコードを
ソートして、Micro Focus COBOLファイルシステムの順ファイルbsortoutに出力します。キーフィー
ルドの指定は、第1キーとしてレコードの先頭から10バイトのASCIIコードのフィールドを昇順、第2
キーとしてレコードの50バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。
bsortex -sort key=0.10asca,49.4asca -record recform=fix -input reclen=100
file=bsortin filesys= mfcidx -output file=bsortout filesys= mfcseq
例14
ファイルの分割出力機能を使った例
レコード長が100バイトのファイルbsortinのレコードをソートして、ファイルbsortout1とbsortout2
に出力します。出力の際、ファイルサイズの上限を1GBにします。キーフィールドの指定は、レコー
ドの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。
bsortex
-sort
key=0.10asca
-input
reclen=100
file=bsortin
-output
file=bsortout1,bsortout2 maxfilesize=1G
例15
条件別ファイル出力機能を使った例(その1)
レコード長が100バイトのファイルbsortinのレコードをソートして、ファイルbsortout1とbsortout2
に出力します。出力の際、50バイトめから4バイトの内部10進数のフィールドが100以上のレコードを
bsortout1に出力し、80バイトめから8バイトの外部10進数のフィールドが50未満のレコードを
bsortout2に出力します。キーフィールドの指定は、レコードの先頭から10バイトのASCIIコードのフ
ィールドを昇順に並べる指定です。
bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1
include=49.4pdl.ge.d100 -output file=bsortout2 include=79.8zdl.lt.d50
例16
条件別ファイル出力機能を使った例(その2)
レコード長が100バイトのファイルbsortinのレコードをソートして、ファイルbsortout1、bsortout2
およびbsortout3に出力します。出力の際、50バイトめから4バイトの内部10進数のフィールドが100
251
付録A 使用例
以上のレコードをbsortout1に出力し、bsortout1に出力されなかったレコードの内80バイトめから8
バイトの外部10進数のフィールドが50未満のレコードをbsortout2 に出力し、bsortout1にも
bsortout2にも出力されなかったレコードをbsortout3に出力します。キーフィールドの指定は、レコ
ードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。
bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1
case=49.4pdl.ge.d100
-output
file=bsortout2
case=79.8zdl.lt.d50
-output
file=bsortout3 case=other
A.3 PowerSORT OCXの使用例
Visual Basicを使用したPowerSORT OCXの使用例を説明します。
A.3.1 ソート処理(バイナリファイル)の例
次のプログラムは、既に存在するレコード長100バイトのバイナリファイル”c:\sortin"を、レコー
ドの先頭から10バイトの外部10進数をキーフィールドとして昇順に並べ、その結果をバイナリファイ
ル"c:\sortout"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'ソート処理を指定します。
PowerSORT1.DisposalNumber = 0
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\sortin"
'入力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.InputFileType = 1
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\sortout"
'出力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.OutputFileType = 1
'キーフィールドとしてレコードの先頭から10バイトの外部10進数を昇順で
'並べるように指定します。
PowerSORT1.KeyCmdStr = "0.10zdla"
'レコード長は100バイトです。
PowerSORT1.MaxRecordLength = 100
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.2 ソート処理(テキストファイル)の例
次のプログラムは、既に存在する最大レコード長120バイトのテキストファイル"c:\sortin.txt"を、
レコードの20バイトめから10バイトのASCIIコードをキーフィールドとして昇順に並べ、その結果を
252
A.3 PowerSORT OCXの使用例
テキストファイル"c:\sortout.txt"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'ソート処理を指定します。
PowerSORT1.DisposalNumber = 0
'フィールドはカラム位置で指定します。
PowerSORT1.FieldDefinition = 1
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\sortin.txt"
'入力ファイル種別にテキストを指定します。
PowerSORT1.InputFileType = 0
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\sortout.txt
'出力ファイル種別にテキストを指定します。
PowerSORT1.OutputFileType = 0
'キーフィールドとしてレコードの20バイトめから10バイトのASCIIコードを
' 昇順で並べるように指定します。
PowerSORT1.KeyCmdStr = "19.10asca"
'最大レコード長は120バイトです。
PowerSORT1.MaxRecordLength = 120
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.3 マージ処理(バイナリファイル)の例
次のプログラムは、既にレコードの先頭から10バイトの外部10進数をキーフィールドとして昇順に並
べられているレコード長100バイトのバイナリファイル"c:\mergein1"と"c:\mergein2"をマージし、
その結果をバイナリファイル"c:\mergeout"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'マージ処理を指定します。
PowerSORT1.DisposalNumber = 1
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\mergein1 c:\mergein2"
'入力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.InputFileType = 1
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\mergeout"
'出力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.OutputFileType = 1
253
付録A 使用例
'既にキーフィールドとしてレコードの先頭から10バイトの外部10進数が
'昇順で並べられています。
PowerSORT1.KeyCmdStr = "0.10zdla"
'レコード長は100バイトです。
PowerSORT1.MaxRecordLength = 100
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.4 マージ処理(テキストファイル)の例
次のプログラムは、既にレコードの20バイトめから10バイトのASCIIコードをキーフィールドとして
昇順に並べられている最大レコード長120バイトのテキストファイル"c:\mergein1.txt"と
"c:\mergein2.txt"をマージし、その結果をテキストファイル"c:\mergeout.txt"に出力するコードの
記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'マージ処理を指定します。
PowerSORT1.DisposalNumber = 1
'フィールドはカラム位置で指定します。
PowerSORT1.FieldDefinition = 1
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\mergein1.txt c:\mergein2.txt"
'入力ファイル種別にテキストを指定します。
PowerSORT1.InputFileType = 0
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\mergeout.txt"
'出力ファイル種別にテキストを指定します。
PowerSORT1.OutputFileType = 0
'既にキーフィールドとしてレコードの20バイトめから10バイトの
'ASCIIコードが昇順で並べられています。
PowerSORT1.KeyCmdStr = "19.10asca"
'最大レコード長は120バイトです。
PowerSORT1.MaxRecordLength = 120
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
254
A.3 PowerSORT OCXの使用例
A.3.5 コピー処理(バイナリファイル)の例
次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\copyin"を、バイナリ
ファイル"c:\copyout"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'コピー処理を指定します。
PowerSORT1.DisposalNumber = 2
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\copyin"
'入力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.InputFileType = 1
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\copyout"
'出力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.OutputFileType = 1
'レコード長は100バイトです。
PowerSORT1.MaxRecordLength = 100
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.6 コピー処理(テキストファイル)の例
次のプログラムは、既に存在する最大レコード長120バイトのテキストファイル"c:\copyin.txt"を、
テキストファイル"c:\copyout.txt"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'コピー処理を指定します。
PowerSORT1.DisposalNumber = 2
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\copyin.txt"
'入力ファイル種別にテキストを指定します。
PowerSORT1.InputFileType = 0
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\copyout.txt"
'出力ファイル種別にテキストを指定します。
PowerSORT1.OutputFileType = 0
'最大レコード長は120バイトです。
PowerSORT1.MaxRecordLength = 120
'PowerSORTのDLLを呼出し実行します。
255
付録A 使用例
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.7 レコード選択機能を使った例
次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\sortin"を、10バイト
めから4バイトの方が30バイトめから4バイトより大きいレコードの場合のみを選択し、バイナリファ
イル"c:\sortout"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'ソート処理を指定します。
PowerSORT1.DisposalNumber = 0
'選択フィールドとしてレコードの10バイトめから4バイトの方が30バイトめから
'4バイトより大きいレコードが選択されるように指定します。
PowerSORT1.SelCmdStr = "9.4asc.gt.29.4asc"
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\sortin"
'入力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.InputFileType = 1
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\sortout"
'出力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.OutputFileType = 1
'レコード長は100バイトです。
PowerSORT1.MaxRecordLength = 100
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.8 レコード再編成機能を使った例
次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\sortin"を、レコード
の20バイトめから10バイト、30バイトから10バイト、先頭から10バイト、40バイトから10バイトの順
に再編成し、バイナリファイル"c:\sortout"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
256
A.3 PowerSORT OCXの使用例
PowerSORT1.DispMessage = False
'ソート処理を指定します。
PowerSORT1.DisposalNumber = 0
'再編成フィールドとしてレコードの20バイトめから10バイト、30バイトめから
'10バイト、先頭から10バイト、40バイトめから10バイトの順に再編成するよう
'に指定します。
PowerSORT1.RconCmdStr = "19.10 29.10 0.10 39.10"
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\sortin"
'入力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.InputFileType = 1
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\sortout"
'出力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.OutputFileType = 1
'レコード長は100バイトです。
PowerSORT1.MaxRecordLength = 100
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.9 レコード集約機能を使った例
次のプログラムは、既に存在するレコード長15バイトのテキストファイル"c:\sortin.txt"を、レコ
ードの9バイトめから4バイトをキーフィールドとしてASCIIコードの昇順に並べます。同値のキーフ
ィールドを持つレコードが複数存在した場合、4バイトめから4バイトのASCIIコードを集約し、その
結果をテキストファイル"c:\sortout.txt"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'ソート処理を指定します。
PowerSORT1.DisposalNumber = 0
'フィールドはカラム位置で指定します。
PowerSORT1.FieldDefinition = 1
'キーフィールドとしてレコードの9バイトめから4バイトのASCIIコードを
'昇順で並べるように指定します。
PowerSORT1.KeyCmdStr = "8.4asca"
'集約フィールドとしてレコードの4バイトめから4バイトのASCIIコードを集約
'するように指定します。
PowerSORT1.SumCmdStr = "3.4asc"
'指定したキーフィールドが同じ内容だった場合、レコード集約機能を用いて、
'集約フィールドを加算します。
PowerSORT1.HandlingSameKey = 3
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\sortin.txt"
'入力ファイル種別にテキストを指定します。
PowerSORT1.InputFileType = 0
257
付録A 使用例
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\sortout.txt"
'出力ファイル種別にテキストを指定します。
PowerSORT1.OutputFileType = 0
'最大レコード長は15バイトです。
PowerSORT1.MaxRecordLength = 15
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.10 レコード選択機能、レコード再編成機能、レコード集約機能を組み合わ
せた例
次のプログラムは、既に存在する最大レコード長15バイトのテキストファイル"c:\sortin.txt"を、
レコード選択、レコード再編成、レコード集約の中から1つを選んで実行し、テキストファイル
"c:\sortout.txt"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'ソート処理を指定します。
PowerSORT1.DisposalNumber = 0
'フィールドはカラム位置で指定します。
PowerSORT1.FieldDefinition = 1
'レコード選択をチェックした場合。
If Option1.Value = True Then
'選択フィールドとしてレコードの先頭から3バイトが文字列'DDD'以外の
'レコードを選択するように指定します。
PowerSORT1.SelCmdStr = "0.3asc.ne.'DDD'"
End If
'レコード再編成をチェックした場合。
If Option2.Value = True Then
'再編成フィールドとしてレコードの9バイトめから4バイト、3バイトめから
'5バイト、先頭から3バイトの順に再編成します。
PowerSORT1.RconCmdStr = "8.4 2.5 0.3"
End If
'レコード集約をチェックした場合。
If Option3.Value = True Then
'キーフィールドとしてレコードの9バイトめから4バイトを指定します。
PowerSORT1.KeyCmdStr = "8.4asca"
'集約キーのフィールドとしてレコードの4バイトめから4バイトのASCII
'コードを集約するように指定します。
PowerSORT1.SumCmdStr = "3.4asc"
'指定したキーフィールドが同じ内容だった場合、レコード集約機能を用いて、
'集約フィールドを加算するように指定します。
PowerSORT1.HandlingSameKey = 3
258
A.3 PowerSORT OCXの使用例
End If
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\sortin.txt"
'入力ファイル種別にテキストを指定します。
PowerSORT1.InputFileType = 0
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\sortout.txt"
'出力ファイル種別にテキストを指定します。
PowerSORT1.OutputFileType = 0
'最大レコード長は15バイトです。
PowerSORT1.MaxRecordLength = 15
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.11 サプレス機能を使った例
次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\sortin"を、レコード
の20バイトめから4バイトの外部10進数をキーフィールドとして昇順に並べます。同値のキーフィー
ルドを持つレコードが複数あった場合、1つのレコードのみ残して他のレコードを削除し、その結果
をバイナリファイル"c:\sortout"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'ソート処理を指定します。
PowerSORT1.DisposalNumber = 0
'キーフィールドとしてレコードの20バイトめから4バイトの外部10進数を
'昇順で並べるように指定します。
PowerSORT1.KeyCmdStr = "19.4zdla"
'指定したキーフィールドが同じ内容だった場合、1つのレコードのみ残して
'他のレコードを削除するように指定します。
PowerSORT1.HandlingSameKey = 2
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\sortin"
'入力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.InputFileType = 1
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\sortout"
'出力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.OutputFileType = 1
'レコード長は100バイトです。
PowerSORT1.MaxRecordLength = 100
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
259
付録A 使用例
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.12 FIFO機能を使った例
次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\sortin"を、レコード
の20バイトめから4バイトの外部10進数をキーフィールドとして昇順に並べます。同値のキーフィー
ルドを持つレコードが複数あった場合、先に入力したレコードを先に出力し、その結果をバイナリフ
ァイル"c:\sortout"に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'ソート処理を指定します。
PowerSORT1.DisposalNumber = 0
'キーフィールドとしてレコードの20バイトめから4バイトの外部10進数を
'昇順で並べるように指定します。
PowerSORT1.KeyCmdStr = "19.4zdla"
'指定したキーフィールドが同じ内容だった場合、先に入力したレコードを
'先に出力するように指定します。
PowerSORT1.HandlingSameKey = 1
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\sortin"
'入力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.InputFileType = 1
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\sortout"
'出力ファイル種別にバイナリ固定長を指定します。
PowerSORT1.OutputFileType = 1
'レコード長は100バイトです。
PowerSORT1.MaxRecordLength = 100
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.3.13 富士通COBOL索引ファイルのソート例
次のプログラムは、既に存在する最大レコード長20バイトの富士通COBOL索引固定長ファイル
"c:\sortcob"を、レコードの5バイトめから3バイトのASCIIコードをキーフィールドとして昇順に並
べ、その結果を富士通COBOL索引ファイル"c:\sortout"に出力するコードの記述例です。
260
A.4 BSORT関数の使用例
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
PowerSORT1.DispMessage = False
'ソート処理を指定します。
PowerSORT1.DisposalNumber = 0
'入力ファイル名を指定します。
PowerSORT1.InputFiles = "c:\sortcob"
'入力ファイル種別に富士通COBOL索引固定長ファイルを指定します。
PowerSORT1.InputFileType = 4
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:\sortout"
'出力ファイル種別に富士通COBOL索引ファイルを指定します。
PowerSORT1.OutputFileType = 3
'キーフィールドとしてレコードの5バイトめから3バイトのASCIIコードを
'昇順で並べるように指定します。
PowerSORT1.KeyCmdStr = "4.3asca"
'富士通COBOL索引ファイルの主キーとしてレコードの5バイトめから3バイトを
'指定します。
PowerSORT1.FjcobPrimeKey = "D(4,3)"
'レコード長は20バイトです。
PowerSORT1.MaxRecordLength = 20
'PowerSORTのDLLを呼出し実行します。
PowerSORT1.Action
'エラー検出時の処理。
If PowerSORT1.ErrorCode <> 0 Then
Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" &
PowerSORT1.ErrorDetail
Exit Sub
End If
End Sub
A.4 BSORT関数の使用例
BSORT関数の使用例を説明します。
この例では、テキストファイルからレコードを入力し、ソート結果を出力ファイルに出力します。C
言語のライブラリ関数、システムコールに対するエラー判定は行っていないため、このような関数で
エラーが発生した場合、本プログラムの動作は保証されません。
なお、この使用例は、製品のインストールフォルダのSamples\c\sample7.cとして添付されています。
/* ヘッダファイルの宣言
#include "sample.h"
#include "bsrt.h"
#include <memory.h>
#include <malloc.h>
#include <stdlib.h>
*/
/*
共通定義ファイルの宣言
*/
/* DLLの呼び出しに使用する構造体変数の宣言 */
BSRTFUNC
func;
/* 関数アドレス格納領域の宣言
BSRTPRIM
prim;
/* 主要情報テーブル領域の宣言
BSRTREC
rec;
/* レコード情報領域の宣言 */
*/
*/
261
付録A 使用例
BSRTFILE
BSPTR_BSRTKEY
BSRTOPT
file;
key;
opt;
int sample()
{
int
rcd;
HGLOBAL hHdlFile;
HGLOBAL hHdlKey;
char
szStr[80];
/*
/*
/*
/*
/*
/*
/*
/*
ファイル情報領域の宣言 */
キー情報領域の宣言 */
オプション情報領域の宣言 */
関数復帰値 */
入力ファイルテーブル領域ハンドル
キーテーブル領域ハンドル */
エラー詳細コード表示用領域 */
bsrtopen関数の引数情報設定・・・(1)
*/
/* BSRTPRIMの設定処理
・・・(2)
memset(&prim, 0x00, sizeof(BSRTPRIM));
prim.function
= BS_SORT;
prim.optionfunc = 0;
prim.msglevel
= BSMSG_LEVEL0;
prim.cdmode
= BSZD_AU;
prim.chklevel
= BSCHK_LEVEL0;
prim.rec_len
= 15;
prim.fieldmode = BS_FLTFLD;
*/
*/
BSRTPRIM(prim)領域の初期化 */
ソート機能 */
レコード処理指定なし */
処理情報を出力しない */
入力データのコード系はASCII */
BSORT関数のチェックをしない */
レコード長は15バイト */
浮動フィールド指定 */
/*
BSRTFILE(file)領域の初期化
/* BSRTFILEの設定処理 */
memset(&file, 0x00, sizeof(BSRTFILE));
/*
/*
/*
/*
/*
/*
/*
/*
*/
/* 入力ファイルテーブル領域の確保・・・(3) */
hHdlFile = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, BS_FILESIZE(1));
file.inpfile_tbl = (BSPTR_BSFILE)GlobalLock((HGLOBAL)hHdlFile);
file.inpfile_tbl->entry_no = 1;
/* 入力ファイル数は1個 */
file.inpfile_tbl->file_addr[0] = (BSPTR_UCHAR)"sortin.txt";
/* ファイル名はsortin.txt */
/* 出力ファイル名の指定(ファイル名をポイントするアドレスを指定) */
file.outfile_addr = (BSPTR_UCHAR)"sortout.txt";
/* ファイル名はsortout.txt
*/
/* キーテーブル領域の確保・・・(4) */
hHdlKey = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, BS_KEYTABSIZE(1));
key = (BSPTR_BSRTKEY)GlobalLock((HGLOBAL)hHdlKey);
/* キーテーブル領域の確保 */
memset(key, 0x00, BS_KEYTABSIZE(1));
/* BSRTKEY(key)領域の初期化 */
262
/* BSRTKEYの設定処理 */
key->entry_no
key->key_entry[0].key_position
key->key_entry[0].key_length
key->key_entry[0].key_type
key->key_entry[0].key_order
=
=
=
=
=
/*
*/
BSRTRECの設定処理(初期化)
1;
0;
4;
BSKEY_ASC;
BS_ASCND;
/*
/*
/*
/*
/*
キーの個数は1個 */
比較位置は第1フィールド */
キー長は4バイト */
データ形式はASCII文字 */
昇順に並べる */
A.4 BSORT関数の使用例
memset(&rec, 0x00, sizeof(BSRTREC));
/*
BSRTREC(rec)領域の初期化
/* BSRTOPTの設定処理(初期化) */
memset(&opt, 0x00, sizeof(BSRTOPT));
/*
BSRTOPTの設定処理(初期化)
*/
*/
/* bsrtopen関数の発行・・・(5) */
rcd = bsrtopen(BSRTVL, &func, &prim, &rec, key, &file, &opt);
/* bsrtopen関数の復帰値・・・(6) */
if(rcd != 0)
/* エラーの表示例 */
{
wsprintf((LPSTR)szStr, "bsrtopen関数で詳細コード %d のエラーが発生しました.",
rec.errdetail);
MessageBox(NULL,
szStr,
"PowerSORT 関数呼び出しサンプル",
MB_OK | MB_ICONSTOP);
}
if(rcd == -1)
/* bsrtopen関数実行環境構築後にエラー発生 */
{
bsrtclse(BSRTVL, &func, &prim, &rec);
GlobalUnlock((HGLOBAL)hHdlKey);
GlobalFree((HGLOBAL)hHdlKey);
GlobalUnlock((HGLOBAL)hHdlFile);
GlobalFree((HGLOBAL)hHdlFile);
return -1;
}
else if(rcd == -2)
/* bsrtopen関数実行環境構築前にエラー発生 */
{
GlobalUnlock((HGLOBAL)hHdlKey);
GlobalFree((HGLOBAL)hHdlKey);
GlobalUnlock((HGLOBAL)hHdlFile);
GlobalFree((HGLOBAL)hHdlFile);
return -1;
}
/* bsrtclse関数の発行 */
rcd = bsrtclse(BSRTVL, &func, &prim, &rec);
/* bsrtclse関数の復帰値・・・(7) */
if(rcd == -1 )
/* bsrtclse関数でエラー発生
{
GlobalUnlock((HGLOBAL)hHdlKey);
GlobalFree((HGLOBAL)hHdlKey);
GlobalUnlock((HGLOBAL)hHdlFile);
GlobalFree((HGLOBAL)hHdlFile);
return -2;
}
GlobalUnlock((HGLOBAL)hHdlKey);
GlobalFree((HGLOBAL)hHdlKey);
*/
263
付録A 使用例
GlobalUnlock((HGLOBAL)hHdlFile);
GlobalFree((HGLOBAL)hHdlFile);
return 0;
/*
}
正常終了
*/
上記使用例の括弧付き数字は、以下の数字と対応しています。
1. 使用例で設定する情報は以下に示すものです。なお、これらの領域は必ず初期化してから
使用してください。
― BSRTPRIM:主要情報
― BSRTFILE:ファイル情報
― BSRTOPT:オプション情報(初期化のみ)
― BSRTKEY:キー情報
― BSRTREC:レコード情報(初期化のみ)
― BSRTFUNC:その他(初期化のみ)
2. テキストファイル処理時の注意を示します。
― レコード長(prim.rec_len)には、最大レコード長を指定します。
テキストファイルの場合の最大レコード長とは、改行コードを含んだ最大行長のこ
とをいいます。
― フィールドの指定(prim.fieldmode)を必ず指定します。
― prim.fieldmodeにBS_FLTFLD(浮動フィールド指定)を指定している場合、浮動フィ
ールド指定だけに有効なフィールド分離文字(prim.fldchar_addr)が指定可能にな
ります。フィールド分離文字の指定を省略すると、空白とタブがフィールド分離文
字となります。
3. ファイル数が1つなので、BS_FILESIZEマクロのパラメタ値は1です。
複数個指定する場合はその数を指定します。PowerSORTでは、複数の入力ファイルと1つの
出力ファイルを指定できます。
4. キーフィールドの数が1つなので、BS_KEYTABSIZEマクロのパラメタ値は1です。
複数個指定する場合はその数を指定します。
5. 本使用例の処理では、入出力ファイルを指定しているため、レコードの入出力処理は
PowerSORTが行います。したがって、ユーザアプリケーションは、bsrtopen関数とbsrtclse
関数だけを発行します。
6. bsrtopen関数の復帰値には、0、-1および-2があります。
それぞれの値の意味は以下のとおりです。
― 0 : bsrtopen関数は正常終了(bsrtclse関数を発行する必要があります)。
― -1 : bsrtopen関数で実行環境構築後にエラー発生(bsrtclse関数を発行する必要
があります)。
― -2 : bsrtopen関数で実行環境構築前にエラー発生(bsrtclse関数を発行する必要
はありません)。
7. bsrtclse関数の復帰値には、0、1および-1があります。
それぞれの値の意味は以下のとおりです。
― 0 : bsrtclse関数は正常終了。
― 1 : bsrtclse関数は正常に中断処理を終了。
― -1 : bsrtclse関数で異常終了。
264
付録B 留意事項
B.1 メモリ不足への対処方法
PowerSORT実行中にメモリ不足が発生した場合、以下のように対処してください。
● bsortコマンドのメモリサイズオプション(-y)、bsortexコマンドの実行環境オプション
(-option)のmemsizeオペランドまたは環境変数BSORT_MEMSIZEを指定している場合は、
PowerSORTが使用するメモリサイズの指定を省略します。メモリサイズの指定を省略する
ことにより、PowerSORTが動作条件に応じたメモリサイズを自動設定します。
● bsortコマンドのメモリサイズオプション(-y)、bsortexコマンドの実行環境オプション
(-option)のmemsizeオペランドまたは環境変数BSORT_MEMSIZEを指定している場合、メモ
リサイズの指定を増加することも有効です。メモリサイズの上限値は2097151キロバイト
(2ギガバイト)です。ただし、使用可能な物理メモリ量を超えないように指定します。
B.2 一時ファイルのフォルダ指定方法
環境変数BSORT_TMPDIRまたはbsortexコマンドにおける-optionオプションのtmpdirオペランドによ
って一時ファイルを作成するフォルダを指定する場合は、以下の点に注意してください。
● 存在するドライブおよびフォルダ、使用可能なドライブおよびフォルダを指定してくださ
い。
● 一時フォルダ名の指定は、最後に円記号( \ )を付けて指定してください。円記号( \ )
を付けないと誤動作の原因となります。
● フォルダを複数指定する場合は、空白を入れずにセミコロン( ; )で区切って指定してく
ださい。
[正しい例]C:\;D:\
[誤った例] C:\ ; D:\
● 充分な空きスペースがあるフォルダを指定してください。
B.3 レコード集約機能使用時の留意事項
レコード集約機能を使用する場合は、以下の点に注意してください。
● 集約フィールドは、レコード内に完全に含まれている必要があります。
● 集約フィールドは、キーフィールドまたは他の集約フィールドと重ならないように指定し
ます。
● 集約フィールドの加算処理中にオーバフローが生じた場合の動作は、環境変数
BSORT_SUMOVERCONTの指定によります。
● 小数点を含む数字を集約することはできません。
付録B 留意事項
B.4 フィールド位置の指定方法
PowerSORTは以下に示す順番で各機能を処理します。
1.
2.
3.
4.
5.
6.
7.
8.
データ入力処理
入力レコード選択処理
入力レコード再編成処理
ソート処理、マージ処理およびコピー処理
レコード集約処理
出力レコード選択処理
出力レコード再編成処理
データ出力処理
したがって、入力レコード再編成処理によりフィールドの位置が変わると、以降に指定するフィール
ドの位置は、入力ファイルのレコード内のフィールドの位置とは異なったものになります。
フィールドの位置は、以下の規則にしたがって指定してください。
入力選択フィールド
常に入力レコードをもとにフィールドを指定します。
入力再編成フィールド
常に入力レコードをもとにフィールドを指定します。
キーフィールド
通常は入力レコードをもとに指定しますが、入力レコード再編成機能を使用する場合は、再編成後の
レコードをもとにフィールドを指定します。
集約フィールド
通常は入力レコードをもとに指定しますが、入力レコード再編成機能を使用する場合は、再編成後の
レコードをもとにフィールドを指定します。
出力選択フィールド
通常は入力レコードをもとに指定しますが、入力レコード再編成機能を使用する場合は、再編成後の
レコードをもとにフィールドを指定します。
出力再編成フィールド
通常は入力レコードをもとに指定しますが、入力レコード再編成機能を使用する場合は、再編成後の
レコードをもとにフィールドを指定します。
266
B.5 文字/数字混在のデータの並びに関する留意事項
B.5 文字/数字混在のデータの並びに関する留意事項
文字/数字混在データをNオプションを使って並べ換える場合、数字部分の並びは値の大小だけを比較
しています。したがって、以下のようなデータでは、出力される順序が特定できません。
キーフィールドの指定例1
0.9ascaN
入力データ
出力結果のケース1
出力結果のケース2
data001
data001
data00001
data2
data00001
data1
data1
data1
data001
data00001
data2
data2
数字部の“1”、
“001”および“00001”は、値としてはどれも1であるため、data1、data001、data00001
は同じキー値であると判断します。先入力先出力(FIFO)機能オプション(fifo(-option)または-f)を
指定している場合は入力順を保って出力されますが、先入力先出力(FIFO)機能オプション
(fifo(-option)または-f)の指定がない場合は上記の例のように出力順は不定になります。
数字部分の桁数も考慮して並べ換えたい場合は、以下のように指定します。
キーフィールドの指定例2
0.9ascaN0.9ascr
出力結果
入力データ
data001
data1
data2
data001
data1
data00001
data00001
data2
● 第1キー(0.9ascaN)の比較でdata001/data1/data00001とdata2の順序が決まります。第1
キーの比較で大小関係が確定したdata2については、以降の第2キーでの比較は行いません。
● 次にdata001/data1/data00001はキーの値が等しいので、第2キー(0.9ascr)で比較します。
● 第2キーは文字列として比較して大きい順に並べます。この例では、dataの次の文字で最
初の大小関係が決まります。したがってdata1がdata001/data00001よりも大きい値となり、
最初に出力されます。同様にdata001とdata00001ではdata001の1の部分がdata00001では0
なので、data001が大きい値と判断され、2番目に出力されます。残ったdata00001と既に
順序が決定したdata2が順に出力され、上記の出力結果が得られます。
B.6 ファイル種別に関する留意事項
ファイル種別について、以下の点にご注意ください。
● 実際のファイル種別と異なるファイル種別を指定すると誤動作の原因となります。
● 入力ファイルと出力ファイルでファイル種別が異なる場合も、レコード形式は入力ファイ
ルと出力ファイルで同じレコード形式になります。
● 入力ファイルがテキストファイルの場合、入力ファイル中にEOF(End Of File)のコードが
含まれると、そのEOFコード以降のデータは処理対象となりません。なお、bsortexコマン
ドでは、EOF以降のデータを処理対象とすることが可能です。詳細は、入力ファイル情報
オプション(-input)のeofオペランドを参照してください。
267
付録B 留意事項
● 入力ファイルがテキストファイルの場合、入力ファイル中にEOFコードが存在した場合は、
出力ファイルの終わりにEOFコードが付加されます。なお、bsortexコマンドでは、出力フ
ァイルの終わりのEOFコードを削除することが可能です。詳細は、出力ファイル情報オプ
ション(-output)のremoveeofオペランドを参照してください。
● 入力ファイルがテキストファイルの場合、入力ファイル中にEOFコードが存在しない場合
は、出力ファイルの終わりにもEOFコードは付加されません。
● 入力ファイルがテキストファイルの場合、EOFコードが存在する入力ファイルが複数ある
場合でも、出力ファイル1つに対して付加されるEOFコードは1つです。
● 出力ファイルがBtrieveファイルの場合、既存のファイルに上書きすることはできません。
新規のファイル名を指定してください。
B.7 富士通COBOLファイルシステムの行順ファイルに関する
留意事項
富士通COBOLファイルシステムの行順ファイルは、PowerSORTではテキストファイルとして処理するこ
とができます。富士通COBOLファイルシステムの行順ファイルを処理する場合は、以下のように指定
してください。ただし、富士通COBOLファイルシステムがオープン処理で行っているファイルの共用・
排他などの制御は行われませんので、ファイルの指定には注意してください。
● ファイルシステムの指定は「システムの標準ファイルシステム」とします。
指定方法については以下を参照してください。
― bsortコマンドの場合: 入出力ファイルシステムオプション(-F)
― bsortexコマンドの場合: 入力ファイル情報オプション(-input)のfilesysオペラ
ンドおよび出力ファイル情報オプション(-output)のfilesysオペランド
― BSORT関数の場合: BSRTFILE構造体のinpfsys_tblおよびoutfsys
― PowerSORT OCXの場合: InputFileTypeプロパティおよびOutputFileTypeプロパテ
ィ
● 入力ファイル種別の指定は「テキストファイル固定フィールド指定」とします。
指定方法については以下を参照してください。
― bsortコマンドの場合: テキストファイルオプション(-T)
― bsortexコマンドの場合: 入力レコード情報オプション(-record)のrecformオペラ
ンド
― BSORT関数の場合: BSRTPRIM構造体のfieldmode
― PowerSORT OCXの場合: FieldDefinitionプロパティ
268
B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関係
B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関
係
PowerSORTで扱うデータ形式とVisual Basicで扱うデータ型の対応を以下に示します。
データ型
データ
形式
1996
意味
String
asc
Byte
asc
Integer
fbl
CC07
34F8
整数型
Long
fbl
CC070000
34F8FFFF
長整数型
Single
ifl
0080F944
0080F9C4
単精度浮動小数点数型
Double
ifl
0000000000309F40
0000000000309FC0
倍精度浮動小数点数型
Currency
-
C090300100000000
406FCFFFFFFFFFFF
通貨型
Date
-
0000000000309F40
00000000000309FC0
日付型
Boolean
-
-
-
ブール型
Variant
-
-
-
バリアント型
データ型
3139393620
-1996
2D31393936
文字列型
-
バイト型
-
バイト数
値の範囲
String
文字あたり2バイト、または
半角1文字あたり1バイト
0 ~ 約65,500バイト
Byte
1バイト
0 ~ 255
Integer
2バイト
-32,768 ~ 32,767
Long
4バイト
-2,147,483,648 ~ 2,147,483,647
Single
4バイト
-3.402823E38 ~ -1.401298E-45 (負の値)
Double
8バイト
1.401298E-45 ~ 3.402823E38 (正の値)
-1.79769313486231E308
-4.94065645841247E-324 (負の値)
~
4.94065645841247E-324
1.79769313486231E308 (正の値)
~
~
Currency
8バイト
-922,337,203,685,477.5808
922,337,203,685,477.5807
Date
8バイト
西暦100年1月1日 ~ 西暦9999年12月31日
Boolean
2バイト
True または False
Variant
16バイト、文字列の場合は1
文字あたり1バイト
データ型:Visual Basic
データ形式:PowerSORT
―――――
B.9 PowerSORT VBXからの移行方法
PowerSORT OCXのプロパティは、PowerSORTカスタムコントロール(以降、PowerSORT VBX)のプロパテ
ィといくつかの違いがあります。以下に変更点と対応について説明します。
● PowerSORT OCXで削除されたプロパティの一覧
― CompareAsNumberプロパティ(CollationOrderプロパティで指定)
― ContainWideCharプロパティ(CollationOrderプロパティで指定)
― Actionプロパティ(Actionメソッドで指定)
269
付録B 留意事項
● 追加されたプロパティの一覧
― CollationOrderプロパティ
― DisposalNumberプロパティ
● 追加されたメソッドの一覧
― Actionメソッド
● 値の指定方法が変更されたプロパティの一覧
― FieldDefinitionプロパティ
― UsableMemorySizeプロパティ
追加されたプロパティについて
● PowerSORT VBXではCompareAsNumberプロパティとContainWideCharプロパティは別々に指
定するものでしたが、実際は、同時に有効にできないため、CollationOrderプロパティに
まとめました。CollationOrderプロパティと各値の指定については、CollationOrderプロ
パティの説明を参照してください。
● PowerSORT VBXでは、Actionプロパティによって、PowerSORTの主機能であるソート、マー
ジおよびコピー処理を指定すると同時にPowerSORTを起動していましたが、PowerSORT OCX
では、処理の指定にDisposalNumberプロパティ、PowerSORTの起動にActionメソッドを使
用します。
値の指定方法が変更になったプロパティについて
● FieldDefinitionプロパティは、PowerSORT VBXではBOOL型でしたが、PowerSORT OCXでは
short型に変更されています。値の指定方法については、FieldDefinitionプロパティの説
明を参照してください。
● UsableMemorySizeプロパティの単位は、PowerSORT VBXではバイト単位でしたが、キロバ
イト単位に変更しました。
その他のプロパティについて
その他のプロパティにも型の変更がありますが、PowerSORT VBXのプロパティ指定と同じように指定
することが可能です。
記述例
DisposalNumberプロパティ、Actionメソッドについて
PowerSORTの実行部分において、PowerSORT VBXでは以下のようにしてPowerSORTを実行しました。
PowerSORT VBXにおけるソート処理実行手順
object.Action = 0
PowerSORT OCXでは以下のようにDisposalNumberプロパティでどの処理を行うかを指定した後、
Actionメソッドを呼びます。
PowerSORT OCXにおけるソート処理実行手順
object.DisposalNumber = 0
object.Action
FieldDefinitionプロパティについて
PowerSORT VBXのFieldDefinitionプロパティは、設定値にFALSEまたはTRUEで指定しましたが、
PowerSORT OCXでは0または1を指定してください。
PowerSORT VBXにおける設定例
object.FieldDefinition = TRUE
270
B.9 PowerSORT VBXからの移行方法
PowerSORT OCXにおける設定例
object.FieldDefinition = 1
CollationOrderプロパティについて
CollationOrderプロパティでは、PowerSORT VBXのContainWideCharプロパティを有効にする場合には
1を設定します。また、PowerSORT VBXのCompareAsNumberプロパティを有効にする場合には2を設定し
ます。照合順序を指定しないときは0を設定します。その結果、PowerSORT VBXのContainWideCharプ
ロパティとCompareAsNumberプロパティは同時に指定できなくなりました。
PowerSORT VBXにおける設定例
object.ContainWideChar = TRUE
PowerSORT OCXにおける設定例
object.CollationOrder = 1
271
用語集
インコアソート
すべての入力レコードがメモリ内に入る場合の、一時ファイルを使用せずにメモリ内だけで行うソー
ト処理です。
漢字ソートマージ機能
漢字コードで表現された文字(日本語)を含むレコードを、文字の持つ属性に従って並べる機能です。
並べ方には、基本方式と国語辞典方式の2つの方式があります。
漢字フィールド
漢字ソートマージ機能で使用する、レコード内の漢字コードで表現されたフィールドです。
キーフィールド
レコードの大小関係を決めるために使用するレコード中のフィールドです。
フィールドの位置、長さ、データ形式と操作方法の情報からなっています。
基本方式
漢字ソートマージ機能で実現している並べ方の1つで、文字の属性に従って並べます。
属性には、総画数、部首、音読み、訓読みおよびコードが指定できます。
固定フィールド
バイト位置によって区分されるフィールドです。
フィールドの位置は全レコードで共通です。
国語辞典方式
漢字ソートマージ機能で実現している並べ方の1つで、国語辞典に採用されている読み(清音読み)を
基本とした並べ方です。
漢字コードで表現された文字に対応するふりがなのフィールドが必要となります。
コピー機能
入力ファイルを出力ファイルに複写する機能です。
入力ファイルを単純に連結する場合や、複写するレコードを選択する場合に利用できます。
再編成フィールド
レコード再編成機能で使用する入力レコード中のフィールドです。
再編成フィールドは、フィールドの位置と長さの情報からなっています。
先入力先出力(FIFO)機能
同値のキーフィールドを持つレコードが複数あるファイルまたはレコード群をソートする際、先に入
力したレコードを先に出力する機能です。
ソート機能と組み合わせて使います。
サプレス機能
同値のキーフィールドを持つレコードが複数あるファイルまたはレコード群をソートまたはマージ
する際、1つを残して他を削除する機能です。
ソートまたはマージ機能と組み合わせて使います。
用語集
自己規定値
レコード選択機能とレコード再編成機能で使用する10進数、16進数の定数または文字列定数です。
集約フィールド
レコード集約機能で使用する、数値を加算するためのフィールドです。
集約フィールドは、フィールドの位置、長さ、データ形式の情報からなっています。
処理定義ファイル
PowerSORT GUIのメニューやダイアログボックスで指定した内容を保存するファイルです。
処理定義ファイルを[ファイル]メニューの[実行]や[開く]コマンドで選択することにより、メニュー
の選択やダイアログボックスでの項目設定を繰り返すことなく、実行や再利用が簡単にできるように
なります。
ストリング
ソート済みのレコードの集まりです。
選択フィールド
レコード選択機能で使用する、処理の対象となるレコードを選択するためのフィールドです。
ソート機能
指定された1つ以上のキーフィールドにより昇順(0から9、AからZの順)、または降順(ZからA、9から0
の順)にレコードを並べ替える機能です。
通常、レコードをソートする場合、キーフィールドを指定します。
PowerSORTは、指定されたキーフィールドをもとにレコードの並べ替えを行います。
フィールド
PowerSORTを使用するためのフィールドの種類には、ソートおよびマージ機能で使用するキーフィー
ルドと、レコード選択機能で使用する選択フィールド、レコード再編成機能で使用する再編成フィー
ルドおよびレコード集約機能で使用する集約フィールドがあります。
フィールド分離文字
テキストファイル浮動フィールド指定のときにフィールドを区分する文字列です。
省略時の値として、空白またはタブをフィールド分離文字として扱います。この他に任意の文字列を
フィールド分離文字として指定することができます。ただし、レコード分離文字と同じ文字は指定で
きません。
浮動フィールド
フィールド分離文字によって区分されるフィールドです。
フィールドの位置を、フィールド分離文字によって区切られたフィールド番号によって指定します。
フィールド分離文字の位置によってフィールドの位置が決定されるため、レコードごとにフィールド
の位置(カラム位置)が異なります。
ふりがなフィールド
漢字ソートマージ機能の国語辞典方式で使用する、漢字フィールドに対応する読みが入っているフィ
ールドです。
ふりがなフィールドは、ひらがな文字およびカタカナ文字で表現します。
マージ機能
ソート済みの複数ファイルを1つのファイルに併合する(まとめる)機能です。
ソート処理と同じキーフィールドでの並びを保証します。
273
用語集
レコード選択機能
処理の対象となるレコードの選択方法を指定して、必要なレコードだけを選択する機能です。
ソート機能、マージ機能またはコピー機能と組み合わせて使います。レコード選択機能には、被比較
フィールドと比較フィールドを比較する方法、被比較フィールドと自己規定値を比較する方法があり
ます。PowerSORTは、指定された2つのフィールドを比較方法に従って比較し、レコードを選択します。
レコード再編成機能
フィールドの位置を変更したり、自己規定値をレコードに埋め込む機能です。
レコードを再編成する場合は、出力レコードの左端から順番に詰めるフィールドを指定します。入力
レコードのフィールドを詰める場合はその位置と長さを、自己規定値を詰める場合はその自己規定値
を指定します。
レコード集約機能
同値のキーフィールドを持つレコードが複数あるファイルまたはレコード群をソートまたはマージ
する際、集約フィールドの値を加算して1つのレコードにする機能です。
レコード分離文字
テキストファイルのときにレコードを区分する文字列です。
レコード分離文字は、CRLF(復帰改行)、CR(復帰)またはLF(改行)から選択できます。一般的な形式の
テキストファイルは、CRLF(復帰改行)でレコードが区分されています。
BOM
BOM(Byte Order Mark)は、Unicodeのエンディアンを指定するためにファイルの先頭に記入される特
定のコードです。
Big endian
何バイトかで整数を表す場合、上位の桁を前の方の番地に記憶する方法です。
bsrt.h
BSORT関数で使用する情報が設定されているヘッダファイルです。
本ヘッダファイルは、PowerSORTインストール時に作成されるINCLUDEフォルダ内にあります。
Little endian
何バイトかで整数を表す場合、下位の桁を前の方の番地に記憶する方法です。
Unicode
世界中の文字を統一的に記述できる国際的な文字コードです。
PowerSORTでは、以下の形式をサポートしています。
● UCS-2形式
1文字を2バイトで表現する形式です。
● UTF-8形式
1文字を1~6バイトの可変長のバイトで表現する形式です。PowerSORTでは、1~3バイトま
でをサポートしています。
274
索引
数字
10進形式2桁年号 .............................19
8086形式固定小数点2進数 .....................17
8086形式符号なし固定小数点2進数 .............17
A
Actionメソッド .............................137
ADJUSTに関するエラーコード .................238
AlphaNumOnlyプロパティ .....................102
AlternateModeプロパティ ....................102
ASCIIコード .................................16
B
Big endian .................................274
BOM ........................................274
BSCOL構造体 ................................162
BSFILE_BASE構造体 ..........................170
BSFILE_BTRV構造体 ..........................168
BSFILE_EXT構造体 ...........................167
BSFILE構造体 ...............................164
BSFSYS構造体 ...............................165
BSIDXKEY構造体 .............................166
BSIDX構造体 ................................166
BSKANJI構造体 ..............................161
BSKEY構造体 ................................158
bsortexコマンドオプション ...................64
bsortexコマンド記述上の注意事項 .............60
bsortexコマンドの形式 .......................60
bsortexコマンドの使用例 ....................249
BSORT関数一覧 ..............................140
BSORT関数で使用する構造体 ..................150
BSORT関数とは ..............................140
BSORT関数のエラー詳細コード(errdetail) ...227
BSORT関数の使用例 ..........................261
BSORT関数の使い方 ..........................141
bsortコマンドオプション .....................35
bsortコマンド記述上の注意事項 ...............33
bsortコマンドとbsortexコマンドの機能差につい
て ........................................30
bsortコマンドの形式 .........................33
bsortコマンドの使用例 ......................247
BSRCON構造体 ...............................178
bsrt.h .....................................274
BSRTFILE構造体 .............................162
BSRTFUNC構造体 .............................180
bsrtget関数 ................................147
BSRTKEY構造体 ..............................158
bsrtmrge関数 ...............................148
BSRTOPT構造体 ..............................171
BSRTPRIM構造体 .............................150
bsrtput関数 ................................146
BSRTRCON構造体 .............................178
BSRTREC構造体 ............................. 156
BSRTSELE構造体 ............................ 174
BSRTSKIP構造体 ............................ 179
BSRTSUM構造体 ............................. 172
BSSELE構造体 .............................. 174
BSSUM構造体 ............................... 172
BtrieveFileInfoプロパティ ................. 103
BtrieveIndexKeyプロパティ ................. 104
BtrieveInfileOwnerNameプロパティ .......... 105
Btrieveファイルに関するエラーコード ....... 238
C
COBOLプログラムからPowerSORTを使用する .... 138
CollationOrderプロパティ .................. 106
CompareAsUpperCaseプロパティ .............. 107
C言語プログラムからPowerSORTを使用する .... 139
D
DispMessageプロパティ ..................... 108
DisposalNumberプロパティ .................. 108
E
EBCDICコード ............................... 16
EnableOverwriteInputFileプロパティ ........ 109
ErrorCodeプロパティ ....................... 135
ErrorDetailプロパティ ..................... 135
F
FieldDefinitionプロパティ ................. 110
FieldDelimiterプロパティ .................. 110
FjcobAlternateKeyプロパティ ............... 111
FjcobDataCompressionプロパティ ............ 113
FjcobKeyCompressionプロパティ ............. 113
FjcobPrimeKeyプロパティ ................... 114
H
HandlingSameKeyプロパティ ................. 115
I
ICONVに関するエラーコード ................. 238
IEEE形式浮動小数点2進数 .................... 18
IgnoreControlCodeプロパティ ............... 116
InputDataCodeプロパティ ................... 117
InputFilesSkiprecプロパティ ............... 120
InputFilesプロパティ ...................... 117
InputFileTypeプロパティ ................... 118
J
JEFコード .................................. 16
K
KeyCmdStrプロパティ ....................... 120
L
LineDelimiterプロパティ ................... 122
Little endian ............................. 274
M
MaxRecordLengthプロパティ ................. 122
MessageFileNameプロパティ ................. 123
索引
MessageLevelプロパティ .....................123
M形式浮動小数点2進数 ........................18
O
OCX使用時のエラー詳細コード ................239
OCXを使用してPowerSORTを使用する ............94
OutputFileTypeプロパティ ...................125
OutputFileプロパティ .......................124
P
PowerSORT OCXの使用例 ......................252
PowerSORT OCXのプロパティシート .............96
PowerSORT OLEカスタムコントロールとは .......95
PowerSORT VBXからの移行方法 ................269
PowerSORTのbsortexコマンドを使用する ........59
PowerSORTのbsortコマンドを使用する ..........32
PowerSORTの概要 ..............................1
PowerSORTの使い方 ...........................30
PowerSORTの入出力環境 .......................13
R
RconCmdStrプロパティ .......................126
Reverseプロパティ ..........................128
S
SelCmdStrプロパティ ........................128
SkipLeadingBlankプロパティ .................131
SubErrorCodeプロパティ .....................136
SumCmdStrプロパティ ........................131
T
TempDirプロパティ ..........................133
U
UCS-2形式 ...................................16
Unicode ................................16, 274
UsableMemorySizeプロパティ .................133
UTF-8形式 ...................................16
V
Visual Basicのデータ型とPowerSORTのデータ形
式の関係 .................................269
あ
アーギュメントファイルオプション(-a) ..35, 64
アプリケーションログへの出力メッセージ .....226
い
一時ファイルのフォルダ指定方法 .............265
インコアソート .............................272
インデックス作成方法オプション(-I) ........42
インデックス指定オプション(-X) ............55
え
エラーコード ...............................227
エラーメッセージ ...........................183
お
オーナーネームテーブル .....................169
オプション機能 ...............................3
オプション機能と主要機能の組合せ .............6
か
外部10進形式2桁年号 .........................19
276
外部10進数 ................................. 18
各フィールドで指定可能なデータ形式 ......... 20
環境設定 ................................... 29
環境変数 .................................... 9
漢字ソートマージオプション(-M) ........... 46
漢字ソートマージ機能 ................... 7, 272
漢字ソートマージ機能の留意事項 .............. 8
漢字フィールド ............................ 272
関数の組合せ .............................. 140
き
キーフィールド ........................ 15, 272
キーフィールドオプション(-key-def) ....... 43
キーフィールドに指定可能なデータ形式 ....... 20
基本方式 ............................... 7, 272
こ
降順オプション(-r) ....................... 52
後置オーバパンチ符号付数字 ................. 20
後置別符号付数字 ........................... 19
国語辞典方式 ........................... 7, 272
固定小数点2進数 ............................ 17
固定フィールド ............................ 272
コピーオプション(-c) ..................... 52
コピーオプション(-copy) .................. 65
コピー機能 ............................. 2, 272
コピー機能を使用する場合 ............... 34, 63
さ
再編成フィールド ...................... 15, 272
再編成フィールドオプション(-e) ........... 36
再編成フィールドの自己規定値に指定可能なデー
タ形式 ................................... 27
先入力先出力(FIFO)機能オプション(-f) ... 39
先入力先出力(FIFO)機能 ............... 5, 272
サプレスオプション(-u) ................... 55
サプレス機能 ........................... 4, 272
し
自己規定値 ................................ 273
システム依存形式固定小数点2進数 ............ 17
システム依存形式符号なし固定小数点2進数 .... 18
実行環境オプション(-option) .............. 79
実行後に参照するプロパティ ................ 135
実行前に設定するプロパティ ................ 102
シフトJISコード ............................ 16
集約フィールド ........................ 15, 273
集約フィールドオプション(-g) ............. 40
集約フィールドで指定可能なデータ形式 ....... 22
出力ファイルオプション(-o) ............... 47
出力ファイル情報オプション(-output) ...... 83
主要機能 .................................... 2
照合順序変更 ............................... 17
照合順序変更オプション(-x) ............... 56
使用するPowerSORTの機能と関連するBSORT関数一
覧 ...................................... 140
索引
情報メッセージ .............................182
使用例 .....................................247
処理定義ファイル ...........................273
処理定義ファイルオプション(-P) ............47
処理定義ファイルを使用する場合 ..............34
す
数字 ........................................19
数値 ........................................17
ストリング .................................273
せ
選択フィールド .........................15, 273
選択フィールドオプション(-p) ..............48
選択フィールドに指定可能なデータ形式 ........23
選択フィールド複合条件の指定方法 ...........177
前置オーバパンチ符号付数字 ..................20
前置別符号付数字 ............................19
そ
ソートオプション(-s) ......................52
ソートオプション(-sort) ...................89
ソート機能 ..............................2, 273
ソート機能を使用する場合 ................33, 61
て
定義オプション(-define) ...................65
データ形式 ..................................16
テキストファイルオプション(-T) ............53
な
内部10進形式2桁年号 .........................19
内部10進数 ..................................18
に
入出力上書きオプション(-v) ................55
入出力ファイルシステムオプション(-F) ......38
入力コード系オプション(-q) ................51
入力ファイルオプション(infile) ............43
入力ファイル情報オプション(-input) ........66
入力レコード情報オプション(-record) .......88
ひ
被比較フィールドと自己規定値に指定可能なデー
タ形式の組合せ ............................27
被比較フィールドと比較フィールドに指定可能な
データ形式 ................................23
被比較フィールドと比較フィールドに指定可能な
データ形式の組合せ ........................24
標準出力オプション(-w) ....................55
ふ
ファイル種別に関する留意事項 ...............267
フィールド .............................15, 273
フィールド位置の指定方法 ...................266
フィールドとデータ形式 ..................... 15
フィールド分離文字 ........................ 273
フィールド分離文字オプション(-t) ......... 54
符号なし2進数 .............................. 17
符号なし外部10進数 ......................... 18
符号なし固定小数点2進数 .................... 17
符号なし数字 ............................... 19
符号なし内部10進数 ......................... 18
富士通COBOLファイルに関するエラーコード ... 238
富士通COBOLファイルシステムの行順ファイルに
関する留意事項 .......................... 268
浮動フィールド ............................ 273
ふりがなフィールド ........................ 273
ふりがなフィールドに含まれる特殊文字の扱い .. 8
へ
ヘルプオプション(-h) ................. 42, 66
ま
マージオプション(-m) ..................... 52
マージオプション(-merge) ................. 76
マージ機能 ............................. 2, 273
マージ機能を使用する場合 ............... 33, 62
め
メソッド .................................. 137
メッセージ ................................ 182
メッセージとエラーコード .................. 181
メッセージファイルオプション(-G) ......... 39
メッセージレベルオプション(-l) ........... 45
メモリサイズオプション(-y) ............... 57
メモリ不足への対処方法 .................... 265
も
文字 ....................................... 16
文字/数字混在のデータの並びに関する留意事項 267
文字形式2桁年号 ............................ 17
文字コード系変換オプション(-Q) ........... 51
り
留意事項 .................................. 265
れ
レコード形式オプション(-Z) ............... 57
レコード再編成機能 ..................... 3, 274
レコード集約オプション(-summary) ......... 90
レコード集約機能 ....................... 4, 274
レコード集約機能使用時の留意事項 .......... 265
レコード選択機能 ....................... 3, 274
レコード長オプション(-z) ................. 57
レコード分離文字 .......................... 274
レコード分離文字オプション(-L) ........... 45
レコード読み飛ばしオプション(-R) ......... 52
277
Fly UP