PowerSORT - ソフトウェア

PowerSORT Server V6.0
ユーザーズガイド
Windows
B1WS-0501-02Z0(00)
2011年4月
まえがき
このたびは、PowerSORT Serverをお買い上げいただきまして、誠にありがとうございます。
PowerSORT Serverは、サーバ上で行う事務処理で使用可能な高性能ソートマージ製品です。
グローバルサーバ上で培ってきた高度なソート技法をシステムに合わせて最適化し、事務処理で取り扱う少量のデータから大容量の
データまで、効率よくソート処理できます。
製品の呼び名について
本書では、各製品を次のように略記しています。あらかじめご了承ください。
正式名称
略称
Microsoft® Windows Server® 2008 Foundation
Microsoft® Windows Server® 2008 R2 Foundation
Microsoft® Windows Server® 2008 Standard
Microsoft® Windows Server® 2008 R2 Standard
Microsoft® Windows Server® 2008 Standard without Hyper-V™
Microsoft® Windows Server® 2008 Enterprise
Microsoft® Windows Server® 2008 R2 Enterprise
Microsoft® Windows Server® 2008 Enterprise without Hyper-V™
Microsoft® Windows Server® 2008 Datacenter
Microsoft® Windows Server® 2008 R2 Datacenter
Microsoft® Windows Server® 2008 Datacenter without Hyper-V™
Windows Server 2008
Microsoft® Windows Server® 2003, Standard x64 Edition
Microsoft® Windows Server® 2003 R2, Standard x64 Edition
Microsoft® Windows Server® 2003, Enterprise x64 Edition
Microsoft® Windows Server® 2003 R2, Enterprise x64 Edition
Windows Server 2003 x64
Edition
Microsoft® Windows Server® 2003, Standard Edition
Microsoft® Windows Server® 2003 R2, Standard Edition
Microsoft® Windows Server® 2003, Enterprise Edition
Microsoft® Windows Server® 2003 R2, Enterprise Edition
Windows Server 2003
Microsoft® Windows® 2000 Server
Windows 2000 Server
Microsoft® Windows® 2000 Advanced Server
Windows 2000 Advanced
Server
PowerSORT Server
PowerSORT
次の製品すべてを指す場合は、「Windows 2000」と表記しています。
・ Windows 2000 Server
・ Windows 2000 Advanced Server
次の製品すべてを指す場合は、「Windows」と表記しています。
・ Windows Server 2008
・ Windows Server 2003 x64 Edition
・ Windows Server 2003
・ Windows 2000
本書の目的
本書は、PowerSORTの使用方法について説明しています。
-i-
本書の対象読者
本書は、PowerSORTを使用する人を対象としています。
本書の構成
本書の構成と内容は、以下のとおりです。
第 1 章 リリース情報
旧版からの機能追加、障害修正、およびそれらに伴う互換に関する情報を説明しています。
第 2 章 PowerSORTの概要
PowerSORTの機能概要、PowerSORTの入出力環境およびオプション機能について説明しています。
第 3 章 PowerSORTの使い方
PowerSORTの実行方法について説明しています。
第 4 章 PowerSORTのbsortコマンドを使用する
bsortコマンドの記述形式について説明しています。
第 5 章 PowerSORTのbsortexコマンドを使用する
bsortexコマンドの記述形式について説明しています。
第 6 章 PowerSORT OCXからPowerSORTを使用する
プロパティの仕様について説明しています。
第 7 章 COBOLプログラムからPowerSORTを使用する
COBOLプログラムからPowerSORTを使用する方法を説明しています。
第 8 章 C言語プログラムからPowerSORTを使用する
BSORT関数の仕様について説明しています。
第 9 章 メッセージとエラーコード
bsort、bsortexの各コマンドおよびBSORT関数が出力するメッセージと、PowerSORT OCXおよびBSORT関数が返すエラー詳細コー
ドについて説明しています。
付録
PowerSORTの使用例および使用時の留意事項について説明しています。
輸出管理規制について
本ドキュメントを輸出または提供する場合は、外国為替および外国貿易法および米国輸出管理関連法規等の規制をご確認の上、必
要な手続きをおとり下さい。
登録商標について
本書に記載されている登録商標を、以下に示します。
・ Microsoft、Windows、Windows NT、Windows Server、Windows Vistaまたはその他のマイクロソフト製品の名称および製品名は、
米国 Microsoft Corporationの米国およびその他の国における商標または登録商標です。
- ii -
・ Pervasive、Pervasive Software、Pervasive SQL、Btrieve、およびPervasive Softwareロゴは、米国Pervasive Software,Inc.の米国お
よびその他の国における商標または登録商標です。
・ Micro Focusは、Micro Focus International Limited.の登録商標です。
・ その他の会社名および製品名は、それぞれの会社の商標または登録商標です。
2011年4月
Copyright 2000-2011 FUJITSU LIMITED
- iii -
目 次
第1章 リリース情報....................................................................................................................................................................1
1.1 追加機能の概要..................................................................................................................................................................................1
1.2 互換に関する情報..............................................................................................................................................................................4
1.2.1 機能追加、仕様変更に関する互換情報.....................................................................................................................................4
1.2.1.1 メッセージの変更について(その1).......................................................................................................................................4
1.2.1.2 Unicodeファイル時のBOMの読み飛ばしについて.............................................................................................................4
1.2.1.3 テキストファイル時に指定可能なデータ形式について.......................................................................................................5
1.2.1.4 テキストファイル浮動フィールド指定のキーフィールドについて.........................................................................................5
1.2.1.5 先入力先出力(FIFO)機能について....................................................................................................................................5
1.2.1.6 マージ機能について.............................................................................................................................................................6
1.2.1.7 富士通COBOLファイルシステムの可変長レコード形式について......................................................................................6
1.2.1.8 「+0」と「-0」を表現できるデータ形式について.....................................................................................................................7
1.2.1.9 メッセージの出力形式について...........................................................................................................................................7
1.2.1.10 一時ファイル容量不足時のメッセージについて................................................................................................................7
1.2.1.11 処理定義ファイルについて.................................................................................................................................................8
1.2.1.12 アプリケーションログへのメッセージ出力について............................................................................................................8
1.2.1.13 BSORT関数の定義値変更について..................................................................................................................................9
1.2.2 障害修正に関する互換情報.......................................................................................................................................................9
1.2.2.1 テキストファイル固定フィールド指定時のキーフィールドについて...................................................................................10
1.2.2.2 バイナリファイル時の選択フィールドについて...................................................................................................................10
1.2.2.3 アーギュメントファイルオプションの指定について.............................................................................................................10
1.2.2.4 テキストファイル固定フィールド指定時の集約フィールドについて...................................................................................11
1.2.2.5 テキストファイル指定時の集約フィールドについて...........................................................................................................11
1.2.2.6 bsortexコマンドのiconvオペランドについて.......................................................................................................................12
1.2.2.7 テキストファイル時のレコード集約結果(0詰め、空白詰め)について................................................................................12
1.2.2.8 bsortexコマンド使用時の再編成フィールドの自己規定値指定について.........................................................................13
1.2.2.9 テキストファイル浮動フィールド指定時のキーフィールドの操作(d、i)について...............................................................13
1.2.2.10 集約フィールド内のデータ誤りについて..........................................................................................................................13
1.2.2.11 マージ機能時のメモリ不足について................................................................................................................................14
1.2.2.12 キーフィールドにおける2桁年号データ形式について....................................................................................................14
1.2.2.13 bsortコマンド、bsortexコマンドの終了コードについて......................................................................................................14
1.2.2.14 ソート機能時の出力レコード減少について......................................................................................................................15
1.2.2.15 特定障害発生時のbsortコマンド、bsortexコマンドの終了コードについて......................................................................15
1.2.2.16 出力ファイルのレコード選択機能、またはレコード再編成機能指定時のエラーメッセージについて...........................15
1.2.2.17 テキストファイル時のレコード集約結果(0詰め、空白詰め、符号付加)について...........................................................15
1.2.2.18 テキストファイル浮動フィールド指定時のレコード集約結果について............................................................................16
1.2.2.19 テキストファイル指定時のUnicode UCS-2形式のレコード集約結果について...............................................................16
1.2.2.20 キーフィールドにおけるUnicode UCS-2形式のデータ形式について.............................................................................16
1.2.2.21 テキストファイル時のUnicode UCS-2形式のデータ形式について(その1).....................................................................17
1.2.2.22 テキストファイル時のUnicode UCS-2形式のデータ形式について(その2).....................................................................17
1.2.2.23 レコード選択機能における外部10進数のデータ形式について.....................................................................................17
1.2.2.24 選択フィールドのデータ形式が外部10進数、前置オーバパンチ符号付数字、または後置オーバパンチ符号付数字の
場合のレコード選択機能について............................................................................................................................18
1.2.2.25 メッセージの変更について(その2)...................................................................................................................................18
1.2.2.26 レコード再編成機能における「pos.END」の記述形式について......................................................................................18
1.2.2.27 出力件数が0件の時のBOM出力について......................................................................................................................19
1.2.2.28 テキストファイル時のシフトJISコードのデータ形式について...........................................................................................19
1.2.2.29 レコード全体をキーフィールドとする場合のキーフィールドの操作について.................................................................19
1.2.2.30 入力エラー発生時のメッセージについて.........................................................................................................................20
1.2.2.31 処理定義ファイルオプションについて..............................................................................................................................20
1.2.2.32 富士通COBOLのエラーコードについて..........................................................................................................................20
1.2.2.33 メッセージの変更について(その3)...................................................................................................................................21
1.2.2.34 メッセージの変更について(その4)...................................................................................................................................21
1.2.2.35 入力ファイルのコード系がUnicode系(UCS-2形式)の場合の再編成フィールドについて..............................................21
- iv -
1.2.2.36 入力ファイルのコード系がUnicode系(UCS-2形式)の場合のテキストファイル浮動フィールド指定について...............22
1.2.2.37 BSORT関数におけるキーフィールドの操作について(その1)........................................................................................22
1.2.2.38 BSORT関数におけるキーフィールドの操作について(その2)........................................................................................22
1.2.2.39 ファイルの分割出力機能について...................................................................................................................................23
1.2.2.40 キーフィールドの指定に誤りがある場合のメッセージ内の不適切な情報について.......................................................23
1.2.2.41 標準入力からのレコード入力について............................................................................................................................23
1.2.2.42 ファイルの分割出力機能(maxrecnum)について.............................................................................................................24
1.2.2.43 標準出力時におけるBOM出力について........................................................................................................................24
1.2.2.44 レコード集約機能における、集約フィールドの出力形式指定について(その1).............................................................24
1.2.2.45 標準入力時における、UnicodeファイルのBOMの読み飛ばしについて........................................................................25
1.2.2.46 マージ機能時のレコード集約結果について....................................................................................................................25
1.2.2.47 レコード集約機能における、集約フィールドの出力形式指定について(その2).............................................................25
1.2.2.48 テキストファイルCSV形式、テキストファイルTSV形式について(その1)..........................................................................26
1.2.2.49 テキストファイルCSV形式、テキストファイルTSV形式について(その2)..........................................................................26
1.3 プログラム修正一覧..........................................................................................................................................................................26
第2章 PowerSORTの概要...................................................................................................................................................... 40
2.1 主要機能...........................................................................................................................................................................................40
2.2 オプション機能..................................................................................................................................................................................40
2.3 オプション機能と主要機能の組合せ................................................................................................................................................43
2.4 漢字ソートマージ機能.......................................................................................................................................................................43
2.4.1 基本方式....................................................................................................................................................................................43
2.4.2 国語辞典方式............................................................................................................................................................................44
2.4.3 漢字ソートマージ機能の留意事項............................................................................................................................................44
2.5 環境変数...........................................................................................................................................................................................45
2.6 PowerSORTの入出力環境...............................................................................................................................................................50
2.6.1 対象となるファイル種別.............................................................................................................................................................50
2.6.2 入力と出力のファイル種別の組合せについて.........................................................................................................................51
2.7 フィールドとデータ形式.....................................................................................................................................................................51
2.7.1 フィールドの種類........................................................................................................................................................................51
2.7.2 フィールドの指定方法................................................................................................................................................................52
2.7.3 データ形式.................................................................................................................................................................................54
2.7.3.1 文字.....................................................................................................................................................................................54
2.7.3.2 数値.....................................................................................................................................................................................55
2.7.3.3 数字.....................................................................................................................................................................................57
2.7.4 各フィールドで指定可能なデータ形式.....................................................................................................................................59
2.7.4.1 キーフィールドに指定可能なデータ形式...........................................................................................................................59
2.7.4.2 集約フィールドに指定可能なデータ形式..........................................................................................................................61
2.7.4.3 選択フィールドに指定可能なデータ形式..........................................................................................................................62
2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式..............................................................................................67
2.8 環境設定...........................................................................................................................................................................................68
2.8.1 PowerSORTが使用する作業域(メモリ)の見積もり....................................................................................................................68
2.8.2 PowerSORTが使用する一時ファイル量の見積もり..................................................................................................................69
第3章 PowerSORTの使い方...................................................................................................................................................70
3.1 コマンド(bsortコマンド、bsortexコマンド)を使用する方法................................................................................................................70
3.2 OCXを使用してPowerSORTを使用する方法..................................................................................................................................70
3.3 COBOLプログラムから使用する方法...............................................................................................................................................71
3.4 C言語プログラムから使用する方法..................................................................................................................................................71
第4章 PowerSORTのbsortコマンドを使用する.........................................................................................................................72
4.1 bsortコマンドの形式..........................................................................................................................................................................72
4.1.1 ソート機能を使用する場合........................................................................................................................................................72
4.1.2 マージ機能を使用する場合.......................................................................................................................................................72
4.1.3 コピー機能を使用する場合.......................................................................................................................................................73
4.1.4 処理定義ファイルを使用する場合............................................................................................................................................73
4.2 bsortコマンドオプション.....................................................................................................................................................................73
4.2.1 アーギュメントファイルオプション(-a)........................................................................................................................................73
-v-
4.2.2 再編成フィールドオプション(-e)................................................................................................................................................74
4.2.3 入出力ファイルシステムオプション(-F).....................................................................................................................................78
4.2.4 先入力先出力(FIFO)機能オプション(-f)................................................................................................................................80
4.2.5 メッセージファイルオプション(-G).............................................................................................................................................80
4.2.6 集約フィールドオプション(-g)...................................................................................................................................................80
4.2.7 ヘルプオプション(-h)................................................................................................................................................................84
4.2.8 インデックス作成方法オプション(-I).........................................................................................................................................84
4.2.9 入力ファイルオプション(infile)..................................................................................................................................................84
4.2.10 キーフィールドオプション(-key-def)........................................................................................................................................84
4.2.11 レコード分離文字オプション(-L)............................................................................................................................................87
4.2.12 メッセージレベルオプション(-l)...............................................................................................................................................87
4.2.13 漢字ソートマージオプション(-M)............................................................................................................................................88
4.2.14 出力ファイルオプション(-o).....................................................................................................................................................90
4.2.15 処理定義ファイルオプション(-P)............................................................................................................................................90
4.2.16 選択フィールドオプション(-p).................................................................................................................................................91
4.2.17 文字コード系変換オプション(-Q)...........................................................................................................................................94
4.2.18 入力コード系オプション(-q)....................................................................................................................................................95
4.2.19 レコード読み飛ばしオプション(-R).........................................................................................................................................95
4.2.20 降順オプション(-r)...................................................................................................................................................................96
4.2.21 処理(ソート、マージ、コピー)オプション(-s、-m、-c).............................................................................................................96
4.2.22 テキストファイルオプション(-T)...............................................................................................................................................96
4.2.23 フィールド分離文字オプション(-t)..........................................................................................................................................97
4.2.24 サプレスオプション(-u)............................................................................................................................................................98
4.2.25 入出力上書きオプション(-v)...................................................................................................................................................98
4.2.26 標準出力オプション(-w).........................................................................................................................................................99
4.2.27 インデックス指定オプション(-X).............................................................................................................................................99
4.2.28 照合順序変更オプション(-x)................................................................................................................................................100
4.2.29 メモリサイズオプション(-y).....................................................................................................................................................100
4.2.30 レコード形式オプション(-Z)..................................................................................................................................................101
4.2.31 レコード長オプション(-z).......................................................................................................................................................101
第5章 PowerSORTのbsortexコマンドを使用する...................................................................................................................102
5.1 bsortexコマンドの形式.....................................................................................................................................................................102
5.1.1 ソート機能を使用する場合......................................................................................................................................................102
5.1.2 マージ機能を使用する場合.....................................................................................................................................................103
5.1.3 コピー機能を使用する場合.....................................................................................................................................................103
5.2 bsortexコマンドオプション................................................................................................................................................................104
5.2.1 アーギュメントファイルオプション(-a)......................................................................................................................................104
5.2.2 コピーオプション(-copy)..........................................................................................................................................................105
5.2.3 定義オプション(-define)..........................................................................................................................................................105
5.2.4 ヘルプオプション(-h)..............................................................................................................................................................106
5.2.5 入力ファイル情報オプション(-input)......................................................................................................................................106
5.2.5.1 reclenオペランド.................................................................................................................................................................107
5.2.5.2 fileオペランド.....................................................................................................................................................................107
5.2.5.3 filesysオペランド................................................................................................................................................................108
5.2.5.4 includeオペランド...............................................................................................................................................................109
5.2.5.5 omitオペランド...................................................................................................................................................................113
5.2.5.6 reconstオペランド...............................................................................................................................................................114
5.2.5.7 eofオペランド.....................................................................................................................................................................118
5.2.5.8 overwriteオペランド...........................................................................................................................................................118
5.2.6 マージオプション(-merge).......................................................................................................................................................119
5.2.6.1 keyオペランド.....................................................................................................................................................................119
5.2.6.2 jefオペランド......................................................................................................................................................................122
5.2.7 実行環境オプション(-option)..................................................................................................................................................123
5.2.7.1 colseqオペランド................................................................................................................................................................124
5.2.7.2 fifoオペランド.....................................................................................................................................................................124
5.2.7.3 icodeオペランド..................................................................................................................................................................124
- vi -
5.2.7.4 iconvオペランド.................................................................................................................................................................125
5.2.7.5 memsizeオペランド............................................................................................................................................................125
5.2.7.6 msgfileオペランド..............................................................................................................................................................126
5.2.7.7 msglevelオペランド............................................................................................................................................................126
5.2.7.8 tmpdirオペランド................................................................................................................................................................127
5.2.8 出力ファイル情報オプション(-output)....................................................................................................................................127
5.2.8.1 fileオペランド.....................................................................................................................................................................127
5.2.8.2 filesysオペランド................................................................................................................................................................128
5.2.8.3 maxfilesizeオペランド........................................................................................................................................................128
5.2.8.4 maxrecnumオペランド.......................................................................................................................................................129
5.2.8.5 includeオペランド ..............................................................................................................................................................129
5.2.8.6 omitオペランド...................................................................................................................................................................129
5.2.8.7 caseオペランド...................................................................................................................................................................130
5.2.8.8 reconstオペランド...............................................................................................................................................................130
5.2.8.9 idxflagオペランド...............................................................................................................................................................130
5.2.8.10 idxkeyオペランド.............................................................................................................................................................131
5.2.8.11 linedlmtオペランド...........................................................................................................................................................132
5.2.8.12 removeeofオペランド.......................................................................................................................................................132
5.2.9 入力レコード情報オプション(-record).....................................................................................................................................132
5.2.9.1 recformオペランド..............................................................................................................................................................132
5.2.9.2 fldsepオペランド.................................................................................................................................................................133
5.2.10 ソートオプション(-sort)...........................................................................................................................................................134
5.2.11 レコード集約オプション(-summary)......................................................................................................................................134
5.2.11.1 fieldオペランド.................................................................................................................................................................134
5.2.11.2 suppressオペランド...........................................................................................................................................................138
5.2.11.3 firstオペランド..................................................................................................................................................................138
5.2.11.4 lastオペランド...................................................................................................................................................................138
第6章 PowerSORT OCXからPowerSORTを使用する...........................................................................................................140
6.1 PowerSORT OLEカスタムコントロールとは....................................................................................................................................140
6.2 PowerSORT OCXのプロパティシート.............................................................................................................................................140
6.2.1 「File」プロパティページ............................................................................................................................................................140
6.2.2 「Disposal」プロパティページ....................................................................................................................................................142
6.2.3 「KeyField」プロパティページ...................................................................................................................................................142
6.2.4 「Record」プロパティページ......................................................................................................................................................143
6.2.5 「Option」プロパティページ.......................................................................................................................................................144
6.2.6 「Environment」プロパティページ.............................................................................................................................................144
6.3 実行前に設定するプロパティ.........................................................................................................................................................145
6.3.1 AlphaNumOnlyプロパティ........................................................................................................................................................145
6.3.2 AlternateModeプロパティ.........................................................................................................................................................146
6.3.3 BtrieveFileInfoプロパティ.........................................................................................................................................................147
6.3.4 BtrieveIndexKeyプロパティ......................................................................................................................................................148
6.3.5 BtrieveInfileOwnerNameプロパティ........................................................................................................................................149
6.3.6 CollationOrderプロパティ.........................................................................................................................................................149
6.3.7 CompareAsUpperCaseプロパティ............................................................................................................................................150
6.3.8 DispMessageプロパティ............................................................................................................................................................151
6.3.9 DisposalNumberプロパティ......................................................................................................................................................152
6.3.10 EnableOverwriteInputFileプロパティ.....................................................................................................................................153
6.3.11 FieldDefinitionプロパティ.......................................................................................................................................................154
6.3.12 FieldDelimiterプロパティ........................................................................................................................................................154
6.3.13 FjcobAlternateKeyプロパティ.................................................................................................................................................155
6.3.14 FjcobDataCompressionプロパティ..........................................................................................................................................157
6.3.15 FjcobKeyCompressionプロパティ..........................................................................................................................................157
6.3.16 FjcobPrimeKeyプロパティ......................................................................................................................................................158
6.3.17 HandlingSameKeyプロパティ.................................................................................................................................................159
6.3.18 IgnoreControlCodeプロパティ................................................................................................................................................160
6.3.19 InputDataCodeプロパティ.......................................................................................................................................................161
- vii -
6.3.20 InputFilesプロパティ...............................................................................................................................................................162
6.3.21 InputFileTypeプロパティ........................................................................................................................................................162
6.3.22 InputFilesSkiprecプロパティ...................................................................................................................................................164
6.3.23 KeyCmdStrプロパティ............................................................................................................................................................164
6.3.24 LineDelimiterプロパティ.........................................................................................................................................................166
6.3.25 MaxRecordLengthプロパティ.................................................................................................................................................167
6.3.26 MessageFileNameプロパティ..................................................................................................................................................167
6.3.27 MessageLevelプロパティ........................................................................................................................................................168
6.3.28 OutputFileプロパティ..............................................................................................................................................................168
6.3.29 OutputFileTypeプロパティ......................................................................................................................................................169
6.3.30 RconCmdStrプロパティ..........................................................................................................................................................170
6.3.31 Reverseプロパティ..................................................................................................................................................................172
6.3.32 SelCmdStrプロパティ..............................................................................................................................................................173
6.3.33 SkipLeadingBlankプロパティ.................................................................................................................................................175
6.3.34 SumCmdStrプロパティ............................................................................................................................................................176
6.3.35 TempDirプロパティ.................................................................................................................................................................177
6.3.36 UsableMemorySizeプロパティ................................................................................................................................................178
6.4 実行後に参照するプロパティ.........................................................................................................................................................178
6.4.1 ErrorCodeプロパティ................................................................................................................................................................178
6.4.2 ErrorDetailプロパティ...............................................................................................................................................................179
6.4.3 SubErrorCodeプロパティ..........................................................................................................................................................180
6.5 メソッド..............................................................................................................................................................................................180
6.5.1 Actionメソッド............................................................................................................................................................................180
第7章 COBOLプログラムからPowerSORTを使用する...........................................................................................................182
第8章 C言語プログラムからPowerSORTを使用する..............................................................................................................183
8.1 BSORT関数とは..............................................................................................................................................................................183
8.2 BSORT関数の使い方.....................................................................................................................................................................183
8.2.1 ソート機能を使用する場合......................................................................................................................................................184
8.2.2 マージ機能を使用する場合.....................................................................................................................................................185
8.2.3 コピー機能を使用する場合.....................................................................................................................................................186
8.3 ユーザアプリケーション開発時の留意事項...................................................................................................................................186
8.4 BSORT関数の種類.........................................................................................................................................................................186
8.4.1 bsrtopen関数.............................................................................................................................................................................186
8.4.2 bsrtclse関数..............................................................................................................................................................................188
8.4.3 bsrtput関数...............................................................................................................................................................................189
8.4.4 bsrtget関数................................................................................................................................................................................190
8.4.5 bsrtmrge関数............................................................................................................................................................................191
8.5 BSORT関数で使用する構造体......................................................................................................................................................192
8.5.1 BSRTPRIM構造体...................................................................................................................................................................192
8.5.2 BSRTREC構造体.....................................................................................................................................................................198
8.5.3 BSRTKEY構造体....................................................................................................................................................................200
8.5.4 BSKEY構造体.........................................................................................................................................................................201
8.5.5 BSKANJI構造体......................................................................................................................................................................203
8.5.6 BSCOL構造体..........................................................................................................................................................................205
8.5.7 BSRTFILE構造体....................................................................................................................................................................205
8.5.8 BSFILE構造体.........................................................................................................................................................................207
8.5.9 BSFSYS構造体........................................................................................................................................................................207
8.5.10 BSIDX構造体........................................................................................................................................................................208
8.5.11 BSIDXKEY構造体................................................................................................................................................................209
8.5.12 BSFILE_EXT構造体.............................................................................................................................................................210
8.5.13 BSFILE_BTRV構造体..........................................................................................................................................................211
8.5.14 BSFILE_BASE構造体...........................................................................................................................................................212
8.5.15 BSRTOPT構造体...................................................................................................................................................................213
8.5.16 BSRTSUM構造体..................................................................................................................................................................214
8.5.17 BSSUM構造体.......................................................................................................................................................................214
8.5.18 BSRTSELE構造体.................................................................................................................................................................217
- viii -
8.5.19 BSSELE構造体......................................................................................................................................................................218
8.5.20 BSRTRCON構造体...............................................................................................................................................................222
8.5.21 BSRCON構造体....................................................................................................................................................................222
8.5.22 BSRTSKIP構造体..................................................................................................................................................................224
8.5.23 BSRTFUNC構造体................................................................................................................................................................225
第9章 メッセージとエラーコード...............................................................................................................................................227
9.1 メッセージ........................................................................................................................................................................................227
9.1.1 情報メッセージ.........................................................................................................................................................................227
9.1.1.1 情報メッセージの説明形式...............................................................................................................................................227
9.1.1.2 情報メッセージ..................................................................................................................................................................228
9.1.2 警告メッセージ.........................................................................................................................................................................229
9.1.2.1 警告メッセージの説明形式...............................................................................................................................................229
9.1.2.2 警告メッセージ..................................................................................................................................................................229
9.1.3 エラーメッセージ.......................................................................................................................................................................233
9.1.3.1 エラーメッセージの説明形式............................................................................................................................................233
9.1.3.2 エラーメッセージ................................................................................................................................................................234
9.1.4 アプリケーションログへの出力メッセージ................................................................................................................................278
9.2 エラーコード.....................................................................................................................................................................................278
9.2.1 BSORT関数のエラー詳細コード(errdetail)............................................................................................................................279
9.2.2 富士通COBOLファイルに関するエラーコード........................................................................................................................289
9.2.3 Btrieveファイルに関するエラーコード.....................................................................................................................................289
9.2.4 ADJUSTに関するエラーコード................................................................................................................................................289
9.2.5 ICONVに関するエラーコード..................................................................................................................................................290
9.2.6 OCX使用時のエラー詳細コード.............................................................................................................................................290
9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード.............................................................................................291
9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード........................................................................................................297
9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード........................................................................................................298
付録A 使用例........................................................................................................................................................................299
A.1 bsortコマンドの使用例....................................................................................................................................................................299
A.2 bsortexコマンドの使用例................................................................................................................................................................301
A.3 PowerSORT OCXの使用例...........................................................................................................................................................304
A.3.1 ソート処理(バイナリファイル)の例..........................................................................................................................................304
A.3.2 ソート処理(テキストファイル)の例..........................................................................................................................................305
A.3.3 マージ処理(バイナリファイル)の例........................................................................................................................................305
A.3.4 マージ処理(テキストファイル)の例........................................................................................................................................306
A.3.5 コピー処理(バイナリファイル)の例........................................................................................................................................306
A.3.6 コピー処理(テキストファイル)の例.........................................................................................................................................307
A.3.7 レコード選択機能を使った例..................................................................................................................................................307
A.3.8 レコード再編成機能を使った例..............................................................................................................................................308
A.3.9 レコード集約機能を使った例..................................................................................................................................................308
A.3.10 レコード選択機能、レコード再編成機能、レコード集約機能を組み合わせた例...............................................................309
A.3.11 サプレス機能を使った例.......................................................................................................................................................310
A.3.12 FIFO機能を使った例............................................................................................................................................................310
A.3.13 富士通COBOL索引ファイルのソート例...............................................................................................................................311
A.4 BSORT関数の使用例....................................................................................................................................................................311
付録B 留意事項.....................................................................................................................................................................315
B.1 メモリ不足への対処方法について.................................................................................................................................................315
B.2 一時ファイルのフォルダ指定方法について..................................................................................................................................315
B.3 フィールドの指定方法について.....................................................................................................................................................315
B.4 英字と数字の連結データに関する留意事項................................................................................................................................316
B.5 ASCIIコードをEBCDICコード順、EBCDICコードをASCIIコード順に並べる方法について.......................................................317
B.6 ファイル種別に関する留意事項....................................................................................................................................................318
B.7 富士通COBOLファイルシステムに関する留意事項.....................................................................................................................319
B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関係........................................................................................................320
B.9 PowerSORT VBXからの移行方法................................................................................................................................................320
- ix -
用語集...................................................................................................................................................................................323
索引......................................................................................................................................................................................326
-x-
第1章 リリース情報
ここでは、PowerSORTのリリース情報を記載します。
1.1 追加機能の概要
以前のバージョン・レベルより追加された機能について記載します。
なお、V/Lは機能追加が行われたバージョン・レベルです。
項番
V/L
機能名
内容
マニュアルの記載場所
1
V3.0L20
ファイルシステム
PowerRW+でサポートするRDMファイ
ルをサポートしました。
第4章 PowerSORTのbsortコマンドを使
用する
・ 4.2.3 入出力ファイルシステムオプ
ション(-F)
第5章 PowerSORTのbsortexコマンドを
使用する
・ 5.2.5.3 filesysオペランド
第6章 PowerSORT OCXから
PowerSORTを使用する
・ 6.3.21 InputFileTypeプロパティ
・ 6.3.29 OutputFileTypeプロパティ
第8章 C言語プログラムから
PowerSORTを使用する
・ 8.5.9 BSFSYS構造体
2
V4.0L10
ファイルシステム
富士通COBOLファイルシステムの
BSAMに対応しました。
第2章 PowerSORTの概要
・ 2.5 環境変数
第4章 PowerSORTのbsortコマンドを使
用する
・ 4.2.3 入出力ファイルシステムオプ
ション(-F)
第5章 PowerSORTのbsortexコマンドを
使用する
・ 5.2.5.3 filesysオペランド
第8章 C言語プログラムから
PowerSORTを使用する
・ 8.5.9 BSFSYS構造体
付録B 留意事項
・ B.7 富士通COBOLファイルシステ
ムに関する留意事項
3
V4.0L10
アーギュメントファ
イル機能
アーギュメントファイルと他のオプション
との同時指定が可能となりました。
第4章 PowerSORTのbsortコマンドを使
用する
・ 4.2.1 アーギュメントファイルオプショ
ン(-a)
第5章 PowerSORTのbsortexコマンドを
使用する
-1-
項番
V/L
機能名
内容
マニュアルの記載場所
・ 5.2.1 アーギュメントファイルオプショ
ン(-a)
4
V4.0L10
レコード再編成機
能
指定した位置からレコードの終端まで
を再編成することが可能となりました。
第4章 PowerSORTのbsortコマンドを使
用する
・ 4.2.2 再編成フィールドオプション
(-e)
第5章 PowerSORTのbsortexコマンドを
使用する
・ 5.2.5.6 reconstオペランド
第8章 C言語プログラムから
PowerSORTを使用する
・ 8.5.21 BSRCON構造体
5
6
V4.0L10
V4.0L10
レコード集約機能
レコード集約機能
オーバフローが発生した場合のレコー
ド集約機能の動作を指定できるように
なりました。
第2章 PowerSORTの概要
bsortexコマンドにおいて、集約フィー
ルドに指定可能なデータ形式として以
下のデータ形式を追加しました。
第2章 PowerSORTの概要
・ 2.5 環境変数
・ 2.7.3.3 数字
・ 2.7.4.2 集約フィールドに指定可能
・ 符号なし数字
なデータ形式
・ 前置別符号付数字
・ 後置別符号付数字
・ 前置オーバパンチ符号付数字
・ 後置オーバパンチ符号付数字
7
V4.0L10
レコード集約機能
符号を表現できるデータ形式におい
て、集約結果が "0" となった場合の符
号を "+0" としました(旧バージョンの場
合は "不定" でした)。
-
8
V4.0L10
レコード集約機能
テキストファイルの処理において、集約
フィールドの出力形式(0詰めや符号の
有無など)を統一できるようになりまし
た。
第4章 PowerSORTのbsortコマンドを使
用する
・ 4.2.6 集約フィールドオプション(g)
第5章 PowerSORTのbsortexコマンドを
使用する
・ 5.2.11.1 fieldオペランド
第8章 C言語プログラムから
PowerSORTを使用する
・ 8.5.17 BSSUM構造体
9
V4.0L10
照合順序変更機
能
照合順序を変更する機能をサポートし
ました。
第4章 PowerSORTのbsortコマンドを使
用する
・ 4.2.28 照合順序変更オプション(x)
第5章 PowerSORTのbsortexコマンドを
使用する
・ 5.2.7.1 colseqオペランド
-2-
項番
機能名
V/L
内容
マニュアルの記載場所
第8章 C言語プログラムから
PowerSORTを使用する
・ 8.5.6 BSCOL構造体
10
V4.0L10
データ形式
符号なし内部10進数のデータ形式に、
符号部ありの形式を追加しました。
第2章 PowerSORTの概要
・ 2.7.3.2 数値
・ 2.7.4.1 キーフィールドに指定可能
なデータ形式
・ 2.7.4.2 集約フィールドに指定可能
なデータ形式
・ 2.7.4.3 選択フィールドに指定可能
なデータ形式
・ 2.7.4.4 再編成フィールドの自己規
定値に指定可能なデータ形式
11
V4.0L10
データ形式
bsortコマンド、およびBSORT関数にお
いて、各フィールドに指定可能なデー
タ形式をbsortexコマンドと同等になるよ
う拡大しました。
第2章 PowerSORTの概要
・ 2.7.4.1 キーフィールドに指定可能
なデータ形式
・ 2.7.4.2 集約フィールドに指定可能
なデータ形式
・ 2.7.4.3 選択フィールドに指定可能
なデータ形式
・ 2.7.4.4 再編成フィールドの自己規
定値に指定可能なデータ形式
12
V5.0L10
13
V6.0.0
-
NetCOBOL for .NET V3.0に対応しま
した。
-
ファイル
浮動フィールド指定にテキストファイル
CSV形式、およびテキストファイルTSV
形式を追加しました。
第2章 PowerSORTの概要
・ 2.7.2 フィールドの指定方法
第4章 PowerSORTのbsortコマンドを使
用する
・ 4.2.22 テキストファイルオプション
(-T)
第5章 PowerSORTのbsortexコマンドを
使用する
・ 5.2.9.1 recformオペランド
第8章 C言語プログラムから
PowerSORTを使用する
・ 8.5.1 BSRTPRIM構造体
14
15
V6.0.0
V6.0.0
先入力先出力
(FIFO)機能
先入力先出力(FIFO)機能を環境変数
により一括して指定できるようになりま
した。
第2章 PowerSORTの概要
ソート機能
マージ機能
レコード選択機
能
+0と-0を表現できるデータ形式におい
て、+0と-0を同値と判断して処理できる
ようになりました。
第2章 PowerSORTの概要
-3-
・ 2.5 環境変数
・ 2.5 環境変数
項番
V/L
16
V6.0.0
機能名
メッセージ
内容
マニュアルの記載場所
PowerSORTのメッセージに、メッセー
第2章 PowerSORTの概要
ジ種別、日時、およびメッセージ番号
・ 2.5 環境変数
を付加して出力できるようになりました。
第9章 メッセージとエラーコード
・ 9.1 メッセージ
17
V6.0.0
処理定義ファイ
ル
処理定義ファイルによる実行時、メッ
セージを出力できるようになりました。
第4章 PowerSORTのbsortコマンドを使
用する
・ 4.2.15 処理定義ファイルオプション
(-P)
1.2 互換に関する情報
以前のバージョン・レベルから変更された互換に関する情報を記載します。
1.2.1 機能追加、仕様変更に関する互換情報
ここでは、機能追加、および仕様変更に関連した互換情報について記載します。
1.2.1.1 メッセージの変更について(その1)
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、「集約処理でオーバフローが発生したため,集約を中断しまし
た.」というエラーメッセージを出力していました。
1. レコード集約機能を指定している。かつ、
2. レコード集約処理でオーバフローが発生した。
PowerSORT Server V4.0L10以降では、環境変数BSORT_SUMOVERCONTによりオーバフロー発生後のレコード集約処理の動作を
指定できるようになったため、「集約処理でオーバフローが発生しました.」に変更しました。
対処方法
ありません。
1.2.1.2 Unicodeファイル時のBOMの読み飛ばしについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、Unicodeファイルの入力開始時に無条件でBOMの長さ(注)分
のデータを読み飛ばしていました。
1. テキストファイル指定である。かつ、
2. 入力ファイルのコード系がUnicode(UCS-2形式、またはUTF-8形式)である。
PowerSORT Server V4.0L10以降では、テキストファイル指定の場合、Unicodeファイルの先頭にBOMが存在するときだけ読み飛ばす
ように変更しました。また、環境変数BSORT_UNICODEBOMの指定により、BOMを読み飛ばさないようにすることも可能となりました。
注) Unicode系(UCS-2形式)の場合は2バイト、Unicode系(UTF-8形式)の場合は3バイト。
対処方法
ありません。
-4-
1.2.1.3 テキストファイル時に指定可能なデータ形式について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、キーフィールド、選択フィールド、および再編成フィー
ルド(自己規定値)のデータ形式にUnicode UCS-2形式とUnicode UTF-8形式を混在して指定できました。
1. テキストファイル指定である。かつ、
2. 入力ファイルのコード系がUnicode(UCS-2形式、またはUTF-8形式)である。
PowerSORT Server V5.0L10以降では、Unicode UCS-2形式とUnicode UTF-8形式を混在して指定できないようにエラーチェックを強
化しました。この結果、以下のような指定をするとエラーとなります。
・ テキストファイルの処理において、入力コード系がUnicode系(UCS-2形式)のとき、各フィールドのデータ形式にUnicode UTF-8形
式を指定
・ テキストファイルの処理において、入力コード系がUnicode系(UTF-8形式)のとき、各フィールドのデータ形式にUnicode UCS-2形
式を指定
対処方法
ありません。
1.2.1.4 テキストファイル浮動フィールド指定のキーフィールドについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「キーフィールドが存在しないレコードが
入力されました.」というエラーメッセージを出力して終了していました。
1. テキストファイル浮動フィールド指定である。かつ、
2. キーフィールドが存在しないレコードが入力された。
PowerSORT Server V6.0.0以降では、テキストファイル固定フィールド指定の場合と同様に、キーフィールドの値を0x00として処理する
ように変更しました。
対処方法
ありません。
1.2.1.5 先入力先出力(FIFO)機能について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、エラーメッセージを出力して終了してい
ました。
1. 先入力先出力(FIFO)機能を指定している。かつ、
2. 同時にコピー機能、レコード集約機能、またはサプレス機能を指定している。
PowerSORT Server V6.0.0以降では、先入力先出力(FIFO)機能の指定を無視して動作するように変更しました。
対処方法
ありません。
-5-
1.2.1.6 マージ機能について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、同一なキーフィールドを持つレコードをレ
コード入力順に並べていました。
1. マージ機能を指定している。かつ、
2. 同時に先入力先出力(FIFO)機能を指定している。
PowerSORT Server V6.0.0以降では、先入力先出力(FIFO)機能の指定を無視して動作するように変更しました。同一なキーフィール
ドを持つレコードは、入力ファイルの指定順(同一ファイル内のレコードは、ファイル内の順)に出力されます。
また、以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、同一なキーフィールドを持つレコー
ドの中から、レコード入力順の最初、または最後のレコードを出力していました。
1. bsortexコマンドを使用している。かつ、
2. マージ機能を指定している。かつ、
3. レコード集約機能、またはサプレス機能を指定している。かつ、
4. firstオペランド、またはlastオペランドを指定している。
PowerSORT Server V6.0.0以降では、同一なキーフィールドを持つレコードの中から、入力ファイルの指定順(同一ファイル内のレコー
ドは、そのファイル内の順)の最初、または最後のレコードを出力するように変更しました。
対処方法
ありません。
参考
マージ機能では、各入力ファイルから1レコードずつ入力し、指定されたキーフィールドの順に出力ファイルへ出力していきます。また、
次のレコード入力は、出力されたレコードが属していた入力ファイルから行われます。このため、レコードの入力順は、各入力ファイル
内のレコードによって変わります。この結果、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10でマージ機能に先入
力先出力(FIFO)機能を組み合わせて指定した場合、またはマージ機能にレコード集約機能、またはサプレス機能を組み合わせて指
定し、firstオペランド、またはlastオペランドで出力するレコードを指定した場合、処理する入力ファイルによって結果が異なっていまし
た。
1.2.1.7 富士通COBOLファイルシステムの可変長レコード形式について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、富士通COBOLファイルシステムによっ
て、指定した最大レコード長を超える部分が切り捨てられることがありました。
1. 入力ファイルシステムが、富士通COBOLファイルシステム(順ファイル)、富士通COBOLファイルシステム(BSAM対応順ファイ
ル)、または富士通COBOLファイルシステム(索引ファイル)である。かつ、
2. レコード形式が可変長レコード形式である。かつ、
3. 指定した最大レコード長より長いレコードが存在する。
PowerSORT Server V6.0.0以降では、「ファイル(※ファイル名)からのレコード入力中にエラー(miss match record-length)が発生しまし
た.」というエラーメッセージを出力して終了するように変更しました。
-6-
対処方法
ありません。
富士通COBOLファイルシステム(順ファイル)、富士通COBOLファイルシステム(BSAM対応順ファイル)、または富士通COBOLファイ
ルシステム(索引ファイル)の可変長レコード形式のファイルを処理する場合、レコード長には、実際の最大レコード長以上を指定してく
ださい。
1.2.1.8 「+0」と「-0」を表現できるデータ形式について
変更内容
PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「+0」と「-0」を表現できるデータ形式において、「+0」と「-0」は
異なる値として処理(ソート処理、マージ処理、レコード集約処理、サプレス処理、およびレコード選択処理)していました。
PowerSORT Server V6.0.0以降では、同値として処理するように変更しました。
対処方法
PowerSORT Server V6.0.0以降において、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10と同様に「+0」と「-0」を異
なる値として処理する場合は、環境変数BSORT_SIGNEDZEROにEFFECTを指定してください。
参考
「+0」と「-0」を表現できるデータ形式を以下に示します。
・ 内部10進数
・ 外部10進数
・ 前置別符号付数字
・ 後置別符号付数字
・ 前置オーバパンチ符号付数字
・ 後置オーバパンチ符号付数字
・ テキストファイルにおいて、キーフィールド、および選択フィールドの操作としてn(BSOPT_NUMERIC)を指定した場合、またはキー
フィールドの操作としてN(BSOPT_CHARNUM)を指定した場合
1.2.1.9 メッセージの出力形式について
変更内容
PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、メッセージはメッセージ本文だけを出力していました。
PowerSORT Server V6.0.0以降では、メッセージは、メッセージ種別、日時、メッセージ番号、およびメッセージ本文を出力するように変
更しました。
対処方法
PowerSORT Server V6.0.0以降において、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10と同様にメッセージ本文
だけを出力したい場合は、環境変数BSORT_MSGSTYLEに1を指定してください。
1.2.1.10 一時ファイル容量不足時のメッセージについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「一時ファイルの容量が足りません.」とい
うエラーメッセージを出力して終了していました。
-7-
1. ソート機能を指定している。かつ、
2. 一時ファイルの容量不足を検出した。
PowerSORT Server V6.0.0以降では、「一時ファイルの容量が足りません.」というエラーメッセージに続いて、「一時フォルダ(※フォル
ダ名)を使用しました.」(注1)、または「一時ファイル(※ファイル名)を使用しました.」(注2)というエラーメッセージを出力するように変更
しました。
注1) 一時ファイルを作成するフォルダ名を指定した場合、または一時ファイルの指定を省略した場合に出力されます。
注2) 一時ファイルのファイルパス名を指定した場合に出力されます。
対処方法
ありません。
1.2.1.11 処理定義ファイルについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、環境変数BSORT_MSGLEVELの指定に
関わらず、「メッセージを何も出力しない」という設定で動作していました。
1. bsortコマンドを使用している。かつ、
2. 処理定義ファイルオプション(-P)を指定している。
PowerSORT Server V6.0.0以降では、環境変数BSORT_MSGLEVELの指定に従うよう変更しました。
対処方法
PowerSORT Server V6.0.0以降において、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10と同様に「メッセージを
何も出力しない」という設定で動作させる場合は、環境変数BSORT_MSGLEVELにNを指定してください。
1.2.1.12 アプリケーションログへのメッセージ出力について
変更内容
PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、環境変数BSORT_EVENTLOGにYESを指定した場合にア
プリケーションログへ出力されるメッセージは、以下の表のとおりでした。また、イベントIDとしてBSORT関数のエラー詳細コード(errdetail)
を設定していました。
イベントID
メッセージ
52
PowerSORTの動作に必要なメモリを確保できませんでした。
200
ファイルからレコードの読込み中にエラーが発生しました。
201
ファイルへのレコード書込み中にエラーが発生しました。
224
一時ファイルへの書込み中にエラーが発生しました。
225
一時ファイルからの読込み中にエラーが発生しました。
231
COBOLのファイルシステムのエラーが発生しました。
242
Btrieveファイルシステムでエラーを検出しました。
243
COBOL索引ファイルシステムでエラーを検出しました。
250
PowerSORTの処理に誤りがあります。
600
漢字ソートマージ処理にエラーが発生しました。
601
ADJUST処理にエラーが発生しました。
-8-
イベントID
602
メッセージ
ICONV処理にエラーが発生しました。
PowerSORT Server V6.0.0以降では、9.1.4 アプリケーションログへの出力メッセージに記載されているメッセージを出力するよう変更し
ました。また、イベントIDとしてメッセージ番号を設定するように変更しました。
対処方法
ありません。
1.2.1.13 BSORT関数の定義値変更について
変更内容
PowerSORT Server V6.0.0以降では、BSORT関数における各構造体のメンバーに設定可能な定義値を以下のように変更しました。
構造体
メンバー
V5.0L10以前の定義値
V6.0.0以降の定義値
BS_BLANK
BSOPT_BLANK
BS_DICTIONARY
BSOPT_DICTIONARY
BS_IGNORE
BSOPT_IGNORE
BS_JUNBO
BSOPT_JUMBO
BS_NUMERIC
BSOPT_NUMERIC
BS_CHARNUM
BSOPT_CHARNUM
BS_WCHR
BSOPT2_WCHR
BSOPT_B
BSOPT_BLANK
BSOPT_D
BSOPT_DICTIONARY
BSOPT_I
BSOPT_IGNORE
BSOPT_J
BSOPT_JUMBO
BSOPT_K
BSOPT_KANJI
BSOPT_N
BSOPT_NUMERIC
BSOPT_LN
BSOPT_CHARNUM
BSOPT2_W
BSOPT2_WCHR
BSOPT_B
BSOPT_BLANK
BSOPT_D
BSOPT_DICTIONARY
BSOPT_I
BSOPT_IGNORE
BSOPT_J
BSOPT_JUMBO
BSOPT_N
BSOPT_NUMERIC
BSOPT2_W
BSOPT2_WCHR
keyoption
BSRTPRIM
keyoption2
key_option
BSKEY
key_option2
sele_option
BSSELE
sele_option2
対処方法
以前のバージョンとの互換のため、PowerSORT Server V5.0L10以前の定義値もV6.0.0以降で使用可能です。このため、以前のバー
ジョンで作成したソースを修正する必要はありません。
1.2.2 障害修正に関する互換情報
ここでは、障害修正に関連した互換情報について記載します。
-9-
1.2.2.1 テキストファイル固定フィールド指定時のキーフィールドについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10では、指定の誤りを検出できずに動作することがありました。
1. bsortexコマンドを使用している。かつ、
2. テキストファイル固定フィールド指定である。かつ、
3. キーフィールドに「指定した最大レコード長-改行記号の長さ」を超えた位置を含んでいる。
PowerSORT Server V3.0L20以降では、「キーフィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー
ジを出力して終了するように修正しました。
対処方法
テキストファイル固定フィールド指定の場合、キーフィールドには「指定した最大レコード長-改行記号の長さ」を超えた位置を含まな
いよう、キーフィールドの指定を修正してください。
1.2.2.2 バイナリファイル時の選択フィールドについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10では、レコード外を選択フィールドに含んで動作していました。
1. bsortコマンド、またはBSORT関数を使用している。かつ、
2. バイナリファイル指定である。かつ、
3. 選択フィールドに「レコード長+1」の位置を含んでいる。
PowerSORT Server V3.0L20以降では、「選択フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー
ジを出力して終了するように修正しました。
対処方法
選択フィールドにはレコード長を超えた位置を含まないよう、選択フィールドの指定を修正してください。
1.2.2.3 アーギュメントファイルオプションの指定について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10では、他のオプションを無視してアーギュメントファイル内の指定だけで動作すること
がありました。
1. bsortコマンドを使用している。かつ、
2. アーギュメントファイルオプションと他のオプションを同時に指定している。
PowerSORT Server V3.0L20では、「オプション(-a)の指定に誤りがあります.」というエラーメッセージを出力して終了するように修正し
ました。
PowerSORT Server V4.0L10以降では、アーギュメントファイルオプションと他のオプションを同時に指定できるようになりました。
対処方法
PowerSORT Server V3.0L20以前は、アーギュメントファイルオプションと他のオプションを混在して指定できません。必要なオプション
は、アーギュメントファイル内で指定してください。
PowerSORT Server V4.0L10以降は、PowerSORT V3.0L10で無視されていたアーギュメントファイルオプション以外のオプションも有
効になります。必要のないオプションが指定されている場合は、削除してください。
- 10 -
1.2.2.4 テキストファイル固定フィールド指定時の集約フィールドについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10では、集約フィールドの指定誤りが検出されず、レコード集約処理が行われる際に
「集約フィールドが存在しないレコードが入力されたため,集約処理を中止します.」というエラーメッセージ(警告メッセージ)が出力される
(注)ことがありました。
1. テキストファイル固定フィールド指定である。かつ、
2. レコード集約機能を指定している。かつ、
3. 集約フィールドに「指定した最大レコード長-改行記号の長さ」を超えた位置を含んでいる。
PowerSORT Server V3.0L20以降では、「集約フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー
ジを出力して終了するように修正しました。
注) レコード集約処理は中止されますが、ソート処理、またはマージ処理は行われます。
対処方法
テキストファイル固定フィールド指定の場合、集約フィールドには「指定した最大レコード長-改行記号の長さ」を超えた位置を含まな
いよう、集約フィールドの指定を修正してください。
1.2.2.5 テキストファイル指定時の集約フィールドについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10では、集約フィールドのデータ形式にASCIIコード(asc)を指定したとみなして動作して
いました。
1. bsortコマンドを使用している。かつ、
2. テキストファイル指定である。かつ、
3. レコード集約機能を指定している。かつ、
4. 集約フィールドに以下のデータ形式を指定している。
- 固定小数点2進数(fbi)
- 符号なし固定小数点2進数(ufb)
- 8086形式固定小数点2進数(fbl)
- 8086形式符号なし固定小数点2進数(ufl)
- システム依存形式固定小数点2進数(fbm)
- システム依存形式符号なし固定小数点2進数(ufm)
- 内部10進数(pdl)
- 符号なし内部10進数(pdu)
- 外部10進数(zdl)
- 符号なし外部10進数(zdu)
PowerSORT Server V3.0L20以降では、「集約フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー
ジを出力して終了するように修正しました。
対処方法
テキストファイルを処理する場合、集約フィールドに上記のデータ形式は指定できません。集約フィールドに指定できるデータ形式の
詳細は、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。
- 11 -
PowerSORT Server V3.0L20以降において、PowerSORT Server V3.0L10と同じ動作にするためには、集約フィールドのデータ形式に
ASCIIコード(asc)を指定してください。
1.2.2.6 bsortexコマンドのiconvオペランドについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10では、「EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換」を行っていま
した。
1. bsortexコマンドを使用している。かつ、
2. ASCIIコードとEBCDICコード間の変換方式(iconvオペランド)に1を指定している。
PowerSORT Server V3.0L20以降では、「EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換」を行うように修正しました。
また、以下の条件のとき、PowerSORT Server V3.0L10では「EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換」を行っていまし
た。
1. bsortexコマンドを使用している。かつ、
2. ASCIIコードとEBCDICコード間の変換方式(iconvオペランド)に2を指定している。
PowerSORT Server V3.0L20以降では、「EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換」を行うように修正しました。
この結果、以下の指定の場合に出力結果が異なることがあります。
・ 入力ファイルのコード系(icodeオペランド)がASCIIコード系、かつキーフィールドのデータ形式がEBCDICコードの場合
・ 入力ファイルのコード系(icodeオペランド)がEBCDICコード系、かつキーフィールドのデータ形式がASCIIコードの場合
・ 選択フィールドのデータ形式がEBCDICコード、かつ文字列の自己規定値の場合
・ 再編成フィールドのデータ形式がEBCDICコード、かつ文字列の自己規定値の場合
対処方法
PowerSORT Server V3.0L20以降で正しく動作します。
PowerSORT Server V3.0L20以降において、PowerSORT Server V3.0L10と同じ動作にするためには、iconvオペランドに1を指定して
いた場合は2を、2を指定していた場合は1を指定してください。
1.2.2.7 テキストファイル時のレコード集約結果(0詰め、空白詰め)について
変更内容
テキストファイルにおけるレコード集約機能では、集約結果が集約フィールド長より短い場合、入力レコード内の集約フィールドの形式
にしたがって、集約フィールドの左余白に「0」、または空白を詰めます。
PowerSORT Server V3.0L10では、この処理が正しく動作しないことがありました。
PowerSORT Server V3.0L20以降では、入力レコード内の集約フィールドの形式にしたがって、集約フィールドの左余白に「0」、または
空白を詰めるように修正しました。
また、PowerSORT Server V4.0L10以降では、集約フィールドの出力形式を指定することもできるようになりました。
対処方法
ありません。PowerSORT Server V3.0L20以降で正しく動作します。
- 12 -
1.2.2.8 bsortexコマンド使用時の再編成フィールドの自己規定値指定について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10では、指定の誤りが検出されず動作していました。
1. bsortexコマンドを使用している。かつ、
2. レコード再編成機能を指定している。かつ、
3. 再編成フィールドに自己規定値を指定している。かつ、
4. 自己規定値のデータ形式と入力ファイルのコード系(icodeオペランド)が、以下の組み合わせである。
- 自己規定値のデータ形式がASCIIコード、またはシフトJISコードで、入力ファイルのコード系(icodeオペランド)がEBCDIC
コード系である。
- 自己規定値のデータ形式がEBCDICコードで、入力ファイルのコード系(icodeオペランド)がASCIIコード系である。
PowerSORT Server V3.0L20以降では、「再編成フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッ
セージを出力して終了するように修正しました。
対処方法
ありません。上記の自己規定値のデータ形式と入力ファイルのコード系の組み合わせは指定できません。
1.2.2.9 テキストファイル浮動フィールド指定時のキーフィールドの操作(d、i)について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10では、ソート機能、マージ機能、またはレコード選択機能の処理結果に誤りがあること
がありました。
1. テキストファイル浮動フィールド指定である。かつ、
2. キーフィールド、または選択フィールドの操作にd、またはiを指定している。
PowerSORT Server V3.0L20以降では、正しく処理するように修正しました。
対処方法
ありません。PowerSORT Server V3.0L20以降で正しく動作します。
1.2.2.10 集約フィールド内のデータ誤りについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、データの誤りを検出できずに異常な集約結果を出力すること
がありました。
1. テキストファイル指定である。かつ、
2. レコード集約機能を指定している。かつ、
3. 集約フィールド内に誤ったデータ(注1)が存在する。
PowerSORT Server V4.0L10以降では、「集約フィールド(※誤りのあるフィールド位置)の内部に不適切なコードが発見されたため,集
約処理を中断します.」というエラーメッセージ(警告メッセージ)を出力して集約処理を中断する(注2)ように修正しました。
注1) 数字の後に符号が存在するデータ。
注2) レコード集約処理は中断しますが、ソート処理、またはマージ処理は行われます。
- 13 -
対処方法
集約フィールド内のデータを修正してください。
1.2.2.11 マージ機能時のメモリ不足について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では「PowerSORTの処理で内部論理の矛盾を検出しました.
(qha5ioff-61)」というエラーメッセージを出力して終了することがありました。
1. マージ機能を指定している。かつ、
2. 作業域の大きさ(メモリサイズ)を指定している。
3. 指定した作業域の大きさ(メモリサイズ)が、処理に必要なメモリサイズより少ない。
PowerSORT Server V4.0L10以降では、「PowerSORTの動作に必要な領域を確保できません.」というエラーメッセージを出力して終
了するように修正しました。
対処方法
正常に処理させるためには、指定した作業域の大きさ(メモリサイズ)を増加するか、またはメモリサイズの指定(bsortコマンド、またはbsortex
コマンドのオプション、環境変数BSORT_MEMSIZEなど)を削除してください。
1.2.2.12 キーフィールドにおける2桁年号データ形式について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、誤りのあるデータが化けて出力されていました。
1. ソート機能、またはマージ機能を指定している。かつ、
2. キーフィールドのデータ形式に2桁年号データ形式(yyc、yyd、yyp、yyz)を指定している。かつ、
3. キーフィールド内に誤ったデータ(注)が存在する。
PowerSORT Server V4.0L10以降では、キーフィールド内の誤りのあるデータもそのまま出力するように修正しました。
注) 指定した2桁年号データ形式では許されないデータ。
対処方法
入力レコード内のキーフィールドのデータを修正してください。
1.2.2.13 bsortコマンド、bsortexコマンドの終了コードについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、終了コードが1になる場合と-1になる場合がありました。
1. bsortコマンド、またはbsortexコマンドを使用している。
2. bsortコマンド、またはbsortexコマンドでエラーが発生した。
PowerSORT Server V4.0L10以降では、終了コードが1となるように修正しました。
対処方法
bsortコマンド、およびbsortexコマンドの終了コードは、正常終了時が0、異常終了時が0以外という仕様です。コマンドの実行結果を終
了コードにより判断する場合は、0(正常)、または0以外(異常)で行ってください。
- 14 -
1.2.2.14 ソート機能時の出力レコード減少について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、「PowerSORTの処理で内部論理の矛盾を検出しました.
(qha5term-72)」というエラーメッセージを出力し、出力レコードが減少してしまう場合がありました。
1. ソート機能を指定している。
なお、この場合、1.2.2.15 特定障害発生時のbsortコマンド、bsortexコマンドの終了コードについての障害により、bsortコマンド、または
bsortexコマンドの終了コードが0となるため、終了コードからエラーが発生していることを判断できません。
PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V4.0L10以降で正しく動作します。
1.2.2.15 特定障害発生時のbsortコマンド、bsortexコマンドの終了コードについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、bsortコマンド、またはbsortexコマンドの終了コードが0で終了
することがありました。
1. 1.2.2.14 ソート機能時の出力レコード減少についての障害が発生した。または、
2. 1.2.2.16 出力ファイルのレコード選択機能、またはレコード再編成機能指定時のエラーメッセージについての障害が発生した。
PowerSORT Server V4.0L10以降では、終了コードが1になるよう修正しました。
対処方法
ありません。PowerSORT Server V4.0L10以降で正しく動作します。
1.2.2.16 出力ファイルのレコード選択機能、またはレコード再編成機能指定時のエラーメッ
セージについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、「PowerSORTの処理で内部論理の矛盾を検出しました.
(qha5term-72)」というエラーメッセージを出力して出力レコードが減少してしまう、または処理を返さなくなる場合がありました(注)。
1. bsortexコマンドを使用している。かつ、
2. 出力ファイルのレコード選択機能、または出力ファイルのレコード再編成機能を指定している。
なお、この場合、1.2.2.15 特定障害発生時のbsortコマンド、bsortexコマンドの終了コードについての障害により、bsortexコマンドの終
了コードが0となるため、終了コードからエラーが発生していることを判断できません。
PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。
注) 本障害は領域破壊を起こすため、その他にも様々な現象が起きる可能性があります。
対処方法
ありません。PowerSORT Server V4.0L10以降で正しく動作します。
1.2.2.17 テキストファイル時のレコード集約結果(0詰め、空白詰め、符号付加)について
- 15 -
変更内容
テキストファイルにおけるレコード集約機能では、集約結果が集約フィールド長より短い場合、入力レコード内の集約フィールドの形式
にしたがって、集約フィールドの左余白に「0」、または空白を詰めます。また、「+」の符号についても、入力レコード内の集約フィール
ドの形式にしたがって付加するか付加しないかを決定します。
PowerSORT Server V3.0L10、およびV3.0L20では、この処理が正しく動作しないことがありました。
PowerSORT Server V4.0L10以降では、入力レコード内の集約フィールドの形式にしたがって、0詰め、空白詰め、または「+」の符号の
付加を行うように修正しました。また、集約フィールドの出力形式を指定することもできるようになりました。
対処方法
ありません。PowerSORT Server V4.0L10以降で正しく動作します。
1.2.2.18 テキストファイル浮動フィールド指定時のレコード集約結果について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、レコード集約処理の結果に誤りがあることがありました。
1. テキストファイル浮動フィールド指定である。かつ、
2. レコード集約機能を指定している。かつ、
3. lastオペランドを指定している。かつ、
4. 集約フィールドに指定した長さと集約処理後のフィールドの長さが異なっている。
PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V4.0L10以降で正しく動作します。
1.2.2.19 テキストファイル指定時のUnicode UCS-2形式のレコード集約結果について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、レコード集約処理の結果に誤りがあることがありました。
1. テキストファイル指定である。かつ、
2. レコード集約機能を指定している。かつ、
3. 集約フィールドのデータ形式にUnicode UCS-2形式を指定している。かつ、
4. 集約フィールド内に誤った文字が存在する。
PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V4.0L10以降で正しく動作します。
1.2.2.20 キーフィールドにおけるUnicode UCS-2形式のデータ形式について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、ソート処理、またはマージ処理の結果に誤りがあることがあり
ました。
1. bsortコマンドを使用している。かつ、
- 16 -
2. キーフィールドのデータ形式にUnicode UCS-2形式を指定している。かつ、
3. 環境変数BSORT_UCS2TYPEを指定していない。かつ、
4. キーフィールド内のバイトオーダーがLittle Endianである。
PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。
対処方法
環境変数BSORT_UCS2TYPEにキーフィールド内のバイトオーダーを正しく設定することで、この問題を回避できます。
また、PowerSORT Server V4.0L10以降で正しく動作します。
1.2.2.21 テキストファイル時のUnicode UCS-2形式のデータ形式について(その1)
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、出力結果に誤りがあることがありました。
1. テキストファイル指定である。かつ、
2. キーフィールド、または選択フィールドのデータ形式がUnicode UCS-2形式である。かつ、
3. フィールドの操作にbを指定している。かつ、
4. フィールド内のデータが空白、またはタブで、その後ろにも空白、またはタブのデータが続いている。
PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V5.0L10以降で正しく動作します。
1.2.2.22 テキストファイル時のUnicode UCS-2形式のデータ形式について(その2)
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、出力結果に誤りがあることがありました。
1. テキストファイル指定である。かつ、
2. キーフィールド、または選択フィールドのデータ形式がUnicode UCS-2形式である。かつ、
3. フィールドの操作にnを指定している。かつ、
4. フィールド内のデータに数字を含まないレコードが存在している。かつ、
5. レコードの先頭に'9'よりも大きなデータが存在している。
PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V5.0L10以降で正しく動作します。
1.2.2.23 レコード選択機能における外部10進数のデータ形式について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、レコード選択処理の結果に誤りがあることがありまし
た。
1. レコード選択機能を指定している。かつ、
- 17 -
2. 選択フィールドのデータ形式に外部10進数を指定している。かつ、
3. 入力ファイルのコード系にASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式)を指定している。
PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V5.0L10以降で正しく動作します。
1.2.2.24 選択フィールドのデータ形式が外部10進数、前置オーバパンチ符号付数字、また
は後置オーバパンチ符号付数字の場合のレコード選択機能について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、レコード選択処理の結果に誤りがあることがありまし
た。
1. レコード選択機能を指定している。かつ、
2. 選択フィールドに以下のデータ形式を指定している。かつ、
- 外部10進数(zdl)
- 前置オーバパンチ符号付数字(alo)
- 後置オーバパンチ符号付数字(ato)
3. 入力ファイルのコード系にUnicode系(UCS-2形式)、またはUnicode系(UTF-8形式)を指定している。
PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V5.0L10以降で正しく動作します。
1.2.2.25 メッセージの変更について(その2)
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、「テキストファイルで入力コード系にEBCDICコード
系を指定してます.」というエラーメッセージを出力することがありました。
1. BSORT関数を使用したC言語のアプリケーションを作成して実行している。かつ、
2. テキストファイル指定である。かつ、
3. 入力ファイルのコード系にEBCDICコード系を指定している。
PowerSORT Server V5.0L10以降では、「テキストファイルで入力コード系にEBCDICコード系を指定しています.」に修正しました。
対処方法
ありません。
1.2.2.26 レコード再編成機能における「pos.END」の記述形式について
変更内容
以下の条件のとき、PowerSORT Server V4.0L10では、出力結果に誤りがあることがありました。
1. バイナリファイル指定である。かつ、
- 18 -
2. レコード形式に可変長レコード形式を指定している。かつ、
3. レコード再編成機能を指定している。かつ、
4. 再編成フィールドの記述形式が「pos.END」である。
PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V5.0L10以降で正しく動作します。
1.2.2.27 出力件数が0件の時のBOM出力について
変更内容
以下の条件のとき、PowerSORT Server V4.0L10では、出力ファイルの先頭にBOMが出力されないことがありました。
1. テキストファイル指定である。かつ、
2. 入力ファイルのコード系がUnicode系(UCS-2形式)、またはUnicode系(UTF-8形式)である。かつ、
3. 入力ファイルの先頭にBOM(Byte Order Mark)が存在している。かつ、
4. 環境変数BSORT_UNICODEBOMにONを指定している、または指定を省略している。かつ、
5. 出力件数が0件である。
PowerSORT Server V5.0L10以降では、出力ファイルの先頭にBOMが出力されるよう修正しました。
対処方法
ありません。PowerSORT Server V5.0L10以降で正しく動作します。
1.2.2.28 テキストファイル時のシフトJISコードのデータ形式について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、ソート処理、マージ処理、またはレコード
選択処理の結果に誤りがあることがありました。
1. テキストファイル指定である。かつ、
2. キーフィールド、または選択フィールドのデータ形式がシフトJISコード(sji)である。かつ、
3. フィールドの操作に'i'を指定している。
PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.29 レコード全体をキーフィールドとする場合のキーフィールドの操作について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、不適切なエラーメッセージを出力するこ
とがありました。
1. レコード全体をキーフィールドとしている。かつ、
- 19 -
2. レコード全体をキーフィールドとする場合のキーフィールドの操作に、n、N、およびwの排他関係にある操作を同時に指定して
いる。
PowerSORT Server V6.0.0以降では、「レコード全体をキーフィールドとする場合のキーフィールドの操作に誤りがあります.」というエ
ラーメッセージを出力するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しいメッセージを出力します。
1.2.2.30 入力エラー発生時のメッセージについて
変更内容
入力ファイルのファイルシステムがシステムの標準ファイルシステムの場合、入力ファイルに以下のような異常があったとき、PowerSORT
は「ファイル(※入力ファイル名)からのレコード入力中にエラー(※補足情報)が発生しました.」というエラーメッセージを出力することが
あります。
・ バイナリファイルの場合、ファイルサイズが指定したレコード長の倍数でない。
・ テキストファイルの場合、指定したレコード長より長いレコードが存在する。
・ テキストファイル、かつ入力ファイルのコード系がUnicode系(UCS-2形式)の場合、レコード長が奇数であるレコードが存在する。
PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、補足情報に不適切なメッセージを出力することがありました。
PowerSORT Server V6.0.0以降では、補足情報に適切なメッセージを出力するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しいメッセージを出力します。
1.2.2.31 処理定義ファイルオプションについて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、指定されたオプションを無視して動作し
てしまうことがありました。
1. bsortコマンドを使用している。かつ、
2. 処理定義ファイルオプション(-P)を指定している。かつ、
3. 同時に他のオプションを指定している。
PowerSORT Server V6.0.0以降では、「オプション(-P)の指定に誤りがあります.」というエラーメッセージを出力して終了するようになり
ました。
対処方法
ありません。処理定義ファイルオプション(-P)と他のオプションは混在して指定できません。
1.2.2.32 富士通COBOLのエラーコードについて
変更内容
PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、富士通COBOLファイルシステムでエラーが発生した場合の
エラーメッセージ内に、エラーコードとして不適切な記号が出力されることがありました。
- 20 -
PowerSORT Server V6.0.0以降では、16進数のエラーコードが出力されるように修正しました。
対処方法
ありません。
1.2.2.33 メッセージの変更について(その3)
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「An necessary PowerSORT working area
cannot be secured.」というエラーメッセージを出力していました。
1. 英語環境で動作している。かつ、
2. 作業域(メモリ)の不足を検出した。
PowerSORT Server V6.0.0以降では、「A necessary PowerSORT working area cannot be secured.」に修正しました。
対処方法
ありません。
1.2.2.34 メッセージの変更について(その4)
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「Max output file size is specified with the
file system which dose not support it.」というエラーメッセージを出力していました。
1. 英語環境で動作している。かつ、
2. 出力可能な最大ファイルサイズの指定に誤りがある。
PowerSORT Server V6.0.0以降では、「Max output file size is specified with the file system which does not support it.」に修正しました。
対処方法
ありません。
1.2.2.35 入力ファイルのコード系がUnicode系(UCS-2形式)の場合の再編成フィールドにつ
いて
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、再編成フィールドの指定の誤りを検出で
きずに動作していました。
1. テキストファイル指定である。かつ、
2. 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、
3. レコード再編成機能を指定している。かつ、
4. 再編成フィールドの長さが2の倍数でない。または、テキストファイル固定フィールド指定のときに再編成フィールドの位置が2の
倍数でない。
PowerSORT Server V6.0.0以降では、「再編成フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー
ジを出力して終了するように修正しました。
- 21 -
対処方法
テキストファイル指定、かつ入力ファイルのコード系がUnicode系(UCS-2形式)の場合、再編成フィールドの長さには2の倍数を指定し
てください。また、テキストファイル固定フィールド指定のときには、再編成フィールドの位置にも2の倍数を指定してください。
1.2.2.36 入力ファイルのコード系がUnicode系(UCS-2形式)の場合のテキストファイル浮動
フィールド指定について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、出力結果に誤りがあることがありました。
1. テキストファイル浮動フィールド指定である。かつ、
2. 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、
3. キーフィールド、選択フィールド、再編成フィールド、または集約フィールドを指定している。
PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.37 BSORT関数におけるキーフィールドの操作について(その1)
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、指定されたキーフィールドの操作に関す
る排他エラーが検出できず、動作してしまうことがありました。
1. BSORT関数を使用したC言語のアプリケーションを作成し実行している。かつ、
2. キーフィールドの指定を省略している。かつ、
3. BSRTPRIM構造体のkeyoptionにBS_CHARNUMを指定している。かつ、
4. BSRTPRIM構造体のkeyoptionにBS_NUMERIC、またはkeyoption2にBS_WCHRを指定している。
PowerSORT Server V6.0.0以降では、「レコード全体をキーフィールドとする場合のキーフィールドの操作に誤りがあります.」というエ
ラーメッセージを出力して終了するようになりました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.38 BSORT関数におけるキーフィールドの操作について(その2)
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、キーフィールドの操作にBSOPT_LNが指
定されたものとして動作していました。
1. BSORT関数を使用したC言語のアプリケーションを作成し実行している。かつ、
2. キーフィールドの操作にBSOPT_Nを指定している。
PowerSORT Server V6.0.0以降では、指定のとおり、キーフィールドの操作にBSOPT_Nが指定されたものとして動作するようになりまし
た。
- 22 -
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.39 ファイルの分割出力機能について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、1つのファイルに出力可能な最大ファイル
サイズ、または1つのファイルに出力可能な最大レコード数の指定によるファイルの分割出力が正常に動作しないことがありました。
1. bsortexコマンドを使用している。かつ、
2. -outputオプションでmaxfilesizeオペランド、またはmaxrecnumオペランドを指定している。かつ、
3. PowerSORTが用意した出力バッファ内に格納されているレコードを全て出力したタイミングでファイルの分割が行われた。
PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.40 キーフィールドの指定に誤りがある場合のメッセージ内の不適切な情報について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10が出力する「キーフィールド(※誤りのあるフィー
ルド番号)の指定に誤りがあります.」というメッセージ内の“※誤りのあるフィールド番号”が不適切でした。
1. テキストファイル浮動フィールド指定である。かつ、
2. 入力ファイルのレコード再編成機能を指定している。かつ、
3. 入力ファイルのレコード再編成機能の指定によりキーフィールドが存在しないレコードとなる。
PowerSORT Server V6.0.0以降では、正しいメッセージを出力するように修正しました。
対処方法
キーフィールドが存在しないレコードとなるような、入力ファイルのレコード再編成機能の指定はできません。再編成フィールド、または
キーフィールドの指定を修正してください。
1.2.2.41 標準入力からのレコード入力について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、レコードを正常に入力できず、出力結果
に誤りがあることがありました。
1. 入力ファイルが標準入力である。かつ、
2. 入力ファイルのコード系がUnicode UCS-2形式である。
PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
- 23 -
1.2.2.42 ファイルの分割出力機能(maxrecnum)について
変更内容
以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、1つのファイルに出力可能な最大レコー
ド数の指定によるファイルの分割出力が正常に動作しない、または「PowerSORTの処理で内部論理の矛盾を検出しました.
(qha5term-72)」というメッセージを出力してエラー終了することがありました。
1. bsortexコマンドを使用している。かつ、
2. テキストファイル指定である。かつ、
3. -outputオプションでmaxrecnumオペランドを指定している。かつ、
4. 入力ファイル内にレコード分離文字だけのレコードが含まれる。
PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.43 標準出力時におけるBOM出力について
変更内容
以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、出力ファイル(標準出力)の先頭に余分なBOMが出力されるこ
とがありました。
1. マージ機能、またはコピー機能を指定している。かつ、
2. テキストファイルの処理である。かつ、
3. 入力ファイルのコード系がUnicode系(UCS-2形式)、またはUnicode系(UTF-8形式)である。かつ、
4. 出力ファイルが標準出力である。
PowerSORT Server V6.0.0以降では、余分なBOMが出力されないように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.44 レコード集約機能における、集約フィールドの出力形式指定について(その1)
変更内容
以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、レコード集約フィールドが指定した出力形式で出力されない
ことがありました。
1. テキストファイル浮動フィールド指定である。かつ、
2. レコード集約機能を指定している。かつ、
3. 集約フィールドの出力形式に'd'を指定している。
PowerSORT Server V6.0.0以降では、指定した出力形式で出力されるように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
- 24 -
1.2.2.45 標準入力時における、UnicodeファイルのBOMの読み飛ばしについて
変更内容
以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、Unicodeファイルの入力開始時に無条件でBOMの長さ(注)分
のデータを読み飛ばしていました。
1. マージ機能、またはコピー機能を指定している。かつ、
2. テキストファイル指定である。かつ、
3. 入力ファイルのコード系がUnicode(UCS-2形式、またはUTF-8形式)である。かつ、
4. 入力ファイルが標準入力である。
PowerSORT Server V6.0.0以降では、テキストファイル指定の場合、Unicodeファイルの先頭にBOMが存在するときだけ読み飛ばすよ
うに修正しました。また、環境変数BSORT_UNICODEBOMの指定により、BOMを読み飛ばさないようにすることも可能です。
注) Unicode系(UCS-2形式)の場合は2バイト、Unicode系(UTF-8形式)の場合は3バイト。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.46 マージ機能時のレコード集約結果について
変更内容
以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、レコード集約処理の結果に誤りがあることがありました。
1. bsortexコマンドを使用している。かつ、
2. マージ機能を指定している。かつ、
3. レコード集約機能を指定している。かつ、
4. 集約フィールドの出力形式を指定している。かつ、
5. -summaryオプションでfirstオペランドを指定している。
PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.47 レコード集約機能における、集約フィールドの出力形式指定について(その2)
変更内容
以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、「集約フィールド(※異常が検出されたフィールド番号)の内部
に不適切なコードが発見されたため,集約処理を中断します.」というメッセージを出力して集約処理を中断することがありました。
1. テキストファイル浮動フィールド指定である。かつ、
2. レコード集約機能を指定している。かつ、
3. 集約フィールドの出力形式を指定している。かつ、
4. 集約処理の対象とならないレコードの集約フィールド内に空白、またはタブが存在する。
PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。
- 25 -
対処方法
ありません。PowerSORT Server V6.0.0以降で正しく動作します。
1.2.2.48 テキストファイルCSV形式、テキストファイルTSV形式について(その1)
変更内容
以下の条件のとき、PowerSORT Server V6.0.0では、実行結果誤り、無限ループ、または異常終了することがありました。
1. bsortコマンド、bsortexコマンド、またはBSORT関数を使用している。かつ、
2. ソート機能を指定している。かつ、
3. テキストファイルCSV形式またはテキストファイルTSV形式を指定している。かつ、
4. レコード集約機能または出力ファイルのレコード選択機能を指定している。かつ、
5. 集約フィールドまたは選択フィールドがダブルクォーテーションで囲まれている。
PowerSORT Server V6.0.0A以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0A以降で正しく動作します。
1.2.2.49 テキストファイルCSV形式、テキストファイルTSV形式について(その2)
変更内容
以下の条件のとき、PowerSORT Server V6.0.0では、実行結果誤り、または異常終了することがありました。
1. bsortexコマンドを使用している。かつ、
2. テキストファイルCSV形式またはテキストファイルTSV形式を指定している。かつ、
3. 出力ファイルのレコード再編成機能を指定している。
PowerSORT Server V6.0.0A以降では、正常に動作するように修正しました。
対処方法
ありません。PowerSORT Server V6.0.0A以降で正しく動作します。
1.3 プログラム修正一覧
以前のバージョン・レベルからの障害修正に関する情報を記載します。
なお、発生V/Lは障害が発生する最も古いバージョン・レベル、修正V/Lは障害を修正したバージョン・レベル、P番号は障害を一意に
示す番号です。
項番
発生V/L
修正V/L
P番号
現象
1
V3.0L10
V3.0L20
-
以下の条件のとき、キーフィールドの指定の誤りが検出されないことがあ
る問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) テキストファイル固定フィールド指定である。かつ、
3) キーフィールドが“指定した最大レコード長-改行記号の長さ”を超え
た位置を含んでいる。
2
V3.0L10
V3.0L20
-
以下の条件のとき、PowerSORTが「キーフィールドの指定に誤りがありま
す.」というメッセージを出力してエラー終了する問題を修正しました。
- 26 -
項番
発生V/L
修正V/L
現象
P番号
1) bsortexコマンドを使用している。かつ、
2) テキストファイル浮動フィールド指定である。かつ、
3) キーフィールドの指定で“フィールド番号+長さ”が最大レコード長を
超えている。
3
V3.0L10
V3.0L20
-
以下の条件のとき、PowerSORTが「選択フィールドの指定に誤りがありま
す.」というメッセージを出力してエラー終了する問題を修正しました。
1) bsortコマンドを使用している。かつ、
2) レコード選択機能を指定している。かつ、
3) レコード選択機能の比較フィールドに自己規定値を文字列で指定し
ている。かつ、
4) 自己規定値の文字列の長さが256バイトである。
4
V3.0L10
V3.0L20
-
以下の条件のとき、選択フィールドの指定の誤りが検出されない問題を
修正しました。
1) bsortコマンド、またはBSORT関数を使用している。かつ、
2) バイナリファイル指定である。かつ、
3) 選択フィールドの終了位置が“レコード長+1”である。
5
V3.0L10
V3.0L20
-
以下の条件のとき、オプション指定の誤りが検出されず、オプション指定
を無視して動作してしまう問題を修正しました。
1) bsortコマンドを使用している。かつ、
2) -aオプションの後ろに空白を置かずにアーギュメントファイルを指定し
ている。かつ、
3) 他のオプションを1つ指定している。
6
V3.0L10
V3.0L20
-
以下の条件のとき、集約フィールドの指定の誤りが検出されないことがあ
る問題を修正しました。
1) テキストファイル固定フィールド指定である。かつ、
2) 集約フィールドが“指定した最大レコード長-改行記号の長さ”を超え
た位置を含んでいる。
7
V3.0L10
V3.0L20
-
以下の条件のとき、集約フィールドの指定の誤りが検出されず、指定した
データ形式とは異なるレコード集約処理が行われる問題を修正しました。
1) bsortコマンドを使用している。かつ、
2) テキストファイル指定である。かつ、
3) 集約フィールドに指定できないデータ形式(fbi, ufb, fbl, ufl, fbm, ufm,
pdl, pdu, zdl, zdu)を指定している。
8
V3.0L10
V3.0L20
-
以下の条件のとき、PowerSORTが「選択フィールドが存在しないレコード
が入力されました.」というメッセージを出力してエラー終了することがあ
る問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) テキストファイル指定である。かつ、
3) レコード選択機能、およびレコード再編成機能を、-inputオプション、
および-outputオプションの両方に指定している。
9
V3.0L10
V3.0L20
-
以下の条件のとき、PowerSORTが「PowerSORTの処理で内部論理の矛
盾を検出しました.」というメッセージを出力してエラー終了する問題を修
正しました。
1) bsortexコマンドを使用している。かつ、
- 27 -
項番
発生V/L
修正V/L
現象
P番号
2) テキストファイル指定である。かつ、
3) マージ機能、またはコピー機能を指定している。かつ、
4) -inputオプション、-outputオプションの両方でレコード選択機能を指定
している。かつ、
5) -inputオプションで指定したレコード選択機能で、1レコードも選択され
なかった。
10
V3.0L10
V3.0L20
-
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) bsortexコマンドを使用している。かつ、
2) キーフィールドのデータ形式にascを指定し、入力ファイルのコード系
(icodeオペランド)にebを指定している。または、キーフィールドのデータ
形式にebcを指定し、入力ファイルのコード系にauを指定している。かつ、
3) ASCIIコードとEBCDICコード間の変換方式(iconvオペランド)に1、ま
たは2を指定している。
11
V3.0L10
V3.0L20
-
以下の条件のとき、PowerSORTのレコード集約機能における空白設定、
または0設定が異常になることがある問題を修正しました。
1) レコード集約機能を指定している。かつ、
2) テキストファイル指定である。
12
V3.0L10
V3.0L20
-
以下の条件のとき、PowerSORTが「オペランドの指定に誤りがあります.」
というメッセージを出力してエラー終了する問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) -optionオプションでmemsizeオペランドに2097152以上を指定してい
る。
13
V3.0L10
V3.0L20
PG09093
以下の条件のとき、PowerSORTが「キーフィールドの指定に誤りがありま
す.」というメッセージを出力してエラー終了することがある、またはアプリ
ケーションエラーとなることがある問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) 漢字ソートマージ機能を指定している。かつ、
3) 漢字ソートマージ機能を行うキーと漢字ソートマージ機能を行わない
キーを混在して指定している。
14
V3.0L10
V3.0L20
-
以下の条件のとき、PowerSORTがアプリケーションエラーとなることがあ
る問題を修正しました。
1) bsortコマンド、またはBSORT関数を使用している。かつ、
2) COPY機能を指定している。かつ、
3) キーフィールドを指定している。
15
V3.0L10
V3.0L20
-
以下の条件のとき、再編成フィールドの指定の誤りが検出されない問題
を修正しました。
1) bsortexコマンドを使用している。かつ、
2) レコード再編成機能で自己規定値を指定している。かつ、
3) 自己規定値のデータ形式がASCIIコード(asc)、またはシフトJISコード
(sji)で-optionオプションのicodeオペランドがEBCDICコード系(eb)である。
または、自己規定値のデータ形式がEBCDICコード(ebc)で-optionオプ
ションのicodeオペランドがASCIIコード系(au)、または省略している。
- 28 -
項番
発生V/L
修正V/L
P番号
現象
16
V3.0L10
V3.0L20
-
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) テキストファイル浮動フィールド指定である。かつ、
2) キーフィールド、または選択フィールドの操作に'd'、または'i'を指定し
ている。
17
V3.0L10
V3.0L20
P803892
以下の条件のとき、PowerSORTの出力結果が異常になる、または
「PowerSORTの処理で内部論理の矛盾を検出しました.」というメッセー
ジを出力してエラー終了する問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) レコード集約機能を指定している。かつ、
3) レコード集約機能にfirst、またはlastオペランドを指定している。
18
V3.0L10
V4.0L10
PG32089
以下の条件のとき、PowerSORTが「ファイル(※一時ファイル名)からのレ
コード入力中にエラー(※エラー番号)が発生しました.」というメッセージ
を出力してエラー終了することがある問題を修正しました。
1) ソート機能を指定している。かつ、
2) 一時ファイルを使用している(メモリサイズの指定が入力ファイルサイズ
より小さい)。かつ、
3) 入力ファイルサイズが2GB弱以上である。
19
V3.0L10
V4.0L10
-
以下の条件のとき、PowerSORTがアプリケーションエラーとなることがあ
る問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) PowerSORT固有の環境変数指定に誤りがある。
20
V3.0L10
V4.0L10
-
以下の条件のとき、集約フィールド内のデータの誤りが検出されない問
題を修正しました。
1) レコード集約機能を指定している。かつ、
2) テキストファイルである。かつ、
3) 集約フィールド内のデータにおいて、数字の後に符号が存在する。
21
V3.0L10
V4.0L10
-
以下の条件のとき、指定したメモリサイズの不足が検出されず、
「PowerSORTの処理で内部論理の矛盾を検出しました.」というメッセー
ジを出力してエラー終了することがある問題を修正しました。
1) マージ機能を指定している。かつ、
2) メモリサイズを指定している。かつ、
3) 指定したメモリサイズが、入力ファイル数、レコード長から計算される必
要メモリサイズより少ない。
22
V3.0L10
V4.0L10
P803978
以下の条件のとき、PowerSORTの出力結果が異常になる問題を修正し
ました。
1) バイナリファイル指定である。かつ、
2) キーフィールドに2桁年号データ形式(yyc、yyd、yyp、yyz)を指定して
いる。かつ、
3)指定したデータ形式として許されないコードがキーフィールド内に含ま
れている。
23
V3.0L10
V4.0L10
-
以下の条件のとき、PowerSORTの復帰コードが-1になることがある現象
を修正しました。
1) bsortexコマンド、またはbsortコマンドを使用している。かつ、
- 29 -
項番
発生V/L
修正V/L
現象
P番号
2) PowerSORTの処理中にエラーを検出した。
24
V3.0L10
V4.0L10
P805506
以下の条件のとき、PowerSORTが「キーフィールドと集約フィールド,ま
たは集約フィールドと集約フィールドが重なっています.」というメッセー
ジを出力してエラー終了することがある問題を修正しました。
1) bsortコマンド、またはBSORT関数を使用している。かつ、
2) バイナリファイル、可変長レコード形式である。かつ、
3) キーフィールドの最終位置から4バイト以内に集約フィールドの先頭が
存在する。
25
V3.0L10
V4.0L10
PG22291
以下の条件のとき、PowerSORTが「PowerSORTの処理で内部論理の矛
盾を検出しました(qha5term-72).」というエラーメッセージを出力し、出力
レコード件数が減少する問題を修正しました。
1) ソート機能を指定している。かつ、
2) 一時ファイルに出力するデータブロックの最後から2番目が一時ファイ
ルの空きディスク容量を超えた。
26
V3.0L10
V4.0L10
PG22317
以下の条件のとき、PowerSORTの復帰コードが0となる問題を修正しまし
た。
1) bsortコマンド、またはbsortexコマンドを使用している。かつ、
2) 入出力件数の不一致、ファイルのクローズ処理でエラー、またはライブ
ラリのクローズ処理でエラーのいずれかが発生した。
27
V3.0L10
V4.0L10
PG22337
以下の条件のとき、PowerSORTが「PowerSORTの処理で内部論理の矛
盾を検出しました(qha5term-72).」というエラーメッセージを出力すること
がある、または処理を返さなくなることがある問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) 出力ファイルのレコード選択機能を指定している、または出力ファイル
のレコード再編成機能を指定している。
28
V3.0L10
V4.0L10
-
以下の条件のとき、PowerSORTのレコード集約機能の結果が異常にな
ることがある問題を修正しました。
1) ソート機能、またはマージ機能を指定している。かつ、
2) テキストファイル指定である。かつ、
3) レコード集約機能を指定している。
29
V3.0L10
V4.0L10
-
以下の条件のとき、PowerSORTの出力結果が異常になる問題を修正し
ました。
1) bsortexコマンドを使用している。かつ、
2) テキストファイル浮動フィールド指定である。かつ、
3) レコード集約機能を指定している。かつ、
4) レコード集約機能にlastオペランドを指定している。かつ、
5) 集約フィールドに指定した長さと集約処理後のフィールドの長さが異
なる。
30
V3.0L10
V4.0L10
-
以下の条件のとき、PowerSORTの出力結果が異常になる問題を修正し
ました。
1) テキストファイル指定である。かつ、
2) レコード集約機能を指定している。かつ、
3) 集約フィールドのデータ形式にUnicode UCS-2形式を指定している。
かつ、
- 30 -
項番
発生V/L
修正V/L
現象
P番号
4) 集約フィールドに誤りのある文字が存在する。
31
V3.0L10
V4.0L10
-
以下の条件のとき、PowerSORTの出力結果が異常になる問題を修正し
ました。
1) bsortコマンドを使用している。かつ、
2) キーフィールドのデータ形式にUnicode UCS-2形式(uc2)を指定してい
る。かつ、
3) 環境変数BSORT_UCS2TYPEを指定していない。かつ、
4) キーフィールドのバイトオーダーがLittle Endianである。
32
V3.0L10
V4.0L10
PG61267
以下の条件のとき、PowerSORTがアプリケーションエラーとなることがあ
る問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) テキストファイル指定である。かつ、
3) 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、
4) 入力ファイルのレコード分離文字列がCRLFである。
33
V3.0L20
V4.0L10
-
以下の条件のとき、PowerSORTが出力する「ファイル(※ファイル名)の
オープンでエラー(※エラー番号)が発生しました.」というエラーメッセー
ジのエラー番号に誤りがある問題を修正しました。
1) 入力ファイル、または出力ファイルのファイルシステムにRDMファイル
システムを指定している。かつ、
2) RDMファイルのオープン処理で何らかのエラーが発生した。
34
V3.0L10
V5.0L10
-
以下の条件のとき、PowerSORTがアプリケーションエラーとなることがあ
る問題を修正しました。
1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい
る。かつ、
2) BSRTPRIM構造体のmemory_addrメンバーで、PowerSORTが使用す
る作業域のアドレスを指定している。かつ、
3) BSRTPRIM構造体のmemory_sizeメンバーで指定した作業域の大き
さが4の倍数でない、または指定できる最大値(2147482624)を超えてい
る。
35
V3.0L10
V5.0L10
-
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) テキストファイル指定である。かつ、
2) キーフィールド、または選択フィールドのデータ形式にUnicode UCS-2
形式を指定している。かつ、
3) キーフィールド、または選択フィールドの操作に、'b'、またはBSOPT_B
を指定している。かつ、
4) キーフィールド、または選択フィールドが空白、またはタブである。か
つ、
5) キーフィールド、または選択フィールドの後ろに空白、またはタブの
データが存在する。
36
V3.0L10
V5.0L10
-
以下の条件のとき、PowerSORTが「PowerSORTの処理で内部論理の矛
盾を検出しました(qha5term-72).」というメッセージを出力してエラー終了
することがある、またはPowerSORTの出力結果が異常になることがある問
題を修正しました。
1) テキストファイル指定である。かつ、
- 31 -
項番
発生V/L
修正V/L
現象
P番号
2) キーフィールド、または選択フィールドのデータ形式にUnicode UCS-2
形式を指定している。かつ、
3) キーフィールド、または選択フィールドの操作に、'n'、またはBSOPT_N
を指定している。かつ、
4) キーフィールド、または選択フィールドに数字を含まないレコードが存
在する。かつ、
5) レコードの先頭に'9'(Big Endianでは0x0039、Little Endianでは0x3900)
より大きなデータが存在する。
37
V3.0L10
V5.0L10
-
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) レコード選択機能を指定している。かつ、
2) 選択フィールドのデータ形式に外部10進数を指定している。かつ、
3) 入力ファイルのコード系にASCIIコード系(Micro Focus COBL形式、
COBOL/2形式)を指定している。
38
V3.0L10
V5.0L10
PG42619
以下の条件のとき、PowerSORTが「文法的な誤りがあります.」というメッ
セージを出力してエラー終了することがある、またはアプリケーションエ
ラーとなることがある問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) レコード選択機能を指定している。かつ、
3) 一つのinclude/omit/caseオペランドで指定した選択条件が以下のいず
れかに合致する。
a) 選択条件の指定数が38を超えている。
b) 選択条件が括弧を使用した指定のとき、 "選択指定数+括弧(閉じ/開
け)数+論理条件数" が選択指定数の5倍を超えている。
c) 選択条件が括弧を使用した指定のとき、括弧を展開したときの選択指
定数が、実指定数の10倍を超えている(注)。
注) "(AorB)and(CorD)" と指定した場合(実指定数:4)、括弧を展開すると
"AandCorAandDorBandCorBandD" となり、選択指定数は8となる。
39
V3.0L10
V5.0L10
PG46785
以下の条件のとき、PowerSORTのレコード選択機能の結果が異常にな
る問題を修正しました。
1) バイナリファイル指定である。かつ、
2) 入力ファイルのコード系がUnicode系(UCS-2形式、またはUTF-8形式)
である。かつ、
3) レコード選択機能を指定している。かつ、
4) 選択フィールドのデータ形式に外部10進数(zdl)、前置オーバパンチ
符号付数字(alo)、後置オーバパンチ符号付数字(ato)のいずれかを指定
している。
40
V3.0L10
V5.0L10
PG46786
以下の条件のとき、PowerSORTが「bsrtopen関数で指定した
BSRTPRIM(keyoption)に誤りがあります.」というメッセージを出力してエ
ラー終了する問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) テキストファイル指定である。かつ、
3) キーフィールドにALLを指定している。かつ、
4) キーフィールドの操作に'n'を指定している。かつ、
- 32 -
項番
発生V/L
修正V/L
現象
P番号
5) 入力ファイルのコード系(icode)にASCIIコード系(au)、EBCDICコード系
(eb)以外を指定している。
41
V3.0L10
V5.0L10
-
以下の条件のとき、PowerSORTが出力する「テキストファイルで入力コー
ド系にEBCDICコード系を指定してます.」というエラーメッセージを修正
しました。
1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい
る。かつ、
2) テキストファイル指定である。かつ、
3) 入力ファイルのコード系にEBCDICコード系を指定している。
42
V4.0L10
V5.0L10
-
以下の条件のとき、PowerSORTが「再編成フィールドが存在しないレコー
ドが入力されました.」というメッセージを出力してエラー終了することがあ
る問題を修正しました。
1) ソート機能、またはマージ機能を指定している。かつ、
2) テキストファイル浮動フィールド指定である。かつ、
3) レコード再編成機能を指定している。かつ、
4) 再編成フィールドの記述形式が "pos.END" 以外である。
43
V4.0L10
V5.0L10
-
以下の条件のとき、PowerSORTが「ストリングが並んでいません.」という
メッセージを出力してエラー終了することがある(注1)、または出力結果が
異常になることがある(注2)問題を修正しました。
1) ソート機能、またはマージ機能を指定している。かつ、
2) バイナリファイル、可変長レコード形式を指定している。かつ、
3) レコード再編成機能を指定している。かつ、
4) 再編成フィールドの記述形式が "pos.END" である。
注1) マージ機能を指定している場合に発生することがあります。
注2) ソート機能を指定している場合に発生することがあります。
44
V4.0L10
V5.0L10
-
以下の条件のとき、PowerSORTが「オペランド(colseq=※指定値)の指定
に誤りがあります.」というメッセージを出力してエラー終了することがある
問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) -optionオプションのcolseqオペランドを指定している。
45
V4.0L10
V5.0L10
PG45790
以下の条件のとき、PowerSORTの出力結果が異常になる(ファイルの先
頭にBOMが出力されない)ことがある問題を修正しました。
1) テキストファイル指定である。かつ、
2) 入力ファイルのコード系がUnicode系(UCS-2形式、またはUTF-8形式)
である。かつ、
3) 入力ファイルの先頭にBOMが存在する。かつ、
4) 環境変数のBSORT_UNICODEBOMにONを指定している、または環
境変数のBSORT_UNICODEBOMが省略されている。かつ、
5) 出力件数が0件である。
46
V3.0L10
V6.0.0
PG61364
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) テキストファイル指定である。かつ、
2) キーフィールド、または選択フィールドのデータ形式にシフトJISコード
- 33 -
項番
発生V/L
修正V/L
現象
P番号
(sji)を指定している。かつ、
3) キーフィールド、または選択フィールドの操作に'i'を指定している。
47
V3.0L10
V6.0.0
PG61365
以下の条件のとき、PowerSORTが「bsrtopen関数で指定した
BSRTPRIM(keyoption2)に誤りがあります.」という不適切なエラーメッセー
ジを出力する問題を修正しました。
1) bsortコマンドを使用している。かつ、
2) キーフィールドを指定していない。かつ、
3) テキストファイル指定である。かつ、
4) キーフィールドの操作に'w'と'N'を同時に指定している。
48
V3.0L10
V6.0.0
PG61366
以下の条件のとき、PowerSORTが不適切なメッセージを出力することが
ある問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) キーフィールドにALLを指定している。かつ、
3) キーフィールドの操作に以下の組み合わせで指定している。
- 'n'と'N'
- 'n'と'w'
- 'N'と'w'
49
V3.0L10
V6.0.0
PG61367
以下の条件のとき、PowerSORTがアプリケーションエラーとなる問題を修
正しました。
1) bsortexコマンドを使用している。かつ、
2) 定義オプション(-define)を指定している。かつ、
3) 定義オプションのオペランドで簡略名しか指定していない(注)。
注) 例えば、"-define @KEY" など。
50
V3.0L10
V6.0.0
PG61368
以下の条件のとき、オプション指定の誤りが検出されず、指定されたオプ
ションを無視して動作してしまうことがある問題を修正しました。
1) bsortコマンドを使用している。かつ、
2) -Pオプションの後ろに空白を置かずに処理定義ファイルを指定してい
る。かつ、
3) 他のオプションを1つ指定している。
51
V3.0L10
V6.0.0
PG61369
以下の条件のとき、PowerSORTが出力するメッセージ内のエラー番号に
誤りがあることがある問題を修正しました。
1) 入力ファイル、または出力ファイルのファイルシステムに富士通COBOL
ファイルシステムを指定している。かつ、
2) 富士通COBOLファイルシステムで何らかのエラーが発生した。
52
V3.0L10
V6.0.0
PG61370
以下の条件のとき、PowerSORTが出力する「An necessary PowerSORT
working area cannot be secured.」というエラーメッセージを修正しました。
1) 英語環境でPowerSORTを使用している。かつ、
2) PowerSORTが必要とするメモリが割り当てられない。
53
V3.0L10
V6.0.0
PG61371
以下の条件のとき、PowerSORTが「再編成フィールドの指定に誤りがあ
ります」というメッセージを出力してエラー終了する問題を修正しました。
1) bsortコマンドを使用している。かつ、
2) バイナリファイル指定である。かつ、
- 34 -
項番
発生V/L
修正V/L
現象
P番号
3) レコード再編成機能を指定している。かつ、
4) 再編成フィールドにおいて16進数による自己規定値の指定がある。か
つ、
5) 再編成フィールドにおける自己規定値のデータ形式と入力ファイルの
コード系の指定の組み合わせが以下のいずれかに該当する。
a) データ形式がASCIIである。かつ、入力ファイルのコード系がUnicode系
(UCS-2形式、またはUTF-8形式)である。
b) データ形式がUnicode UCS-2形式、またはUnicode UTF-8形式であ
る。かつ、入力ファイルのコード系がASCIIコード系である。
54
V3.0L10
V6.0.0
PG61372
以下の条件のとき、PowerSORTが出力する「Max output file size is
specified with the file system which dose not support it.」というエラーメッ
セージを修正しました。
1) 英語環境でPowerSORTを使用している。かつ、
2) 出力ファイルシステムがシステムの標準ファイルシステム以外である。
かつ、
3) 出力可能な最大ファイルサイズを指定している。
55
V3.0L10
V6.0.0
PG61373
以下の条件のとき、PowerSORTが「再編成フィールドの指定に誤りがあ
ります.」というメッセージを出力してエラー終了することがある問題を修
正しました。
1) テキストファイル指定である。かつ、
2) レコード再編成機能を指定している。かつ、
3) 再編成フィールドに自己規定値を指定している。かつ、
4) 入力ファイルのコード系がUnicode系(UCS-2形式)である。
56
V3.0L10
V6.0.0
PG61374
以下の条件のとき、再編成フィールドの指定の誤りが検出できず、
PowerSORTの出力結果が異常になる問題を修正しました。
1) テキストファイル指定である。かつ、
2) 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、
3) レコード再編成機能を指定している。かつ、
4) 再編成フィールドの長さが2の倍数でない。または、テキストファイル固
定フィールド指定のときに再編成フィールドの位置が2の倍数でない。
57
V3.0L10
V6.0.0
PG61375
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) テキストファイル浮動フィールド指定である。かつ、
2) 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、
3) キーフィールド、選択フィールド、再編成フィールド、または集約フィー
ルドを指定している。
58
V3.0L10
V6.0.0
PG61693
以下の条件のとき、PowerSORTが指定のエラーを検出できない問題を
修正しました。
1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい
る。かつ、
2) キーフィールドの指定を省略している。かつ、
3) BSRTPRIM構造体のkeyoptionにBS_CHARNUMを指定している。か
つ、
- 35 -
項番
発生V/L
修正V/L
現象
P番号
4) BSRTPRIM構造体のkeyoptionにBS_NUMERIC、またはkeyoption2に
BS_WCHRを指定している。
59
V3.0L10
V6.0.0
PG61694
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい
る。かつ、
2) キーフィールドの操作にBSOPT_Nを指定している。
60
V3.0L10
V6.0.0
PG61695
以下の条件のとき、PowerSORTが「キーフィールドの指定に誤りがありま
す.」、または「選択フィールドの指定に誤りがあります.」というメッセージ
を出力してエラー終了する問題を修正しました。
1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい
る。かつ、
2) キーフィールドの操作にBSOPT_LNを指定している。または、選択
フィールドの操作にBSOPT_Nを指定している。
61
V3.0L10
V6.0.0
PG62207
以下の条件のとき、1つのファイルに出力可能な最大ファイルサイズ、または
1つのファイルに出力可能な最大レコード数の指定によるファイルの分割
出力が正常に動作しないことがある問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) -outputオプションでmaxfilesizeオペランド、またはmaxrecnumオペラン
ドを指定している。かつ、
3) PowerSORTが用意した出力バッファ内に格納されているレコードを全
て出力したタイミングでファイルの分割が行われた。
62
V3.0L10
V6.0.0
PG62208
以下の条件のとき、PowerSORTが出力する「キーフィールド(※誤りのあ
るフィールド番号)の指定に誤りがあります.」というメッセージ内の“※誤
りのあるフィールド番号”が不適切である問題を修正しました。
1) テキストファイル浮動フィールド指定である。かつ、
2) 入力ファイルのレコード再編成機能を指定している。かつ、
3) 入力ファイルのレコード再編成機能の指定によりキーフィールドが存
在しないレコードとなる。
63
V3.0L10
V6.0.0
PG62209
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) 入力ファイルが標準入力である。かつ、
2) 入力ファイルのコード系がUnicode UCS-2形式である。
64
V3.0L10
V6.0.0
PG62210
以下の条件のとき、PowerSORTがメッセージを出力せずにエラー終了する
(注1)問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) テキストファイル浮動フィールド指定である。かつ、
3) レコード選択機能を指定している。かつ、
4) 選択フィールドのデータ形式に文字形式2桁年号(yyc)を指定してい
る。かつ、
5) 実際の選択フィールドのフィールド長が2バイト(注2)未満である。
注1) bsortexコマンドの終了コードが1となる。
注2) 入力ファイルのコード系がUnicode UCS-2形式の場合は4バイト未
満。
- 36 -
項番
発生V/L
修正V/L
P番号
現象
65
V3.0L10
V6.0.0
PG62211
以下の条件のとき、1つのファイルに出力可能な最大レコード数の指定に
よるファイルの分割出力が正常に動作しないことがある、または
「PowerSORTの処理で内部論理の矛盾を検出しました.(qha5term-72)」
というメッセージを出力してエラー終了することがある問題を修正しまし
た。
1) bsortexコマンドを使用している。かつ、
2) テキストファイル指定である。かつ、
3) -outputオプションでmaxrecnumオペランドを指定している。かつ、
4) 入力ファイル内にレコード分離文字だけのレコードが含まれる。
66
V4.0L10
V6.0.0
PG61376
以下の条件のとき、PowerSORTの出力結果が異常になる(ファイルの先
頭に余分なBOMが出力される)ことがある問題を修正しました。
1) マージ機能、またはコピー機能を指定している。かつ、
2) テキストファイル指定である。かつ、
3) 入力ファイルのコード系がUnicode系(UCS-2形式、またはUTF-8形式)
である。かつ、
4) 出力ファイルが標準出力である。
67
V4.0L10
V6.0.0
PG61377
以下の条件のとき、PowerSORTが「ファイル(※入力ファイル名)からのレ
コード入力中にエラー(※補足情報)が発生しました.」という不適切なエ
ラーメッセージ(注)を出力することがある問題を修正しました。
1) 入力ファイルのファイルシステムがシステムの標準ファイルシステムで
ある。かつ、
2) 入力ファイルが以下である。
- バイナリファイルの場合、ファイルサイズが指定したレコード長の倍数で
ない。
- テキストファイルの場合、指定したレコード長より長いレコードが存在す
る。
- テキストファイル、かつ入力ファイルのコード系がUnicode系(UCS-2形
式)の場合、レコード長が奇数であるレコードが存在する。
注) 補足情報が不適切
68
V4.0L10
V6.0.0
PG61696
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) テキストファイル浮動フィールド指定である。かつ、
2) レコード集約機能を指定している。かつ、
3) 集約フィールドの出力形式に'd'を指定している。
69
V4.0L10
V6.0.0
PG61697
以下の条件のとき、入力ファイルのBOMの存在に関わらず、入力ファイ
ルの先頭をBOMのバイト数分読み飛ばしてしまう問題を修正しました。
1) マージ機能、またはコピー機能を指定している。かつ、
2) テキストファイル指定である。かつ、
3) 入力ファイルのコード系がUnicode系(UCS-2形式、またはUTF-8形式)
である。かつ、
4) 入力ファイルが標準入力である。
70
V4.0L10
V6.0.0
PG62212
以下の条件のとき、PowerSORTの出力結果が異常になることがある問題
を修正しました。
1) bsortexコマンドを使用している。かつ、
- 37 -
項番
発生V/L
修正V/L
現象
P番号
2) マージ機能を指定している。かつ、
3) レコード集約機能を指定している。かつ、
4) 集約フィールドの出力形式を指定している。かつ、
5) -summaryオプションでfirstオペランドを指定している。
71
V4.0L10
V6.0.0
PG62213
以下の条件のとき、PowerSORTが「集約フィールド(※異常が検出された
フィールド番号)の内部に不適切なコードが発見されたため,集約処理を
中断します.」というメッセージを出力して集約処理を中断する問題を修
正しました。
1) テキストファイル浮動フィールド指定である。かつ、
2) レコード集約機能を指定している。かつ、
3) 集約フィールドの出力形式を指定している。かつ、
4) 集約処理の対象とならないレコードの集約フィールド内に空白、また
はタブが存在する。
72
V3.0L10
V6.0.0A
PG74094
以下の条件のとき、PowerSORTが「オプション(-P)の指定に誤りがありま
す.」というメッセージを出力してエラー終了する、または処理を返さない
ことがある問題を修正しました。
1) bsortコマンドを使用している。かつ、
2) 処理定義ファイルオプション(-P)を指定している。かつ、
3) 処理定義ファイルの"Keys="に漢字ソートマージ機能(Mで始まるキー
ワード)が指定されている、または、処理定義ファイルの"Keys="に不正な
指定がされている。
73
V3.0L10
V6.0.0A
PG76748
以下の条件のとき、PowerSORTが「ファイルシステムの指定に誤りがあり
ます。」(PowerSORT OCXの場合)、または「ファイルシステム
(F3BEBTRV.DLL)でエラーが発生しました.」(bsort/bsortexコマンド、
BSORT関数の場合)というメッセージを出力してエラー終了する問題を修
正しました。
1) PowerSORT OCXまたはBSORT関数でPowerSORTを呼び出すアプ
リケーションを作成している、または、bsortコマンド、bsortexコマンドをイン
ストールフォルダから他のフォルダへコピーまたはショートカットを作成し
ている。かつ、
2) PowerSORTインストールフォルダ内の"PROGRAM"フォルダのパス
が、環境変数PATHに含まれていない。かつ、
3) 入力ファイルシステムまたは出力ファイルシステムにBtrieveファイルシ
ステムを指定している。
74
V3.0L10
V6.0.0A
PG76750
以下の条件のとき、PowerSORTが「ファイルシステムの指定に誤りがあり
ます。」(PowerSORT OCXの場合)、または「ファイル(※ファイル名)のオー
プンでエラー(1)が発生しました.」(BSORT関数の場合)というメッセージ
を出力してエラー終了する問題を修正しました。
1) PowerSORT OCXまたはBSORT関数を使用してPowerSORTを呼び出
すアプリケーションを実行している。かつ、
2) Btrieve 6.15Jより新しいBtrieve製品(Pervasive製品)を利用している。
かつ、
3) 出力ファイルシステムにBtrieveファイルシステムを指定している。
75
V6.0.0
V6.0.0A
PG76059
以下の条件のとき、PowerSORTが実行結果誤り、無限ループ、または異
常終了することがある問題を修正しました。
- 38 -
項番
発生V/L
修正V/L
現象
P番号
1) bsortコマンド、bsortexコマンド、またはBSORT関数を使用している。か
つ、
2) ソート機能を指定している。かつ、
3) テキストファイルCSV形式またはテキストファイルTSV形式を指定して
いる。かつ、
4) レコード集約機能または出力ファイルのレコード選択機能を指定して
いる。かつ、
5) 集約フィールドまたは選択フィールドがダブルクォーテーションで囲ま
れている。
76
V6.0.0
V6.0.0A
PG76539
以下の条件のとき、PowerSORTが実行結果誤り、または異常終了するこ
とがある問題を修正しました。
1) bsortexコマンドを使用している。かつ、
2) テキストファイルCSV形式またはテキストファイルTSV形式を指定して
いる。かつ、
3) 出力ファイルのレコード再編成機能を指定している。
- 39 -
第2章 PowerSORTの概要
PowerSORTは、本格的な事務処理で使用できる高性能ソートマージ機能を実現するソフトウェアです。
PowerSORTには、ソート機能、マージ機能、およびコピー機能の主要機能と各種オプション機能があり、これらの機能を組み合わせる
ことでさまざまな処理を同時に使用できます。
2.1 主要機能
PowerSORTの代表的な機能には、ソート機能、マージ機能、およびコピー機能の3つがあります。PowerSORTでは、これら3つの機能
を主要機能と呼んでいます。
・ ソート機能
・ マージ機能
・ コピー機能
ソート機能
指定された1つ以上のキーフィールドにより昇順(0から9、AからZの順)、または降順(ZからA、9から0の順)にレコードを並び替える機能
です。
マージ機能
ソート済みの複数のファイルを併合する(まとめる)機能です。
コピー機能
1つ以上の入力ファイルを出力ファイルに複写する機能です。
2.2 オプション機能
PowerSORTには、以下のオプション機能があります。オプション機能は、主要機能と同時に指定します。
・ レコード選択機能
・ レコード再編成機能
・ レコード集約機能
・ サプレス機能
・ 先入力先出力(FIFO)機能
レコード選択機能
レコード選択機能とは、処理対象のレコードの選択方法を指定して、必要なレコードだけを選択する機能です。主要機能と組み合わ
せて使用します。この機能を使用する場合は、被比較フィールドと比較フィールドとの比較方法、または被比較フィールドと自己規定
値との比較方法を指定します。また、bsortexコマンドではレコード件数を選択条件とすることが可能です。
以下にレコード選択機能を使用した例を示します。
例
キーフィールド順にソートし、被比較フィールドと比較フィールドを比較します。被比較フィールドが比較フィールドより大きい値のレコー
ドを選択します。
- 40 -
レコード再編成機能
レコード再編成機能とは、フィールドの位置を変更したり、自己規定値をレコードに埋め込む機能です。主要機能と組み合わせて使用
します。この機能を使用する場合は、出力レコードの左端から順番にフィールドを指定します。入力レコードのフィールドの位置を変更
する場合はその位置と長さを、自己規定値を埋め込む場合はその自己規定値を指定します。
以下にレコード再編成機能を使用した例を示します。
例
キーフィールド順にソートし、再編成フィールド1、再編成フィールド2、および再編成フィールド3で再編成します。
レコード集約機能
レコード集約機能とは、同値のキーフィールドをもつレコードが複数あるファイル、またはレコード群をソート処理、またはマージ処理す
る際、集約フィールドの値を加算して1つのレコードにする機能です。ソート機能、またはマージ機能と組み合わせて使用します。コピー
機能、およびサプレス機能とは組み合わせて使用できません。また、先入力先出力(FIFO)機能と組み合わせた場合、先入力先出力(FIFO)
機能は無視されます。
以下にレコード集約機能を使用した例を示します。
例
キーフィールド順にソートし、同値のキーフィールドをもつレコードの集約フィールドを集約します。
- 41 -
サプレス機能
サプレス機能とは、同値のキーフィールドをもつレコードが複数あるファイル、またはレコード群をソート処理、またはマージ処理する
際、1つを残して他を削除する機能です。ソート機能、またはマージ機能と組み合わせて使用します。コピー機能、およびレコード集約
機能とは組み合わせて使用できません。また、先入力先出力(FIFO)機能と組み合わせた場合、先入力先出力(FIFO)機能は無視され
ます。
以下にサプレス機能を使用した例を示します。
例
キーフィールド順にソートし、同値のキーフィールドをもつレコードは1つを残して他を削除します。
先入力先出力(FIFO)機能
先入力先出力(FIFO)機能とは、同値のキーフィールドをもつレコードが複数あるファイル、またはレコード群をソート処理する際、先に
入力したレコードを先に出力する機能です。ソート機能と組み合わせて使用します。マージ機能、コピー機能、レコード集約機能、お
よびサプレス機能と組み合わせた場合、先入力先出力(FIFO)機能は無視されます。
以下に先入力先出力(FIFO)機能を使用した例を示します。
例
キーフィールド順にソートし、同値のキーフィールドをもつレコードは入力順に出力します。
- 42 -
2.3 オプション機能と主要機能の組合せ
オプション機能と主要機能の組合せの可否を以下に示します。
表2.1 オプション機能と主要機能の組合せの可否
オプション機能
主要機能
ソート機能
マージ機能
コピー機能
レコード選択機能
○
○
○
レコード再編成機能
○
○
○
レコード集約機能
○
○
×
サプレス機能
○
○
×
先入力先出力(FIFO)機能
○
-
-
○:組合せ可能
×:組合せ不可能
-:オプション機能の指定を無視します。
2.4 漢字ソートマージ機能
漢字ソートマージ機能は、漢字コードで表現された文字(日本語)を含むレコードを、文字の持つ属性に従って並べる機能です。
一般に漢字の読みは一意に決まらず、文字の属性(音読みや訓読み)だけでは使用者の意図どおり並ばないことがあります。このよう
な場合、キーフィールドに対する読みがレコード内にあれば、それらを参照して並べることができます。漢字ソートマージ機能では、レ
コード内の漢字コードで表現されたフィールドのことを漢字フィールド、それに対応する読みが入っているフィールドをふりがなフィー
ルドと呼びます。ふりがなフィールドは、ひらがな文字、およびカタカナ文字で表現します。
漢字ソートマージ機能で実現している並べ方には、基本方式と国語辞典方式の2つの方式があります。
2.4.1 基本方式
基本方式は、文字の属性に従って並べます。
各属性は“JEF文字コード索引辞書”に従っています。必要に応じて“JEF文字コード索引辞書”を参照してください。基本方式では、漢
字フィールドだけで並べることができます。
照合順序
基本方式の照合順序は、以下の属性によって決まります。属性は最大4つまで指定でき、指定した順序で並べます。
・ 総画数
総画数の小さいものから大きい順(またはその逆)に並べます。
- 43 -
・ 部首
部首の画数の小さいものから大きい順(またはその逆)に並べます。
・ 音読み
音読みの50音順(またはその逆)に並べます。
・ 訓読み
訓読みの50音順(またはその逆)に並べます。
・ コード
漢字コードの小さいものから大きい順(またはその逆)に並べます。
2.4.2 国語辞典方式
国語辞典方式は、国語辞典に採用されている読み(清音読み)を基本として並べます。
国語辞典方式では、漢字フィールドに加えてふりがなフィールドが必要となります。
照合順序
国語辞典方式の照合順序は以下のとおりです。なお、昇順に並べることを例として説明します。
1. ふりがなフィールドのかな文字を50音順に並べます。
例
あ→が→き→っ→ぱ→ゅ
2. ふりがなフィールドのかな文字を濁点や半濁点の付いていない文字、濁点の付いている文字、半濁点の付いている文字の順に
並べます。
例
は→ば→ぱ
フ→ブ→プ
3. ふりがなフィールドのかな文字を直音で表す文字、その小文字の順に並べます。
例
や→ゃ
ヨ→ョ
4. ふりがなフィールドのかな文字をひらがな、カタカナの順に並べます。
例
け→ケ
ゅ→ュ
5. 漢字フィールドに対する文字の属性の指定があれば、2.4.1 基本方式と同様の照合順序で並べます。
2.4.3 漢字ソートマージ機能の留意事項
漢字ソートマージ機能使用時の留意事項を以下に示します。
- 44 -
漢字フィールドに含まれる特殊文字の扱い
・ 漢字フィールド中の繰返し記号(々)は直前の文字に置き換えます。ただし、漢字フィールドの先頭に存在する場合は置き換えませ
ん。
・ 漢字フィールド内に1バイト系の文字が含まれていた場合には、その1バイト系の文字は無いものとして扱い、漢字コードの後に1バ
イト系の文字が現れた場合はその後のコードを無視します。
例
漢字フィールドが以下の文字列の場合、すべて“漢字”として処理します。
- 漢字
- abc漢字
- 漢字abc
- 漢字abc日本def
- abc漢字def日本
・ 文字の属性を取り出すことができなかったコード(たとえば、拡張漢字など)は空白として処理します。
ふりがなフィールドに含まれる特殊文字の扱い
・ ふりがなフィールド内の繰返し記号(ヽ、ゝ、ヾ、ゞ)は直前の文字に置き換えます。濁点付きの繰返し記号は直前の文字に濁点を付
けて置き換えます。また、ひらがな繰返しは直前の文字をひらがなとして置き換え、カタカナ繰返しは直前の文字をカタカナとして
置き換えます。
・ ふりがなフィールド内の長音記号(ー、―、-、-)は直前の文字の母音を表す文字に置き換えます。
・ ふりがなフィールド内の濁点(゛)は直前の文字に濁点を付けます。また、半濁点(゜)は直前の文字に半濁点を付けます。
・ 以上の文字は、直前の文字がない場合には空白に置き換えます。その他の文字(たとえば、数字、特殊文字など)はすべて空白に
置き換えます。
2.5 環境変数
環境変数を設定することにより、PowerSORTの省略値や動作条件を設定することができます。
以下に、PowerSORTで設定可能な環境変数を示します。なお、環境変数は実行時オプションの省略値、または補助情報となります。
PowerSORTの実行時に、対応するオプションの指定がある場合は、指定したオプションの値が環境変数より優先されます。
環境変数
意味
BSORT_CHKLEVEL
チェック機構の指定
BSORT_COBFSYS_MOD
E
富士通COBOLファイルシステムオプションの指定
BSORT_EVENTLOG
アプリケーションログへの出力指定
BSORT_FIFO
先入力先出力(FIFO)機能の指定
BSORT_MEMSIZE
作業域の大きさの指定
BSORT_MSGFILE
メッセージを出力するファイル名の指定
BSORT_MSGLEVEL
出力するメッセージ種別(レベル)の指定
BSORT_MSGOUT
メッセージの出力先の指定
BSORT_MSGSTYLE
メッセージの出力形式の指定
BSORT_RDM_EMPTY
0件のRDMファイルを入力した場合の処理方法の指定
BSORT_SIGNEDZERO
「+0」と「-0」を同値と判定するか否かの指定
- 45 -
環境変数
意味
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={N | E | W | I | YES | NO}
PowerSORTがアプリケーションログへ出力するメッセージの種別(レベル)を指定します。
指定値
意味
N
何も出力しません。(省略値)
E
エラーメッセージを出力します。
W
エラーメッセージ、および警告メッセージを出力します。
I
エラーメッセージ、警告メッセージ、および情報メッセージを出力します。
また、以下に示す以前のバージョンの指定値も指定可能です。
YESを指定すると、PowerSORTが検出した重大なエラー情報だけをアプリケーションログへ出力することができます。出力対象となる
メッセージは、PowerSORTが動作するために必要なメモリサイズが不足した場合、ファイルシステムがI/Oエラーを検出した場合、およ
び漢字ソートマージ機能でエラーを検出した場合に出力されるメッセージです。出力されるメッセージの詳細は、9.1.4 アプリケーショ
ンログへの出力メッセージを参照してください。
- 46 -
指定値
意味
YES
重大なエラー情報をアプリケーションログへ出力します。
NO
何も出力しません。(省略値)
BSORT_FIFO={ON | OFF}
先入力先出力(FIFO)機能を指定します。
指定値
意味
ON
指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。ソー
ト機能のときに有効です。マージ機能、コピー機能、レコード集約機能、およびサプレス
機能と組み合わせた場合、先入力先出力(FIFO)機能の指定は無視されます。
OFF
指定したキーフィールドの値が同一なレコードの出力順は不定です。(省略値)
BSORT_MEMSIZE=n
PowerSORTが使用する作業域の大きさ(メモリサイズ)をキロバイト数で指定します。
メモリサイズは32~2097151キロバイトの範囲で指定します。0を指定した場合、または環境変数BSORT_MEMSIZEの指定を省略した
場合は、メモリサイズは自動的に設定されます。2097152以上の値を指定した場合は、2097151を指定したとみなされます。
メモリサイズは入力データ量の1/50以上とすることをお薦めします。ただし、入力データ量の1/50が8192キロバイト未満の場合は、8192
キロバイトとすることをお薦めします。
BSORT_MSGFILE=メッセージ出力ファイル名
PowerSORTが出力するメッセージを格納するファイルパス名を指定します。
ファイル名に空白を含む場合も、ファイル名をダブルクォーテーション( " )で囲む必要はありません。
BSORT_MSGLEVEL={N | E | W | I | 0 | 1 | 2}
PowerSORTが出力するメッセージの種別(レベル)を指定します。
指定値
意味
N
何も出力しません。
E
エラーメッセージを出力します。
W
エラーメッセージ、および警告メッセージを出力します。(省略値)
I
エラーメッセージ、警告メッセージ、および情報メッセージを出力します。
また、以前のバージョンとの互換用として、以下の種別(レベル)も指定できます。
指定値
意味
0
何も出力しません。
1
エラーメッセージ、および警告メッセージを出力します。(省略値)
2
エラーメッセージ、警告メッセージ、および情報メッセージを出力します。
BSORT_MSGOUT={STDOUT | STDERR}
情報メッセージ、警告メッセージ、およびエラーメッセージの出力先を指定します。
指定値
STDOUT
意味
警告メッセージ、およびエラーメッセージを標準出力に出力します。情報メッセージは標
準出力に出力されません。
メッセージファイルの指定がある場合は、警告メッセージ、およびエラーメッセージを標
- 47 -
指定値
意味
準出力に出力するとともに、情報メッセージ、警告メッセージ、およびエラーメッセージを
メッセージファイルに出力します。
STDERR
情報メッセージ、警告メッセージ、およびエラーメッセージを標準エラー出力に出力しま
す。
メッセージファイルの指定がある場合は、警告メッセージ、およびエラーメッセージを標
準エラー出力に出力するとともに、情報メッセージ、警告メッセージ、およびエラーメッ
セージをメッセージファイルに出力します。(省略値)
以下にPowerSORTの出力ファイルに標準出力を指定し、処理結果をリダイレクトして別ファイルに出力した場合の例を示します。
例
例1) 環境変数BSORT_MSGOUTにSTDOUTを指定した場合のエラーメッセージ、情報メッセージ、および処理結果の出力先は以下
のようになります。
PowerSORTの動作
警告メッセージ、およびエラー
メッセージ
情報メッセージ
処理結果
正常終了
なし
なし
リダイレクトされたファイル
異常終了
リダイレクトされたファイル
なし
なし
例2) 環境変数BSORT_MSGOUTにSTDERRを指定した場合のエラーメッセージ、情報メッセージ、および処理結果の出力先は以下
のようになります。
PowerSORTの動作
警告メッセージ、およびエラー
メッセージ
情報メッセージ
処理結果
正常終了
なし
画面(標準エラー出力)
リダイレクトされたファイル
異常終了
画面(標準エラー出力)
画面(標準エラー出力)
なし
BSORT_MSGSTYLE={1 | 2}
メッセージの出力形式を指定します。
指定値
意味
1
メッセージ本文だけを出力します。
以前のバージョンで出力されていた形式です。
2
メッセージ種別、日時、メッセージ番号、およびメッセージ本文を出力します。(省略値)
BSORT_RDM_EMPTY={CONTINUE | ERROR}
0件のRDMファイルを入力した場合の処理方法を指定します。
指定値
意味
CONTINUE
格納レコード件数が0件のRDMファイルを入力した場合、0件のレコードを入力したもの
として処理を継続します。この場合、格納レコード0件の出力ファイルが作成されます。
ERROR
格納レコード件数が件のRDMファイルを入力した場合、入力処理でエラーとします。こ
の場合、出力ファイルは作成されません。(省略値)
BSORT_SIGNEDZERO={EFFECT | IGNORE}
「+0」と「-0」を表現できるデータ形式において、「+0」と「-0」を同値と判定するか否かを指定します。
- 48 -
指定値
意味
EFFECT
「+0」と「-0」を同値と判定しません。
IGNORE
「+0」と「-0」を同値と判定します。(省略値)
参考
・ この指定の影響を受ける「+0」と「-0」を表現できるデータ形式を以下に示します。
- 内部10進数
- 外部10進数
- 前置別符号付数字
- 後置別符号付数字
- 前置オーバパンチ符号付数字
- 後置オーバパンチ符号付数字
- テキストファイルのとき、キーフィールド、および選択フィールドの操作としてn(BSOPT_NUMERIC)を指定した場合、またはキー
フィールドの操作としてN(BSOPT_CHARNUM)を指定した場合
・ EFFECTを指定した場合、「+0」と「-0」の大小関係は、「+0」>「-0」となります。
・ 以前のバージョンでは、EFFECTの指定で動作していました。
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システムのフォルダ
- 49 -
BSORT_TOPYY=yy
2桁年号データ形式を使ってソートマージ処理する場合に、並替えのしきい値を設定します。
ここで指定したyy年が最小値となります。たとえば、BSORT_TOPYY=60とした場合、最小値が60、最大値が59となり、年号データを下
2桁で並べた場合は、1960年から2059年の順に大小関係が決定します。省略値は60です。キーフィールド、および選択フィールドの
データ形式として2桁年号データ形式を指定した場合に有効となります。
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を付加します。
指定値
意味
ON
BOMを読み飛ばします。ただし、先頭がBOMでない場合は読み飛ばしません。入力ファ
イルの先頭にBOMが存在する場合にレコードからBOMを除外することができます。(省
略値)
OFF
BOMを読み飛ばしません。
2.6 PowerSORTの入出力環境
PowerSORTの入出力の対象となるファイル種別について説明します。
2.6.1 対象となるファイル種別
PowerSORTでは、以下のファイルを使用できます。
テキストファイル
文字列データ、改行コード、およびEOFコードで構成されたシステムの標準ファイルシステム上の文書ファイルです。
バイナリファイル
文字列や16進データによる、長さが一定のレコード(固定長レコード形式)で構成されているシステムの標準ファイルシステム上のファ
イルです。
富士通COBOL順編成、索引、相対ファイル
富士通のNetCOBOL、PowerCOBOL97、COBOL97、およびCOBOL85などでサポートしているファイル形式で、それぞれに固定長レ
コード形式、可変長レコード形式があります。PowerSORTはBSAMに対応した富士通COBOL順編成ファイルにも対応しています。BSAM
に対応した富士通COBOL順編成ファイルについては富士通COBOLファイルシステム(BSAM対応順ファイル)に関する留意事項を参
照してください。
Micro Focus COBOL順編成、索引、相対ファイル
Micro Focus COBOLでサポートしているファイル形式で、それぞれに固定長レコード形式、可変長レコード形式があります。
- 50 -
Btrieveファイル
Btrieveで取り扱うファイルで、固定長レコード形式と可変長レコード形式があります。
RDMファイル
PowerRW+でサポートしているファイル形式で、固定長レコード形式で構成されているファイルです。
2.6.2 入力と出力のファイル種別の組合せについて
入力と出力のファイル種別は、以下の組合せの範囲で異なるファイル種別を指定できます。
レコード形式は、入力ファイルのレコード形式が出力ファイルのレコード形式となり、変更することはできません。
入力ファイル種別
出力ファイル種別
テキストファイル
テキストファイル
バイナリファイル
バイナリファイル
富士通COBOL順編成、索引、相対ファイル
Micro Focus COBOL順編成、相対ファイル
Btrieveファイル
RDMファイル
上記以外のファイル
バイナリファイル(入力ファイルのレコード形式が固定長レ
コード形式の場合のみ)
富士通COBOL順編成、索引、相対ファイル
Micro Focus COBOL順編成、相対ファイル
Btrieveファイル
RDMファイル(入力ファイルのレコード形式が固定長レコー
ド形式の場合のみ)
注意
・ データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイルに指定することはできません。
・ 出力ファイルにMicro Focus COBOLファイルシステムの索引ファイルを指定することはできません。
・ Btrieveファイルは、bsortコマンド、およびbsortexコマンドでは出力ファイルとして指定することはできません。
・ PowerSORTで扱うことのできる最大ファイルサイズは、各ファイルシステムの制限値までとなっています。各ファイルシステムの制
限値については、各ファイルシステムのマニュアルを参照してください。
2.7 フィールドとデータ形式
ここでは、PowerSORTを使用するためのフィールドの種類、フィールドの指定方法、およびそれぞれのフィールドに指定できるデータ
形式について説明します。
2.7.1 フィールドの種類
フィールドの種類には、ソート機能、およびマージ機能で使用するキーフィールド、レコード集約機能で使用する集約フィールド、レ
コード選択機能で使用する選択フィールド(被比較フィールド、および比較フィールド)、およびレコード再編成機能で使用する再編成
フィールドがあります。
キーフィールド
キーフィールドは、レコードの大小関係を決めるために使用するレコード中のフィールドです。フィールドの位置、長さ、データ形式と
操作方法の情報からなっています。
- 51 -
集約フィールド
集約フィールドは、レコード集約機能で使用する、数値を加算するためのフィールドです。集約フィールドは、フィールドの位置、長さ、
データ形式、および出力形式の情報からなっています。
選択フィールド
選択フィールドは、レコード選択機能で使用するフィールドです。選択フィールドには、被比較フィールド、および比較フィールドがあり
ます。
レコード中の2つのフィールドを比較する場合は、先に指定したフィールドを被比較フィールド、後に指定したフィールドを比較フィール
ドといいます。レコード中のフィールドと自己規定値を比較する場合は、先に指定したフィールドを被比較フィールドといいます。
被比較フィールドは、レコード中のフィールドの位置、長さ、データ形式と操作方法の情報からなっています。比較フィールドは、レコー
ド中のフィールドの位置、長さとデータ形式の情報からなっています。自己規定値は、10進数の定数、または16進数や文字列で表さ
れる文字列定数です。
再編成フィールド
再編成フィールドは、レコード再編成機能で指定する入力、または出力レコード中のフィールドです。レコード中のフィールドの位置と
長さの情報からなっています。
再編成フィールドには、レコード再編成機能で使用する10進数の定数、または16進数や文字列で表される文字列定数を自己規定値
として指定できます。レコード再編成機能では、任意の数字や文字をレコードに埋め込むときに自己規定値を使用します。
2.7.2 フィールドの指定方法
フィールドの指定方法には、固定フィールド指定、および浮動フィールド指定があります。
固定フィールド指定
固定フィールド指定は、レコードの先頭からのバイト位置によって区分されるフィールドの指定方法です。
フィールドの位置は全レコードで共通です。
浮動フィールド指定
浮動フィールド指定は、フィールド分離文字によって区分されるフィールドの指定方法です。
テキストファイルのときに指定できます。フィールド分離文字の位置によってフィールドの位置が決定されるため、レコードごとにフィー
ルドの位置は異なります。浮動フィールド指定には、以下に示す3つの形式があります。
・ テキストファイル浮動フィールド指定の形式
任意のフィールド分離文字を指定可能で、フィールドを囲むダブルクォーテーションを考慮しません。
・ テキストファイルCSV形式
コンマをフィールド分離文字とし、フィールドを囲むダブルクォーテーションを考慮します。
・ テキストファイルTSV形式
タブをフィールド分離文字とし、フィールドを囲むダブルクォーテーションを考慮します。
注意
・ テキストファイル浮動フィールド指定の注意事項
- フィールドの先頭のダブルクォーテーション( " )も、フィールドを囲むダブルクォーテーション( " )として扱いません。
- キーフィールド、集約フィールド、選択フィールド、および再編成フィールドに、フィールド分離文字、およびレコード分離文字
を含むことはできません。
- フィールド分離文字の指定を省略した場合は、空白とタブがフィールド分離文字となります。フィールド分離文字の指定を省略
し、空白が連続している場合は、最初の空白がフィールド分離文字となり、残りの空白はフィールドの一部とみなして動作しま
す。
例) 空白が連続している場合(フィールド分離文字の指定を省略)
- 52 -
field1□□□field2□field3
2番目のフィールドは「□□field2」となります。なお、「□」は空白を意味します。
- フィールド分離文字を指定した場合は、フィールド分離文字が連続すると空フィールドが存在するとみなして処理します。
例) 2番目のフィールドが空フィールドの場合(「;」をフィールド分離文字として指定)
field1;;field3
- 自己規定値にフィールド分離文字、およびレコード分離文字を含むことはできません。
・ テキストファイルCSV形式の注意事項
- ダブルクォーテーション( " )で囲まれたフィールド中にレコード分離文字、およびフィールド分離文字(コンマ)が含まれている
場合、フィールドのデータとして扱います。なお、ダブルクォーテーション( " )で囲まれているとは、先頭がダブルクォーテーション
( " )で始まるフィールドで、囲みの終わりを表すダブルクォーテーション( " )までの範囲を指します。
例1) 2番目のフィールドがダブルクォーテーションで囲まれているレコード
field1,"field2",field3
2番目のフィールドの値は「field2」となります。
例2) 2番目のフィールドの途中までがダブルクォーテーションで囲まれているレコード
field1,"field2"data,field3
2番目のフィールドの値は「field2data」となります。
例3) 2番目のフィールドがダブルクォーテーションで囲まれているレコード
field1,"field2,field2",field3
2番目のフィールドの値は「field2,field2」となります。
- ダブルクォーテーション( " )で囲まれたフィールド内のダブルクォーテーション( " )は2つ連続している必要があります。
例) 2番目のフィールドにダブルクォーテーションを含む場合
field1,"field2""field2",field3
2番目のフィールドの値は「field2"field2」となります。
- フィールド分離文字(コンマ)が連続した場合は、空フィールドが存在するとみなして処理します。また、ダブルクォーテーション
( " )が2つ連続するだけのフィールドは、空フィールドとして処理します。
例1) 2番目のフィールドが空フィールドの場合(ダブルクォーテーションで囲まれていない)
field1,,field3
例2) 2番目のフィールドが空フィールドの場合(ダブルクォーテーションで囲まれている)
field1,"",field3
- 自己規定値で指定したフィールド分離文字(コンマ)、レコード分離文字、およびダブルクォーテーション( " )は、フィールドの
データとして扱います。
例1) 自己規定値にフィールド分離文字(コンマ)を含む場合
自己規定値:
self,char
↓
実際のデータ: "self,char"
- 53 -
例2) 自己規定値にダブルクォーテーション( " )を含む場合
自己規定値:
self"char
↓
実際のデータ: "self""char"
・ テキストファイルTSV形式の注意事項(各注意事項に関する例はテキストファイルCSV形式を参照してください)
- ダブルクォーテーション( " )で囲まれたフィールド中にレコード分離文字、およびフィールド分離文字(タブ)が含まれている場
合、フィールドのデータとして扱います。なお、ダブルクォーテーション( " )で囲まれているとは、先頭がダブルクォーテーション
( " )で始まるフィールドで、囲みの終わりを表すダブルクォーテーション( " )までの範囲を指します。
- ダブルクォーテーション( " )で囲まれたフィールド内のダブルクォーテーション( " )は2つ連続している必要があります。
- フィールド分離文字(タブ)が連続した場合は、空フィールドが存在するとみなして処理します。また、ダブルクォーテーション( " )
が2つ連続するだけのフィールドは、空フィールドとして処理します。
- 自己規定値で指定したフィールド分離文字(タブ)、レコード分離文字、およびダブルクォーテーション( " )は、フィールドのデー
タとして扱います。
2.7.3 データ形式
ここでは、データ形式の概要を示します。
データ形式には、以下の3つの種類があり、それぞれの種類ごとに型があります。
・ 文字
・ 数値
・ 数字
2.7.3.1 文字
文字の型には、以下の7つの型があります。
・ ASCIIコード
・ EBCDICコード
・ シフトJISコード
・ JEFコード
・ Unicode
・ 文字形式2桁年号
・ 照合順序変更
ASCIIコード
文字を8ビット透過なコード順に比較します。
複数バイト文字が混在している場合は、オプションを指定することによって文字ごとに比較します。
ASCIIコード、シフトJISコード、および8単位カナコード(半角カナ)を処理できます。漢字ソートマージ機能の漢字フィールド、およびふ
りがなフィールドとしても指定可能です。
入力ファイルのコード系がEBCDICコード系の場合、ASCIIコード順に並べます。
EBCDICコード
EBCDIC文字を8ビット透過なコード順に比較します。
漢字ソートマージ機能のふりがなフィールドとしても指定可能です。
入力ファイルのコード系がASCIIコード系の場合、EBCDICコード順に並べます。
- 54 -
シフトJISコード
シフトJISコードを文字ごとに比較します。
漢字ソートマージ機能の漢字フィールド、およびふりがなフィールドとしても指定可能です。
JEFコード
富士通の汎用計算機で用いられている日本語コードです。
文字を16ビット透過なコード順に並べます。
漢字ソートマージ機能の漢字フィールド、およびふりがなフィールドとしても指定可能です。
Unicode
世界中の文字を統一的に記述できる国際的な文字コードです。
PowerSORTでは、以下の2つの形式をサポートしています。
・ UCS-2形式
1文字を2バイトで表現する形式です。
UCS-2、およびUTF-16を処理できます。
・ UTF-8形式
1文字を1~6バイトの可変長のバイトで表現する形式です。
PowerSORTでは、1~3バイトまでをサポートしています。
文字形式2桁年号
環境変数BSORT_TOPYYの指定値に従って、2桁の数字を2桁年号として比較します。
照合順序変更
与えられた照合順序の情報に従って、1バイトの文字を他の文字に置き換えて比較します。
2.7.3.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桁年号
- 55 -
符号なし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という呼び名で知られています。
システム依存形式符号なし固定小数点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ビットで表す符号の位置(S)に、正、または負のコード以外が現れた場合、正の符号として扱います。
符号なし内部10進数
PowerSORTでは、以下の2つの形式をサポートしています。
- 56 -
・ 符号なし内部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ビットで表す符号の位置(S)に、正、または負のコード以外が現れた場合、正の符号として扱います。
符号なし外部10進数
1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した符号部をもたない10進数の表現形式です。
3x
3x
…
3x
3x
3:0x3
x:0x0~0x9
外部10進形式2桁年号
環境変数BSORT_TOPYYの指定値に従って、2バイトの外部10進数を2桁年号として比較します。
内部10進形式2桁年号
環境変数BSORT_TOPYYの指定値に従って、2バイトの内部10進数を2桁年号として比較します。
10進形式2桁年号
環境変数BSORT_TOPYYの指定値に従って、1バイトの符号なし内部10進数を2桁年号として比較します。
注意
ここで記載しているデータ形式の図は、入力ファイルのコード系がASCIIコード系(富士通COBOL形式)の場合の形式です。
2.7.3.3 数字
数字の型には、以下の5つのデータ形式があります。
- 57 -
・ 符号なし数字
・ 前置別符号付数字
・ 後置別符号付数字
・ 前置オーバパンチ符号付数字
・ 後置オーバパンチ符号付数字
符号なし数字
符号なし外部10進数と同じ形式です。
前置別符号付数字
先頭の1バイトに符号部をもった、1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現
形式です。
SS
3x
…
3x
3x
3:0x3
x:0x0~0x9
SS:[正の場合]0x2b
[負の場合]0x2d (注)
注) 8ビットで表す符号の位置(SS)に、正、または負のコード以外が現れた場合、正の符号として扱います。
後置別符号付数字
最後の1バイトに符号部をもった、1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現
形式です。
3x
3x
…
3x
SS
3:0x3
x:0x0~0x9
SS:[正の場合]0x2b
[負の場合]0x2d (注)
注) 8ビットで表す符号の位置(SS)に、正、または負のコード以外が現れた場合、正の符号として扱います。
前置オーバパンチ符号付数字
1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現形式です。
先頭の1バイトには、符号と数字を格納します。
Sx
3x
…
3x
3x
3:0x3
x:0x0~0x9
S:[正の場合]0x4
[負の場合]0x5 (注)
注) 4ビットで表す符号の位置(S)に、正、または負のコード以外が現れた場合、正の符号として扱います。
後置オーバパンチ符号付数字
外部10進数と同じ形式です。
- 58 -
注意
ここで記載しているデータ形式の図は、入力ファイルのコード系がASCIIコード系(富士通COBOL形式)の場合の形式です。
2.7.4 各フィールドで指定可能なデータ形式
ここでは、各フィールドに指定できるデータ形式とその長さについて説明します。
・ キーフィールドに指定可能なデータ形式
・ 集約フィールドに指定可能なデータ形式
・ 選択フィールドに指定可能なデータ形式
- 被比較フィールドと比較フィールドに指定可能なデータ形式
- 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ
- 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ
・ 再編成フィールドの自己規定値に指定可能なデータ形式
2.7.4.1 キーフィールドに指定可能なデータ形式
以下に、キーフィールドで指定できるデータ形式とその長さを示します。
表中のtypは、bsortコマンド、bsortexコマンド、およびPowerSORT OCXで指定する場合に使用し、定義値は、BSORT関数で使用しま
す。
表2.2 バイナリファイルの場合
種類
文字
数値
型
typ
定義値
長さ(バイト)
ASCIIコード
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_UCS2
B
2~レコード長(注1)
(2の倍数)
Little endian
―
BSKEY_UCS2
L
2~レコード長(注1)
(2の倍数)
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
fbl
BSKEY_FBL8
6
1~256
ufl
BSKEY_UFB8
6
1~256
fbm
BSKEY_FBIM
1~256
8086形式固定小数点2進数
8086形式符号なし固定小数点2進数
システム依存形式固定小数点2進数
- 59 -
種類
型
システム依存形式符号なし固定小数点2進数
数字
定義値
typ
長さ(バイト)
ufm
BSKEY_UFB
M
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
表2.3 テキストファイルの場合
種類
文字
型
定義値
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_UCS2
B
2~レコード長(注1)
(2の倍数)
Little endian
―
BSKEY_UCS2
L
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バイトとなります。
注8) PowerSORT OCX使用時は指定できません。
注9) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。
- 60 -
注10) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。
2.7.4.2 集約フィールドに指定可能なデータ形式
以下に、集約フィールドで指定できるデータ形式とその長さを示します。
表中のtypは、bsortコマンド、bsortexコマンド、およびPowerSORT OCXで指定する場合に使用し、定義値は、BSORT関数で使用しま
す。
表2.4 バイナリファイルの場合
種類
数値
型
長さ(バイト)
固定小数点2進数
fbi
BSKEY_FBI
1~8
符号なし固定小数点2進数
ufb
BSKEY_UFB
1~8
8086形式固定小数点2進数
fbl
BSKEY_FBI86
1~8
ufl
BSKEY_UFB8
6
1~8
fbm
BSKEY_FBIM
1~8
ufm
BSKEY_UFB
M
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
8086形式符号なし固定小数点2進数
システム依存形式固定小数点2進数
システム依存形式符号なし固定小数点2進数
数字
(注2)
定義値
typ
表2.5 テキストファイルの場合
種類
文字
型
定義値
typ
長さ(バイト)
ASCIIコード(注3)
asc
BSKEY_ASC
1~(注4)
Unicode UCS-2形式(注5)
(システム標準のバイトオーダー)
uc2
BSKEY_UCS2
2~(注4)
(2の倍数)
Big endian
―
BSKEY_UCS2
B
2~256
(2の倍数)
Little endian
―
BSKEY_UCS2
L
2~256
(2の倍数)
ut8
BSKEY_UTF8
1~(注4)
Unicode UTF-8形式(注6)
注1) PowerSORT OCX使用時は指定できません。
注2) bsortexコマンド使用時に指定できます。
注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。
注4) bsortコマンド、PowerSORT OCX、およびBSORT関数使用時は256バイトまで、bsortexコマンド使用時はレコード長まで指定でき
ます。ただし、入力ファイルのレコード再編成機能を指定した場合は、入力ファイルのレコード再編成後のレコード長まで指定できま
す。
注5) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。
- 61 -
注6) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。
2.7.4.3 選択フィールドに指定可能なデータ形式
レコード選択機能で指定する選択フィールドは、被比較フィールド、比較フィールドまたは自己規定値、および比較演算子からなって
います。
ここでは、被比較フィールド、および比較フィールドに指定可能なデータ形式と、指定可能なデータ形式の組合せについて示します。
・ 被比較フィールドと比較フィールドに指定可能なデータ形式
・ 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ
・ 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ
被比較フィールドと比較フィールドに指定可能なデータ形式
以下に、被比較フィールドと比較フィールドで指定できるデータ形式とその長さを示します。
表中のtypは、bsortコマンド、bsortexコマンド、およびPowerSORT OCXで指定する場合に使用し、定義値は、BSORT関数で使用しま
す。
表2.6 バイナリファイルの場合
種類
文字
数値
データ形式
定義値
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_UCS2
B
2~256
(2の倍数)
Little endian
―
BSKEY_UCS2
L
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
fbl
BSKEY_FBI8
6
1~256
ufl
BSKEY_UFB8
6
1~256
fbm
BSKEY_FBIM
1~256
ufm
BSKEY_UFB
M
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
8086形式固定小数点2進数
8086形式符号なし固定小数点2進数
システム依存形式固定小数点2進数
システム依存形式符号なし固定小数点2進数
- 62 -
種類
数字
データ形式
定義値
typ
長さ(バイト)
外部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
表2.7 テキストファイルの場合
種類
文字
データ形式
定義値
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_UCS2
B
2~256
(2の倍数)
Little endian
―
BSKEY_UCS2
L
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形式)の場合に指定できます。
被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ
以下に、被比較フィールドと比較フィールドで指定できるデータ形式の組合せを示します。
表2.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)
- 63 -
種類
数値
被比較フィールドのデータ形式
比較フィールドのデータ形式
Unicode UTF-8形式
Unicode UTF-8形式
文字形式2桁年号
文字形式2桁年号
内部10進形式2桁年号
外部10進形式2桁年号
10進形式2桁年号
照合順序変更
照合順序変更
符号なし2進数
符号なし2進数
固定小数点2進数
固定小数点2進数
8086形式固定小数点2進数
システム依存形式固定小数点2進数
符号なし固定小数点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進数(符号部なし)
- 64 -
種類
被比較フィールドのデータ形式
比較フィールドのデータ形式
外部10進数
符号なし外部10進数
数字
内部10進形式2桁年号
文字形式2桁年号
内部10進形式2桁年号
外部10進形式2桁年号
10進形式2桁年号
外部10進形式2桁年号
文字形式2桁年号
内部10進形式2桁年号
外部10進形式2桁年号
10進形式2桁年号
10進形式2桁年号
文字形式2桁年号
内部10進形式2桁年号
外部10進形式2桁年号
10進形式2桁年号
符号なし数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
前置別符号付数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
後置別符号付数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
前置オーバパンチ符号付数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
後置オーバパンチ符号付数字
符号なし数字
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
表2.9 テキストファイルの場合
種類
文字
被比較フィールドのデータ形式
比較フィールドのデータ形式
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形式
- 65 -
種類
被比較フィールドのデータ形式
比較フィールドのデータ形式
文字形式2桁年号
文字形式2桁年号
照合順序変更
照合順序変更
被比較フィールドと自己規定値に指定可能なデータ形式の組合せ
以下に、被比較フィールドと自己規定値で指定できるデータ形式の組合せを示します。
表2.10 バイナリファイルの場合
被比較フィールドのデータ形式
種類
文字
数値
数字
自己規定値
型
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進数
表2.11 テキストファイルの場合
被比較フィールドのデータ形式
種類
文字
自己規定値
型
文字列、16進数
ASCIIコード
- 66 -
被比較フィールドのデータ形式
種類
自己規定値
型
シフトJISコード
文字列
Unicode UCS-2形式
文字列、16進数
Unicode UTF-8形式
文字列、16進数
文字形式2桁年号
文字列、16進数、10進数
照合順序変更
文字列、16進数
2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式
以下に、再編成フィールドの自己規定値で指定できるデータ形式とその長さを示します。
表中のtypは、bsortコマンド、bsortexコマンド、およびPowerSORT OCXで指定する場合に使用します。
表2.12 バイナリファイルの場合
自己規定値
文字列
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
- 67 -
表2.13 テキストファイルの場合
自己規定値
文字列
16進数
型
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の倍数)
Unicode UTF-8形式(注6)
ut8
1~256
注1) 入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。
注2) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。
注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。
注4) PowerSORT OCX使用時は指定できません。
注5) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。
注6) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。
2.8 環境設定
ここでは、PowerSORTが使用する作業域(メモリ)、および一時ファイル量の見積もりについて説明します。
2.8.1 PowerSORTが使用する作業域(メモリ)の見積もり
PowerSORTは、指定された範囲内の作業域を使用して処理を行ないます。
指定が省略された場合は、次のように作業域の大きさを決定します。
・ 入力がファイルの場合は、PowerSORTが適切な作業域を計算して使用します。
・ 入力がファイル以外の場合、または標準入力の場合は、8MBの作業域を使用します。
割り当てた作業域内にすべての入力レコードが読み込めた場合、一時ファイルを使用せずに作業域内だけでソート処理を完了します
(これをインコアソートといいます)。インコアソートは、一時ファイルへの入出力がないことなどから一般に処理時間が短くなります。この
ため、入力レコードの量に合わせて適切な作業域の大きさを指定することで、処理時間の短縮が可能です。ただし、作業域の大きさ
の指定には次のような注意が必要です。
・ インコアソートを行うためには、入力レコードの全体量に対して少し多めの作業域(1.3倍程度。ただし、キーの種類、使用する機能
などにより大きくなる場合があります)を指定します。
・ 使用可能な物理メモリ量を超えて作業域を指定すると、性能が悪化することがあるため、使用可能な物理メモリ量を超えないように
指定します。
参照
・ 環境変数BSORT_MEMSIZE
・ メモリサイズオプション(-y)
・ 実行環境オプション(-option)のmemsizeオペランド
・ bsrtopen関数におけるBSRTPRIM構造体のmemory_size
- 68 -
2.8.2 PowerSORTが使用する一時ファイル量の見積もり
PowerSORTは、ソート処理を行う際に一時ファイルを作成します。
作成する一時ファイル量の概算式を以下に示します。なお、PowerSORTの作業域が入力データ量に対して充分与えられなかった場
合、オプション機能を使用している場合、または漢字ソートマージ機能を使用している場合には、以下の概算式を超えることがありま
す。このため、一時ファイルを作成するフォルダには、充分な空きスペースのあるフォルダを指定してください。
一時ファイル量=(管理領域+キー長+レコード長)×レコード件数
・ 管理領域
PowerSORTの管理領域(固定値12)。
・ キー長
指定した各キーフィールドの長さを4の倍数に調整した値の総計
・ レコード長
指定したレコード長を4の倍数に調整した値
・ レコード件数
入力レコード件数
参照
・ 環境変数BSORT_TMPDIR
・ 実行環境オプション(-option)のtmpdirオペランド
・ bsrtopen関数におけるBSRTFILE構造体のtmpfile_tbl
- 69 -
第3章 PowerSORTの使い方
ここでは、PowerSORTの実行方法について説明します。
PowerSORTの実行方法には、以下の方法があります。
・ コマンド(bsortコマンド、bsortexコマンド)を使用する方法
・ OCXを使用してPowerSORTを使用する方法
・ COBOLプログラムから使用する方法
・ C言語プログラムから使用する方法
3.1 コマンド(bsortコマンド、bsortexコマンド)を使用する方法
サーバで行うバッチ処理などにコマンドを組み込んで、PowerSORTを使用することができます。
コマンドには、bsortコマンド、およびbsortexコマンドがあります。bsortexコマンドは、bsortコマンドを拡張したコマンドです。
詳細は、第4章 PowerSORTのbsortコマンドを使用する、および第5章 PowerSORTのbsortexコマンドを使用するを参照してください。
bsortコマンドとbsortexコマンドの機能差について
bsortexコマンドは、bsortコマンドの機能を拡張したコマンドです。
bsortexコマンドだけで可能な機能は以下のとおりです。ただし、処理定義ファイルオプション(-P)は、bsortコマンドだけで使用できる機
能です。この機能を使用する場合は、bsortコマンドを使用してください。
・ ファイルの分割出力機能(-outputオプションのmaxfilesizeオペランド、maxrecnumオペランド)
出力するデータを複数のファイルへ分割して出力できます。ひとつのファイルに出力する大きさは、ファイルサイズやレコード件数
で指定できます。
・ 出力ファイルに対する選択機能(-outputオプションのincludeオペランド、omitオペランド、caseオペランド)
出力ファイルごとに出力するレコードの条件を指定して、条件別にファイルを分けて出力できます。
・ 出力ファイルに対する再編成機能(-outputオプションのreconstオペランド)
入力時点のレコード再編成に加えて、出力ファイルへレコードを書き込む直前にもレコード再編成ができます。
・ レコード集約機能、およびサプレス機能における特定レコード出力機能(-summaryオプション)
レコード集約機能、およびサプレス機能では、キー値の等しい複数レコードの先頭レコード、または最終レコードに結果を残すこと
ができます。
・ EOF制御文字をファイルの最後と認識する機能(-inputオプションのeofオペランド)
入力ファイルがテキストファイルの場合、EOF制御文字をファイルの最後と認識するか否かを指定することができます。
3.2 OCXを使用してPowerSORTを使用する方法
PowerSORT OCXをフォームに配置して必要なプロパティを設定することにより、PowerSORTを使用することができます。
PowerSORT OCXは、デザイン時にはフォーム上に表示され、実行時には非表示となります。
詳細は、第6章 PowerSORT OCXからPowerSORTを使用するを参照してください。
注意
PowerSORT OCXを使ってソートマージ処理を行うには、PowerSORTがインストールされている必要があります。
- 70 -
3.3 COBOLプログラムから使用する方法
富士通のNetCOBOL、PowerCOBOL97、COBOL97、およびCOBOL85などで作成したCOBOLプログラムからPowerSORTを使用する
ことができます。
詳細は、第7章 COBOLプログラムからPowerSORTを使用するを参照してください。
3.4 C言語プログラムから使用する方法
C言語プログラムにBSORT関数を組み込んでPowerSORTを使用することができます。
BSORT関数には5つの関数があり、それらの関数を組み合わせてPowerSORTの各機能を実行します。
詳細は、第8章 C言語プログラムからPowerSORTを使用するを参照してください。
- 71 -
第4章 PowerSORTのbsortコマンドを使用する
ここでは、bsortコマンドについて説明します。
bsortコマンドをバッチ処理などに組み込むことで、大量データの高速ソートマージ処理を実現できます。
4.1 bsortコマンドの形式
bsortコマンドは、テキストファイル、およびバイナリファイルのデータに対して、ソート処理、マージ処理、またはコピー処理を行いま
す。
指定された処理が正常に終了した場合は、0の終了コードを返します。エラーが発生した場合は、0以外の終了コードを返します。
bsortコマンドには、使用する機能により4つの記述形式があります。それぞれ、指定できるオプションに違いがありますので、使用する
機能に合わせて適切なオプションを指定してください。
bsortコマンド記述上の注意事項
注意
・ 角括弧( [ ] )で囲まれた字句は省略可能です。
・ 中括弧( { } )は棒線( | )で区切られた字句の選択を示します。
・ 斜体は、必要に応じて利用者が値を設定します。
・ ...は繰り返し指定できることを示します。
・ オプション引数をもたないオプション( -s、-m、-c、-h、-f、-u、-w、-v、-r)は、連続して指定できます。
例) -sf
・ コンマ( , )で区切って指定するオプション引数は、オプション引数全体をダブルクォーテーション( " )で囲み、コンマ( , )の代わりに
空白で区切っても指定できます。
例) -p "sel-def sel-def..."
4.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 | csv | tsv }[ ,{ 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...] ]
4.1.2 マージ機能を使用する場合
以下にマージ機能を使用する場合のコマンド形式を示します。
- 72 -
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 | csv | tsv }[ ,{ 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...] ]
4.1.3 コピー機能を使用する場合
以下にコピー機能を使用する場合のコマンド形式を示します。
bsort
-c [ -h ] -z recsize [ -Z recform ]
[ -l msglevel ] [ -y memsize ] [ -G msgfile ]
[ -T { flt | fix | csv | tsv } ] [ -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...] ]
4.1.4 処理定義ファイルを使用する場合
以下に処理定義ファイルを使用する場合のコマンド形式を示します。
bsort
-P ProcDef-file
4.2 bsortコマンドオプション
ここでは、bsortコマンドの各オプションについて説明します。
4.2.1 アーギュメントファイルオプション(-a)
アーギュメントファイルを指定します。
アーギュメントファイルは、bsortコマンドの各種オプション引数を記述したテキストファイルです。アーギュメントファイルは、固定のオプ
ション引数を別途指定しておきたい場合や、コマンドのオプション引数が長くなる場合などに使用します。
記述形式
-a argfile
argfile
アーギュメントファイルを指定します。
他のオプション引数とアーギュメントファイルオプションを同時に指定した場合、アーギュメントファイルオプションを指定した位置に、
アーギュメントファイルで記述したオプション引数が展開されます。アーギュメントファイルオプションは複数指定できます。アーギュメン
- 73 -
トファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。
アーギュメントファイルには、オプション引数を複数の行に記述できます。ただし、各オプション引数の途中で改行することはできませ
ん。アーギュメントファイルにアーギュメントファイルオプションは指定できません。アーギュメントファイルには、bsortコマンドのオプショ
ン引数だけを記述します。
アーギュメントファイルの記述例
例
以下にアーギュメントファイルの記述例を示します。
-s -z200 -32.12pdla,25.4fbia↓
-p 25.4fbi.ge.d35↓
-o bsortout↓
sortin↓(注)
注)↓印は復帰改行コード(CRLF)を示しています。
アーギュメントファイルの展開について
アーギュメントファイル(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つ指定されているため、エラーになります。
4.2.2 再編成フィールドオプション(-e)
レコード再編成機能を使用する場合に再編成フィールドを指定します。
再編成フィールドに指定したフィールドは、出力レコードの先頭から順に詰めて出力します。レコード再編成機能を使用する場合、キー
フィールドと集約フィールドにはレコード再編成後のフィールド位置を指定します。
記述形式
-e recon-def [ ,recon-def ...]
recon-def の記述形式
recon-def の記述形式には、以下の4つの形式があります。
- 74 -
・ recon-def の記述形式1
recon-def の記述形式1では、入力レコードのフィールドを指定します。
指定したフィールドが入力レコードに存在しない場合は、エラーになります。
pos.len
・ recon-def の記述形式2
recon-def の記述形式2では、自己規定値を指定します。
self.len typ [ opt ]
・ recon-def の記述形式3
recon-def の記述形式3では、入力レコードの指定位置から終端までを再編成フィールドに指定します。
指定したフィールドが入力レコードに存在しない場合は、エラーになります。
pos.END
・ recon-def の記述形式4
recon-def の記述形式4では、空フィールドを指定します。
テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定できます。
EMPTY [ opt ]
pos
再編成フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
len
再編成フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
recon-def の記述形式1では、長さの制限はありません。recon-def の記述形式2で指定可能な各データ形式の長さについては、2.7.4.4
再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、再編成フィール
ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ
のダブルクォーテーション( " )として長さを計算します。
例) テキストファイルCSV形式における、再編成フィールドと長さ
再編成フィールド
ABC
"ABC"
"A""B""C"
"A,B,C"
再編成フィールドとして有効な文字
ABC
ABC
A"B"C
A,B,C
再編成フィールドの長さ
3バイト
3バイト
5バイト
5バイト
self
自己規定値を指定します。
self の記述形式を以下に示します。
- 75 -
・ self の記述形式1
self の記述形式1では、文字を直接指定します。
'文字列 '
・ self の記述形式2
self の記述形式2では、文字を16進数で指定します。
x16進数
・ self の記述形式3
self の記述形式3では、数値、または数字を10進数で指定します。
d10進数
注意
・ オプション引数で自己規定値の文字列を指定する場合は、オプション引数全体をダブルクォーテーション( " )で囲みます。
・ オプション引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、ダブルクォーテーション( " )の前
に円記号( ¥ )を指定します。
・ オプション引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、クォーテーション( ' )を2つ続けて指定し
ます。
・ 自己規定値の10進数を指定する場合は、符号を指定できます。
・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。
・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま
せん。
・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールド分離文字、レコード分離文字(注)、
またはダブルクォーテーション( " )が含まれているときは、自己規定値をダブルクォーテーション( " )で囲んで出力します。この際、
自己規定値のダブルクォーテーション( " )は、2つ連続して出力します。
注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含ま
れている場合、自己規定値をダブルクォーテーション( " )で囲みます。
例) 自己規定値にフィールド分離文字(コンマ)、またはダブルクォーテーション( " )を含む場合の再編成フィールドに出力される
データ
自己規定値の指定
FIELD"2"
FIELD2,3
FIELD"2",3
再編成フィールドに出力されるデータ
"FIELD""2"""
"FIELD2,3"
"FIELD""2"",3"
・ 自己規定値で指定した値とlen で指定した長さが異なるときは、以下に示すように処理します。
- 自己規定値が文字列の場合
- 自己規定値で指定した文字列の長さが len で指定した長さより短い場合は、自己規定値を左詰めにして右余白に空白を
詰めます。
- 自己規定値で指定した文字列の長さがlen で指定した長さより長い場合は、エラーとなります。
- 自己規定値が数字、または数値の場合
- 自己規定値で指定した値をtyp とlen で指定したデータ形式と長さに変換して埋め込みます。
- 変換結果がlen を超える場合は、エラーとなります。
- 76 -
・ 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号なし固定小数点2進数、システム依
存形式固定小数点2進数、システム依存形式符号なしの自己規定値を10進数で指定する場合、その値は以下の範囲になります。
長さ
符号ありのデータ形式
符号なしのデータ形式
1バイト
-128~127
0~255
2バイト
-32768~32767
0~65535
3バイト
-8388608~8388607
0~16777215
4バイト以上
-2147483648~2147483647
0~4294967295
typ
自己規定値のデータ形式を指定します。
指定可能なデータ形式については、2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。
注意
・ ASCIIコードは、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テキストファ
イルの場合、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。
・ EBCDICコードは、入力コード系オプション(-q)がEBCDICコード系の場合に指定できます。
・ シフトJISコードは、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。
・ Unicode UCS-2形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テ
キストファイルの場合、入力コード系オプション(-q)がUnicode系(UCS-2形式)の場合に指定できます。
・ Unicode UTF-8形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テ
キストファイルの場合、入力コード系オプション(-q)がUnicode系(UTF-8形式)の場合に指定できます。
END
recon-def の記述形式3の場合に、'END'の固定文字列を指定します。
EMPTY
recon-def の記述形式4の場合に、'EMPTY'の固定文字列を指定します。
opt
再編成フィールドの操作を指定します。
テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、recon-def の記述形式2、またはrecon-def の記述形式4のときに
指定できます。以下から選択して指定します。省略した場合は、Lを指定したものとして動作します。
opt
意味
A
再編成フィールドをダブルクォーテーション( " )で囲みます。
L
再編成フィールドをダブルクォーテーション( " )で囲みません。
ただし、再編成フィールドに、フィールド分離文字、レコード分離文字(注)、またはダブル
クォーテーション( " )が含まれている場合は、ダブルクォーテーション( " )で囲みます。
注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含まれ
ている場合、自己規定値をダブルクォーテーション( " )で囲みます。
- 77 -
参考
・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、recon-def の記述形式1、またはrecon-def の記述形式3のと
きに、再編成フィールドをダブルクォーテーション( " )で囲むかどうかは、入力レコードのフィールドに従います。入力レコードの
フィールドがダブルクォーテーション( " )で囲まれているときは、レコード再編成後のフィールドもダブルクォーテーション( " )で囲み
ます。
例) 再編成フィールドを「-e 1.3,2.2」と指定した場合
入力レコード
出力レコード
"001","ABC",60
"ABC",60
"002","ABCDE",50
"ABC",50
"003","AB,CDE",40
"AB,",40
"004","AB"CDE,30 (注)
"AB"C,30
注) 2番目のフィールドは、「AB」がダブルクォーテーションで囲まれ、「CDE」がそのあとに続いていると判断します。
記述例
例
例1) 入力レコードの5バイト目から長さ10バイトのフィールドを再編成する場合は、次のように指定します。
-e 4.10
例2) 自己規定値としてASCIIコードの「abc」を文字列で指定する場合は、以下のように指定します。
-e "'abc'.3asc"
例3) 自己規定値としてASCIIコードの「abc」を16進数で指定する場合は、以下のように指定します。
-e x616263.3asc
例4) 自己規定値として外部10進数の「-32」を長さ4バイトで指定する場合は、以下のように指定します。
-e d-32.4zdl
例5) 入力レコードの5バイト目からレコードの最後までを再編成する場合は、以下のように指定します。
-e 4.END
例6) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、自己規定値としてASCIIコードの「abc」を文字列で指定し、こ
のフィールドをダブルクォーテーション( " )で囲むときは、以下のように指定します。
-e "'abc'.3ascA"
例7) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、入力レコードの1番目のフィールドと2番目のフィールドの間
にダブルクォーテーション( " )で囲まれた空フィールドを追加するときは、以下のように指定します。
-e 0.1,EMPTYA,1.END
4.2.3 入出力ファイルシステムオプション(-F)
入力ファイルと出力ファイルのファイルシステムを指定します。
記述形式
-F ofs,ifs [/ownername] [ ,ifs [/ownername] ...]
- 78 -
ofs
出力ファイルのファイルシステムを指定します。
ファイルシステムは識別子で指定します。詳細は指定可能なファイルシステムを参照してください。
ifs
入力ファイルのファイルシステムを指定します。
ファイルシステムは識別子で指定します。詳細は指定可能なファイルシステムを参照してください。
入力ファイルのファイルシステムは、入力ファイルごとに指定できます。複数のファイルシステムを指定する場合は、コンマ( , )で区切っ
て入力ファイルの指定順に指定します。入力ファイルの数がファイルシステムで指定した数より多い場合、ファイルシステムに指定した
最後のファイルシステムが残りの入力ファイルに適用されます。入力ファイルの数がファイルシステムで指定した数より少ない場合、余
分に指定したファイルシステムは無視されます。
ownername
Btrieveファイルで必要な場合には、ownernameに最大8文字までのオーナーネームを指定します。
オーナーネームでは、大文字と小文字が区別されます。
指定可能なファイルシステム
指定可能なファイルシステムを以下に示します。
識別子
ファイルシステムの説明
dos
システムの標準ファイルシステム (省略値)
cobseq
富士通COBOLファイルシステム(順ファイル)
cobs64
富士通COBOLファイルシステム(BSAM対応順ファイル)
corbel
富士通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ファイルシステムの索引ファイルを入力ファイルに指定することはできません。
- 79 -
4.2.4 先入力先出力(FIFO)機能オプション(-f)
先入力先出力(FIFO)機能を指定します。
指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。
先入力先出力(FIFO)機能は、ソート機能(-s)のときに有効です。先入力先出力(FIFO)機能を指定しなかった場合、キーフィールドの値
が同一なレコードの出力順序は不定です。マージ機能(-m)、コピー機能(-c)、レコード集約機能(-g)、およびサプレス機能(-u)と同時に
指定された場合、先入力先出力(FIFO)機能の指定は無視されます。
記述形式
-f
注意
先入力先出力(FIFO)機能オプション(-f)は、環境変数BSORT_FIFOの指定より優先されます。
4.2.5 メッセージファイルオプション(-G)
メッセージを出力するファイルパス名を指定します。
記述形式
-G msgfile
msgfile
メッセージを出力するファイルパス名を指定します。
メッセージファイルオプションを省略した場合、環境変数BSORT_MSGFILEの指定があれば、そのファイルにメッセージを出力します。
メッセージファイル以外へのメッセージの出力は、環境変数BSORT_MSGOUTの指定に従います。メッセージファイルに空白を含む
ファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。
注意
メッセージファイルオプション(-G)は、環境変数BSORT_MSGFILEの指定より優先されます。
4.2.6 集約フィールドオプション(-g)
レコード集約機能を使用する場合に集約フィールドを指定します。
レコード集約機能は、指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1つのレコードにする機能です。レコー
ド集約機能の対象となったレコードの中から、どのレコードが出力されるかは不定です。テキストファイルの場合は、ASCIIコード、Unicode
UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の対象とします。
レコード集約機能は、ソート機能、またはマージ機能の場合に有効です。サプレス機能(-u)とは排他関係にあります。先入力先出力(FIFO)
機能(-f、または環境変数BSORT_FIFO)と同時に指定された場合、先入力先出力(FIFO)機能の指定は無視されます。
記述形式
-g sum-def [ ,sum-def ...]
sum-def の記述形式
pos.len typ [ opt ]
- 80 -
pos
集約フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
len
集約フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、指
定したフィールド長に拡張して処理します。
指定可能な各データ形式の長さについては、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、集約フィールド
の長さに含みません。
例) テキストファイルCSV形式における、集約フィールドと長さ
集約フィールド
123
"123"
集約フィールドとして有効な文字
123
123
集約フィールドの長さ
3バイト
3バイト
typ
集約フィールドのデータ形式を指定します。
指定可能なデータ形式については、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。
opt
テキストファイルの場合に集約フィールドの出力形式を指定します。
バイナリファイルの場合に指定するとエラーとなります。指定可能な出力形式を以下に示します。
意味
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とは排他関係にあります。
- 81 -
注意
・ dは、テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定可能です。
テキストファイル固定フィールド指定の場合はエラーになります。
・ iを指定し、集約した値が「0」になった場合は「+」の符号を付けます。
・ bを指定し、符号が付く場合、符号は数字部の直前に付加されます。
・ i、およびuを省略した場合は、以下のように処理します。
- 集約結果が負の値の場合は、集約結果に「-」の符号を付けます。
- 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を付けません。
- 符号なしデータ同士を集約した場合は、集約結果に符号を付けません。
- 符号なしデータと符号付きデータの集約結果が「0」の場合は、符号を付けません。
- 符号付きデータ同士を集約した場合は、集約結果に符号を付けます。集約した結果が「0」の場合は、「+」の符号を付けます。
・ 集約フィールドの値に符号を付ける場合、集約フィールドの値が集約フィールド長を満たしており、符号が付けられないときはオー
バフローとなります。
・ z、b、およびdを省略した場合は、以下のように処理します。
- 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果が満たない場合は、集約フィールドの左余白に
「0」を詰めます。
- 左余白に「0」が詰められているデータ同士のとき
- 左余白に「0」が詰められているデータと左余白に空白が詰められているデータのとき
- 左余白に「0」が詰められているデータと左余白にタブが詰められているデータのとき
- 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果が満たない場合は、集約フィールドの左余
白に空白を詰めます。
- 左余白に空白が詰められているデータ同士のとき
- 左余白にタブが詰められているデータ同士のとき
- 左余白に空白が詰められているデータと左余白にタブが詰められているデータのとき
・ レコード集約機能の対象とならなかったレコード(キーフィールドの値が同一である他のレコードが存在しないレコード)の集約フィー
ルドは、以下のように処理します。
- optの指定がある場合は、optで指定された形式で出力します。
- optの指定がない場合は、入力されたままの形式で出力されます。
記述例
例
例1) 入力レコードの7バイト目から長さ8バイトの内部10進数のフィールドを集約フィールドに指定する場合は、次のように指定します。
-g 6.8pdl
例2) テキストファイルの場合、入力レコードの4バイト目から長さ8バイトのASCIIコードのフィールドを集約フィールドに指定するときは、
次のように指定します。なお、集約フィールドには符号をつけ、集約フィールドの値がフィールド長に満たないときには左余白に空白を
詰めます。
-g 4.8ascib
- 82 -
注意
・ レコード集約機能の対象となったレコードの中から、どのレコードが出力されるかは不定です。
・ 集約フィールドは、キーフィールド、および他の集約フィールドと重なることはできません。
・ 集約フィールドは、レコード内に存在する必要があります。
・ レコード集約機能を使用する場合、キーフィールドは省略できません。
・ 集約フィールドの集約処理中にオーバフローが生じた場合の動作は、環境変数BSORT_SUMOVERCONTの指定に従います。
・ 小数点を含む数字の集約はできません。
・ テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の
対象とします。
・ テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現れたことにより集約フィールドの位置が変
わる場合は、正しく動作しません。
・ テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れたときは、指定したフィールド長を超
える部分はレコード集約機能の対象とせず、そのまま出力されます。また、指定したフィールド長より短いフィールドが現れたとき
は、指定したフィールド長に拡張します。
例) 集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合(フィールド分離文字は「,」とします)
入力レコード
出力レコード
001,12345ABC,OPQ (注1)
001,12456ABC,OPQ (注2)
001,111,RST
002,00127,UVW
002,15,UVW (注1)
002,00112DEF,XYZ
注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。
注2) 指定したフィールド長を超える部分(「ABC」)は、そのまま出力されます。
・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、指定したフィールド長よりも長いフィールドが現れたときは、指
定したフィールド長を超える部分はレコード集約機能の対象とせず、出力もされません。また、指定したフィールド長より短いフィー
ルドが現れたときは、指定したフィールド長に拡張します。
例) テキストファイルCSV形式で、集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合
入力レコード
出力レコード
001,12345ABC,OPQ (注1)
001,12468,OPQ (注2)
001,123,RST
002,00027,UVW
002,15,UVW (注1)
002,00012DEF,XYZ
注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。
注2) 指定したフィールド長を超える部分(「ABC」)は、出力されません。
・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、集約フィールドをダブルクォーテーション( " )で囲むかどうか
は、出力対象となる入力レコードのフィールドに従います。出力対象となる入力レコードのフィールドがダブルクォーテーション( " )
で囲まれているときは、レコード集約後のフィールドもダブルクォーテーション( " )で囲みます。
例) テキストファイルCSV形式で、集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合
入力レコード
出力レコード
001,"12345",OPQ (注)
001,"12468",OPQ
001,"123",RST
002,"00027",UVW
002,"15",UVW (注)
003,11900,GHI
002,00012,XYZ
004,98769,MNO
003,11111,GHI (注)
003,"00789",JKL
004,98765,MNO (注)
004,4,PQR
注) ここで示したレコードが、レコード集約機能で出力対象になるものとします。
- 83 -
4.2.7 ヘルプオプション(-h)
bsortコマンドのコマンド形式の一覧を表示します。
他のオプションと共に指定された場合は、指定されたオプションのチェックを行い、エラーがあった場合はエラーメッセージを出力しま
す。
このオプションが指定されている場合は、PowerSORTの処理は行われません。
記述形式
-h
4.2.8 インデックス作成方法オプション(-I)
富士通COBOLファイルシステムの索引ファイルにおける、インデックスの作成方法を指定します。
記述形式
-I flg
flg
以下から選択して指定します。
複数指定する場合は、続けて指定します。
意味
flg
c
インデックスに圧縮キー指定を示します。
r
レコードのデータ圧縮指定を示します。
4.2.9 入力ファイルオプション(infile)
入力ファイルのファイルパス名を指定します。
記述形式
infile [ infile ...]
infile
入力ファイルのファイルパス名を指定します。
入力ファイルは複数指定できます。入力ファイルを複数指定する場合は、入力ファイルオプションを複数指定します。入力ファイルパ
ス名に半角空白が含まれる場合は、入力ファイルパス名をダブルクォーテーション( " )で囲みます。入力ファイルオプションが省略され
た場合は、標準入力からレコードを読み込みます。ただし、マージ機能では標準入力からレコードを読み込むことはできません。
記述例
例
半角空白を含む入力ファイルパス名は、次のように記述します。
"c:¥in files¥sortin01"
4.2.10 キーフィールドオプション(-key-def)
キーフィールドを指定します。
1つのキーフィールドは、位置、長さ、データ形式、および操作で構成されます。
複数のキーフィールドを指定した場合、指定した順に比較が行われます。複数のキーフィールドを指定する場合は、キーフィールドをコンマ
- 84 -
( , )で区切って指定します(-key-def,key-def)。また、1つ前のキーフィールドの指定に続けて指定(-key-def key-def)することや、キー
フィールドオプションを複数指定することもできます(-key-def -key-def)。
キーフィールドの指定を省略した場合、レコード全体をキーフィールドとみなしてコードの昇順に並べます。キーフィールドを省略して
降順に並べる場合は、降順オプション(-r)を使用します。
注意
テキストファイルCSV形式、テキストファイルTSV形式の場合、キーフィールドは省略できません。
記述形式
-key-def [ ,key-def ...]
key-def の記述形式
pos.len typ [ opt ]
pos
キーフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
len
キーフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数でlen に指定します。この場合、pos の
位置にある1バイトのフィールド値とマスク値の論理積がキー値になります。
指定可能な各データ形式の長さについては、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、キーフィールドの
長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つのダ
ブルクォーテーション( " )として長さを計算します。
例) テキストファイルCSV形式における、キーフィールドと長さ
キーフィールド
ABC
"ABC"
"A""B""C"
"A,B,C"
キーフィールドとして有効な文字
ABC
ABC
A"B"C
A,B,C
キーフィールドの長さ
3バイト
3バイト
5バイト
5バイト
typ
キーフィールドのデータ形式を指定します。
指定可能なデータ形式については、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。
opt
キーフィールドの操作を指定します。
指定可能な操作を以下に示します。バイナリファイルの場合は、a、m、r、およびwが指定できます。テキストファイルの場合は、全ての
- 85 -
キーフィールドの操作が指定できます。複数の操作を指定する場合は、続けて記述します。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とは排他関係にあります。
注意
・ 漢字ソートマージ機能では、キーフィールドの操作にbを指定した場合、全角の空白も無視します。
・ キーフィールドのデータ形式に照合順序変更を指定した場合、キーフィールドの操作にa、またはr以外を指定することはできませ
ん。
・ キーフィールドのデータ形式に文字形式2桁年号を指定した場合、キーフィールドの操作にa、またはr以外を指定しても無視され
ます。
記述例
例
例1) 入力レコードの先頭から長さ10バイトのASCIIコードのフィールドを昇順に並べる場合は、次のように指定します。
-0.10asca
例2) 入力レコードの5バイト目から長さ8バイトの外部10進数のフィールドを降順に並べる場合は、次のように指定します。
- 86 -
-4.8zdlr
例3) テキストファイル固定フィールド指定の場合、入力レコードの10バイト目から長さ20バイトのASCIIコードのフィールドを昇順に並べ
る場合は、次のように指定します。なお、キーフィールドの先頭の空白とタブは無視し、英小文字を英大文字として比較します。
-9.20ascabj
参考
バイナリファイルの可変長レコード形式、またはテキストファイルの場合、キーフィールドが存在しないレコードが入力されたときは、キー
フィールドが存在しない部分の値を0とみなして処理します。
4.2.11 レコード分離文字オプション(-L)
テキストファイル内のレコード分離文字を指定します。
テキストファイルのときに有効です。
記述形式
-L line-delimiter
line-delimiter
テキストファイル内のレコード分離文字を指定します。
指定可能なレコード分離文字列を以下に示します。
意味
line-delimiter
cl
CRLFをレコードの分離文字として扱います。(省略値)
cr
CRをレコードの分離文字として扱います。
lf
LFをレコードの分離文字として扱います。
4.2.12 メッセージレベルオプション(-l)
出力するメッセージの種別を指定します。
記述形式
-l msglevel
msglevel
出力するメッセージの種別(レベル)を指定します。
メッセージレベルオプション(-l)を省略した場合は、環境変数BSORT_MSGLEVELの指定に従います。メッセージレベルオプション(-l)
も環境変数BSORT_MSGLEVELの指定も省略されている場合は、msglevel にW(エラーメッセージ、および警告メッセージを出力)を
指定したとみなします。メッセージの出力先は、メッセージファイルオプション(-G)、環境変数BSORT_MSGFILE、および環境変数
BSORT_MSGOUTの指定により決まります。
指定可能なメッセージの種別(レベル)を以下に示します。
意味
msglevel
N
何も出力しません。
E
エラーメッセージを出力します。
W
エラーメッセージ、および警告メッセージを出力します。(省略値)
I
エラーメッセージ、警告メッセージ、および情報メッセージを出力します。
- 87 -
また、以前のバージョンとの互換用として、以下の種別(レベル)も指定できます。
意味
msglevel
0
何も出力しません。
1
エラーメッセージ、および警告メッセージを出力します。(省略値)
2
エラーメッセージ、警告メッセージ、および情報メッセージを出力します。
注意
・ 何も出力しないと指定した場合でも、コマンドシンタックスのエラーとコマンドヘルプは標準エラー出力に出力します。
・ メッセージレベルオプション(-l)は、環境変数BSORT_MSGLEVELの指定より優先されます。
4.2.13 漢字ソートマージオプション(-M)
漢字ソートマージ機能を使用する場合に、漢字フィールド、およびふりがなフィールドを指定します。
漢字ソートマージオプション(-M)は、キーフィールドの操作としてmを指定したフィールドに対応します。この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
漢字コード順に並べます。
- 88 -
pos
ふりがなフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
len
ふりがなフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、ふりがなフィール
ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ
のダブルクォーテーション( " )として長さを計算します。
typ
ふりがなフィールドのデータ形式を指定します。
指定可能なデータ形式を以下に示します。
表4.1 バイナリファイルの場合
種類
文字
データ形式
長さ(バイト)
typ
ASCIIコード
asc
1~レコード長(注1)
EBCDICコード(注2)
ebc
1~レコード長(注1)
シフトJISコード
sji
1~レコード長(注1)
JEFコード(注2)
jef
2~レコード長(2の倍数) (注1)
表4.2 テキストファイルの場合
種類
文字
データ形式
長さ(バイト)
typ
ASCIIコード
asc
1~レコード長(注1)
シフトJISコード
sji
1~レコード長(注1)
注1) レコード再編成機能を指定した場合は、レコード再編成後のレコード長まで指定できます。レコード再編成機能については、4.2.2
再編成フィールドオプション(-e)を参照してください。
注2) 入力コード系オプション(-q)の指定がEBCDICコード系の場合に指定できます。
記述例
例
例1) 入力レコードの10バイト目から長さ2バイトの漢字フィールド(シフトJISコード)を総画数順、音読み順で昇順に並べる場合、次のよ
うに指定します。
-9.2sjiam -M stdSO
例2) 入力レコードの10バイト目から長さ10バイトに漢字フィールド(シフトJISコード)があり、このフィールドに対するふりがなフィールド(シフト
JISコード)がレコードの50バイト目から長さ20バイトに存在するとき、このレコードを国語辞典の並びで昇順に並べる場合、次のように指
定します。
-9.10sjiam -M dic49.20sji
- 89 -
4.2.14 出力ファイルオプション(-o)
出力ファイルのファイルパス名を指定します。
記述形式
-o outfile [ -o outfile ...]
outfile
出力ファイルのファイルパス名を指定します。
出力ファイルパス名に半角空白が含まれる場合は、出力ファイルパス名をダブルクォーテーション( " )で囲みます。標準出力オプション
(-w)と同時に指定された場合は、出力ファイルオプション(-o)が優先されます。
出力ファイルオプション(-o)を複数指定した場合、出力ファイルがファイルシステムの許容量を超えたときのリカバリー処理として複数の
ファイルに分割して出力します。このため、複数のファイルを指定する場合は、別ドライブに配置してください。リカバリー処理は、以下
のファイルを処理する場合に指定できます。
・ システム標準のファイル(テキストファイル、バイナリファイル)
記述例
例
例1) 半角空白を含む出力ファイルパス名を指定する場合は、次のように指定します。
-o "c:¥out files¥sortout"
例2) 出力ファイルにc:¥out¥sortout1を指定し、出力ファイルがファイルシステムの許容量を超えたときのリカバリー処理として、続きをd:
¥out¥sortout2へ出力する場合は、次のように指定します。
-o c:¥out¥sortout1 -o d:¥out¥sortout2
4.2.15 処理定義ファイルオプション(-P)
処理定義ファイルを指定します。
PowerSORT V2.0以前、およびPowerSORT Workstationなどの製品に付属しているPowerSORT GUIでは、指定したオプション情報を
処理定義ファイルに保存できます。この処理定義ファイルのオプション情報に従ってbsortコマンドを実行します。
記述形式
-P ProcDef-file
ProcDef-file
処理定義ファイルを指定します。
処理定義ファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。
記述例
例
処理定義ファイルオプションは、他のオプションと同時に指定できません。コマンドの記述形式は常に以下のようになります。
bsort -P ProcDef-file
- 90 -
注意
・ 処理定義ファイル内の一時ファイルフォルダ(TEMP_DIR)の指定は無効となります。bsortコマンド実行前に、環境変数
BSORT_TMPDIRで設定してください。
・ 処理定義ファイルは、エディタ等を利用して作成、および変更をしないでください。
4.2.16 選択フィールドオプション(-p)
レコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
複数の選択フィールドを指定することもできます。コンマ( , )で区切って複数の選択フィールドを指定した場合は、選択条件の論理積
となります。複数の選択フィールドオプションを指定した場合は、選択条件の論理和となります。
記述形式
-p sel-def [ ,sel-def ...]
sel-def の記述形式
sel-def の記述形式には、以下の2つの形式があります。
・ sel-def の記述形式1
sel-def の記述形式1では、2つの選択フィールドを比較します。
cmp の左辺は被比較フィールドを、右辺は比較フィールドを示します。
指定した被比較フィールド、または比較フィールドが入力レコードに存在しない場合は、エラーになります。
pos.len typ [ opt ] .cmp.pos.len typ
・ sel-def の記述形式2
sel-def の記述形式2では、選択フィールドと自己規定値を比較します。
cmp の左辺は被比較フィールドを、右辺は自己規定値を示します。
指定した被比較フィールドが入力レコードに存在しない場合は、エラーになります。
pos.len typ [ opt ] .cmp.self
pos
被比較フィールド、または比較フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
len
被比較フィールド、または比較フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数でlen に指定します。この場合、pos の
位置にある1バイトのフィールド値とマスク値の論理積をフィールドの値とします。マスク値は、被比較フィールドと比較フィールドに同じ
値を指定します。
指定可能な各データ形式の長さについては、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、被比較フィール
ド、または比較フィールドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォー
テーション( "" )は、1つのダブルクォーテーション( " )として長さを計算します。
- 91 -
例) テキストファイルCSV形式における、被比較フィールドと長さ
被比較フィールド
ABC
"ABC"
"A""B""C"
"A,B,C"
被比較フィールドとして有効な文字
ABC
ABC
A"B"C
A,B,C
被比較フィールドの長さ
3バイト
3バイト
5バイト
5バイト
self
自己規定値を指定します。
self の記述形式を以下に示します。
・ self の記述形式1
self の記述形式1では、文字を直接指定します。
'文字列 '
・ self の記述形式2
self の記述形式2では、文字を16進数で指定します。
x16進数
・ self の記述形式3
self の記述形式3では、数値、または数字を10進数で指定します。
d10進数
注意
・ オプション引数で自己規定値の文字列を指定する場合は、オプション引数全体をダブルクォーテーション( " )で囲みます。
・ オプション引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、ダブルクォーテーション( " )の前
に円記号( ¥ )を指定します。
・ オプション引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、クォーテーション( ' )を2つ続けて指定し
ます。
・ 自己規定値の10進数を指定する場合は、符号を指定できます。
・ 自己規定値は、被比較フィールドのデータ形式に合わせてから比較します。
・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。
・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま
せん。
・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールドを囲むダブルクォーテーション( " )を
指定する必要はありません。
・ 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号なし固定小数点2進数、システム依
存形式固定小数点2進数、システム依存形式符号なしの自己規定値を10進数で指定する場合、その値は以下の範囲になります。
データ形式
指定可能な値
符号ありのデータ形式
-2147483648 ~ 2147483647
符号なしのデータ形式
0 ~ 4294967295
- 92 -
typ
被比較フィールドと比較フィールドのデータ形式を指定します。
指定可能なデータ形式については、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
注意
・ 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデータ形式に合わせてから比較します。
・ 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールドの短い方の長さで比較します。
・ 比較フィールドのデータ形式の種類が数値、または数字の場合、被比較フィールドと比較フィールドの短い方を長い方の長さに合
わせて比較します。
・ ASCIIコードは、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テキストファ
イルの場合、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。
・ EBCDICコードは、入力コード系オプション(-q)がEBCDICコード系の場合に指定できます。
・ シフトJISコードは、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。
・ Unicode UCS-2形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テ
キストファイルの場合、入力コード系オプション(-q)がUnicode系(UCS-2形式)の場合に指定できます。
・ Unicode UTF-8形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テ
キストファイルの場合、入力コード系オプション(-q)がUnicode系(UTF-8形式)の場合に指定できます。
opt
被比較フィールドの操作を指定します。
指定可能な操作を以下に示します。バイナリファイルの場合は、wだけ指定できます。テキストファイルの場合は、全ての被比較フィー
ルドの操作が指定できます。複数の操作を指定する場合は、続けて記述します。
意味
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
比較演算子を指定します。
以下に比較演算子とその意味を示します。
- 93 -
比較演算子
意味(真の条件)
eq
被比較フィールド = 比較フィールド、または自己規定値
ne
被比較フィールド ≠ 比較フィールド、または自己規定値
gt
被比較フィールド > 比較フィールド、または自己規定値
ge
被比較フィールド ≧ 比較フィールド、または自己規定値
lt
被比較フィールド < 比較フィールド、または自己規定値
le
被比較フィールド ≦ 比較フィールド、または自己規定値
記述例
例
例1) 12バイト目の位置から長さ4バイトの固定小数点2進数のフィールドが「30」以上のレコードを選択する場合は、次のように指定しま
す。
-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'"
4.2.17 文字コード系変換オプション(-Q)
ASCIIコードとEBCDICコード間の変換方式を指定します。
記述形式
-Q altmode
altmode
ASCIIコードとEBCDICコード間の変換方式を指定します。
以下から1つを選択して指定します。
altmode
意味
0
EBCDICコードとUS ASCIIコード間のコード変換を指定します。(省略値)
1
EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定します。
2
EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定します。
- 94 -
参考
以下の場合にASCIIコードとEBCDICコード間の変換が行われます。
・ 入力ファイルのコード系(入力コード系オプション(-q))がASCIIコード系でキーフィールドのデータ形式がEBCDICコードの場合に
おけるキーフィールドの比較
・ 入力ファイルのコード系(入力コード系オプション(-q))がEBCDICコード系でキーフィールドのデータ形式がASCIIコードの場合に
おけるキーフィールドの比較
・ 選択フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己規定値の変換
・ 再編成フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己規定値の変換
4.2.18 入力コード系オプション(-q)
入力ファイルのコード系を指定します。
記述形式
-q cdmode
cdmode
入力ファイルのコード系を指定します。
以下から1つを選択して指定します。
意味
cdmode
au
ASCIIコード系 (富士通COBOL形式) (省略値)
ac
ASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式)
eb
EBCDICコード系 (注)
u2
Unicode系 (UCS-2形式)
u8
Unicode系 (UTF-8形式)
注) EBCDICコード系はバイナリファイルの場合に指定可能です。
4.2.19 レコード読み飛ばしオプション(-R)
入力ファイルの先頭から処理対象としないレコードを件数で指定します。
ファイルの先頭にヘッダー情報など処理の対象としないデータがある場合に使用します。
記述形式
-R skiprec-no [ ,skiprec-no ...]
skiprec-no
処理対象としないレコードを件数で指定します。
省略した場合は全レコードが処理対象となります。入力ファイルが複数ある場合は、ファイルの指定順に合わせてコンマ( , )で区切っ
て件数を指定します。
記述例
例
例1) 最初の入力ファイルの先頭から10件、2番目の入力ファイルの先頭から20件のレコードを読み飛ばします。
- 95 -
-R 10,20
例2) 入力ファイルが3つある場合、3番目の入力ファイルの先頭から100件のレコードを読み飛ばします。
-R ,,100
例3) 入力ファイルが3つある場合、最初の入力ファイルの先頭から100件のレコードを読み飛ばします。2番目、3番目の入力ファイル
のレコードの読み飛ばしは行われません。
-R 100
4.2.20 降順オプション(-r)
降順に並べて出力することを指定します。
キーフィールドの指定を省略したときに有効なオプションです。
記述形式
-r
4.2.21 処理(ソート、マージ、コピー)オプション(-s、-m、-c)
入力ファイルに対して行う処理を指定します。
記述形式
[ -s ] | -m | -c
以下に処理オプションと意味を示します。各処理オプションは互いに排他関係にあります。
処理オプション
意味
-s
ソート機能 (省略値)
-m
マージ機能
-c
コピー機能
4.2.22 テキストファイルオプション(-T)
入力ファイルがテキストファイルであることを指定し、同時にフィールドの指定方法を指定します。
記述形式
-T { flt | fix | csv | tsv } [ ,{ n | w | N } b d i j ]
参考
flt、fix、csv、およびtsvは、キーフィールド、選択フィールド、再編成フィールド、および集約フィールドの指定方法を表します。
続くn、w、N、b、d、i、およびjは、キーフィールドの指定を省略し、レコード全体をキーフィールドとする場合のキーフィールドの操作を
表します。複数の操作を指定する場合は、続けて記述します。なお、csv、およびtsvの場合、キーフィールドの指定は省略できません。
flt
テキストファイル浮動フィールド指定を示します。
フィールド分離文字列で区切られた、フィールドの番号で指定する形式です。フィールド分離文字列については、4.2.23 フィールド分
離文字オプション(-t)を参照してください。fix、csv、およびtsvとは排他関係にあります。
- 96 -
fix
テキストファイル固定フィールド指定を示します。
先頭からのバイト位置で指定する形式です。flt、csv、およびtsvとは排他関係にあります。
csv
テキストファイルCSV形式を示します。
コンマで区切られたフィールド番号で指定する形式です。flt、fix、およびtsvとは排他関係にあります。
tsv
テキストファイルTSV形式を示します。
タブで区切られたフィールド番号で指定する形式です。flt、fix、およびcsvとは排他関係にあります。
n
符号を含んだ数字の文字列を算術的な値によって比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。w、およびNとは排他関係にあります。
w
複数バイトから成る文字が混在していても文字ごとに比較して並べます。
n、およびNとは排他関係にあります。
N
英字と数字の連結データ(例えば「data123」など)を英字と数値に分けて評価し並べます。
英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。指定フィールドの左から評価し、有効データ後
に出現したデータは無視します。n、およびwとは排他関係にあります。
b
キーフィールドの先頭の空白とタブを無視します。
d
空白と英数字だけを比較の対象にします。
i
制御文字コードを無視します。
j
英小文字を英大文字として比較します。
注意
・ 入力ファイルがテキストファイルの場合は、テキストファイルオプション(-T)の指定が必要です。
・ テキストファイルオプション(-T)を省略した場合は、バイナリファイルとして処理します。
4.2.23 フィールド分離文字オプション(-t)
テキストファイル浮動フィールド指定の場合に、フィールド分離文字列を指定します。
記述形式
-t chars
- 97 -
chars
テキストファイル浮動フィールド指定の場合に、フィールド分離文字列を指定します。
省略時は、タブ、および空白をフィールド分離文字として扱います。フィールド分離文字列に空白を含む場合は、フィールド分離文字
列をダブルクォーテーション( " )で囲みます。フィールド分離文字列にダブルクォーテーション( " )を指定する場合は、ダブルクォーテーション
( " )の前に円記号( ¥ )を指定します。
記述例
例
例1) フィールド分離文字列として、文字列「SEPARATE」を指定します。
-t SEPARATE
例2) フィールド分離文字列として、文字列「F S」を指定します。
-t "F S"
例3) フィールド分離文字列として、文字「'」を指定します。
-t '
例4) フィールド分離文字列として、文字「"」を指定します。
-t ¥"
例5) フィールド分離文字列として、文字「¥」を指定します。
-t ¥
例6) フィールド分離文字列として、文字列「**」を指定します。
-t **
例7) フィールド分離文字列として、文字列「* *」を指定します。
-t "* *"
注意
フィールド分離文字列には、レコード分離文字列(レコード分離文字オプション(-L))と同じ文字を指定できません。
4.2.24 サプレスオプション(-u)
サプレス機能を指定します。
サプレス機能は、指定したキーフィールドの値が同一のとき、1つのレコードを残して他を削除する機能です。このとき削除されるレコー
ドは不定です。
サプレス機能は、ソート機能、またはマージ機能のときに有効です。レコード集約機能(-g)とは排他関係にあります。先入力先出力(FIFO)
機能(-f、または環境変数BSORT_FIFO)と同時に指定された場合、先入力先出力(FIFO)機能の指定は無視されます。
記述形式
-u
4.2.25 入出力上書きオプション(-v)
出力ファイルが入力ファイルと同じ場合に、処理を継続することを指定します。
入出力上書きオプション(-v)を指定し、出力ファイルに入力ファイルと同じファイルを指定すると、指定された入力ファイルに処理結果
- 98 -
が上書きされるため、ディスクスペースを節約できます。入出力上書きオプション(-v)を省略して、出力ファイルに入力ファイルと同じファ
イルを指定した場合は、エラーとなります。
入出力上書きオプション(-v)は、ソート機能のときに有効です。
記述形式
-v
注意
出力ファイルが入力ファイルと同じ場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場合がありますの
で、注意してください。
4.2.26 標準出力オプション(-w)
出力ファイルの指定がない場合に、処理結果を標準出力に出力することを指定します。
出力ファイルオプション(-o)と同時に指定されたときは、出力ファイルオプション(-o)が優先されます。
記述形式
-w
4.2.27 インデックス指定オプション(-X)
出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを指定します。
富士通COBOLファイルシステムの索引ファイルの場合は、インデックス指定オプション(-X)を省略できません。
記述形式
-X index-def [ ,index-def ...]
index-def
インデックスフィールドを指定します。
最初に主キーを指定し、その後に副キーを指定します。
index-def の記述形式
pos.len typ opt
pos
インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。
len
インデックスフィールドの長さをバイト数で指定します。
typ
インデックスフィールドのデータ形式を指定します。
指定可能なデータ形式と長さを以下に示します。
種類
文字
データ形式
ASCIIコード
typ
asc
長さ(バイト)
1~254
- 99 -
意味
富士通COBOLの
CHARTYPE
種類
データ形式
typ
長さ(バイト)
意味
Unicode UCS-2形式(注)
uc2
2~254
(2の倍数)
富士通COBOLの
CHARTYPE
Unicode UTF-8形式
ut8
1~254
富士通COBOLの
CHARTYPE
注) Unicode UCS-2形式のバイトオーダーはLittle endianとなります。
opt
インデックスフィールドの操作を指定します。
指定可能な操作を以下に示します。最終セグメントには、必ずeを指定します。
意味
opt
a
昇順に並べます。
d
インデックスに重複キー指定を示します。
e
セグメントの終りを示します。
4.2.28 照合順序変更オプション(-x)
照合順序を変更するための情報を指定します。
記述形式
-x col-def [ ,col-def ...]
col-def
照合順序を変更するための情報を指定します。
col-defは、ccttの形式で記述します。照合順序変更機能では、フィールド中に16進数'cc'と等しいバイトがあれば、そのバイトを16進
数'tt'として比較します。コンマ( , )で区切って複数の照合順序を変更するための情報を指定できます。'cc'で指定されていない16進数
は、置き換えられずにそのまま比較します。
照合順序変更機能は、キーフィールドのデータ形式、選択フィールドの被比較フィールド、および比較フィールドのデータ形式にcol
が指定されている場合に、照合順序変更オプション(-x)で指定した照合順序で比較します。
記述例
例
例1) 16進数0x20を、16進数0x23として比較する場合は、次のように指定します。
-x 2023
例2) 同じ16進数に対して複数の照合順序変更を指定した場合は、最後に指定した照合順序の変更が有効になります。以下の例で
は、16進数0x20は16進数0x3Aとして比較します。
-x 2023,6141,203A
4.2.29 メモリサイズオプション(-y)
PowerSORTが使用する作業域の大きさ(メモリサイズ)を指定します。
記述形式
-y memsize
- 100 -
memsize
PowerSORTが使用する作業域の大きさをキロバイト数で指定します。
32~2097151キロバイトの範囲で指定します。メモリサイズオプション(-y)を省略した場合、または0を指定した場合、環境変数
BSORT_MEMSIZEの指定があればその大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。2097152以上
の値を指定した場合は、2097151を指定したとみなされます。
注意
メモリサイズオプション(-y)は、環境変数BSORT_MEMSIZEの指定より優先されます。
4.2.30 レコード形式オプション(-Z)
バイナリファイルの場合にレコード形式を指定します。
システムの標準ファイルシステムのファイルの場合は省略可能です。指定する場合は、固定長レコード形式を指定します。富士通COBOL
ファイルシステム、Micro Focus COBOLファイルシステム、Btrieveファイルシステム、およびRDMファイルシステムのファイルの場合は
指定が必要です。テキストファイルの場合は指定できません。指定可能なレコード形式については、2.6 PowerSORTの入出力環境を
参照してください。
記述形式
-Z recform
recform
以下から選択して指定します。
意味
recform
f
固定長レコード形式を示します。
v
可変長レコード形式を示します。
4.2.31 レコード長オプション(-z)
入力レコードのレコード長、または最大レコード長を指定します。
記述形式
-z recsize
recsize
レコード長をバイト数で指定します。
バイナリファイルの場合、レコード形式が固定長レコード形式のときは、レコード長を指定します。また、レコード形式が可変長レコード
形式のときは、ファイル内の最大レコード長を指定します。
テキストファイルの場合は、改行コードを含む最大レコード長を指定します。
- 101 -
第5章 PowerSORTのbsortexコマンドを使用する
ここでは、bsortexコマンドについて説明します。
bsortexコマンドをバッチ処理などに組み込むことで、大量データの高速ソートマージ処理を実現できます。
5.1 bsortexコマンドの形式
bsortexコマンドは、テキストファイル、およびバイナリファイルのデータに対して、ソート処理、マージ処理、またはコピー処理を行いま
す。指定された処理が正常に終了した場合は、0の終了コードを返します。エラーが発生した場合は、0以外の終了コードを返しま
す。
bsortexコマンドには、使用する機能により3つの記述形式があります。それぞれ、指定できるオプションに違いがありますので、使用す
る機能に合わせて適切なオプションを指定してください。
bsortexコマンド記述上の注意事項
注意
・ ハイフン(-)が付いたものをオプションと呼び、オプションの後に続けて指定するものをオペランドと呼びます。
例) -sortオプションのkeyオペランド
・ 角括弧( [ ] )で囲まれた字句は省略可能です。
・ 中括弧( { } )は棒線( | )で区切られた字句の選択を示します。
・ 斜体は、必要に応じて利用者が値を設定します。
・ ...は繰り返し指定できることを示します。
・ イコール(=)で値を指定するオペランドの場合、イコール(=)の前後には空白を入れずに続けて指定します。
5.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=...] ]
- 102 -
[ 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=...] ] ]
5.1.2 マージ機能を使用する場合
以下にマージ機能を使用する場合のコマンド形式を示します。
bsortex
[ -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=...] ]
[ icode=input-code ] [ iconv=input-conversion ]
[ memsize=memory-size ]
[ msgfile=message-file ] [ msglevel=message-level ] ]
5.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=...]
- 103 -
| 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 ] ]
5.2 bsortexコマンドオプション
ここでは、bsortexコマンドの各オプションについて説明します。
5.2.1 アーギュメントファイルオプション(-a)
アーギュメントファイルを指定します。
アーギュメントファイルは、bsortexコマンドの各種オプション引数を記述したテキストファイルです。アーギュメントファイルは、固定のオ
プション引数を別途指定しておきたい場合や、コマンドのオプション引数が長くなる場合などで使用します。
記述形式
-a argument-file
argument-file
アーギュメントファイルを指定します。
他のオプション引数とアーギュメントファイルオプションを同時に指定した場合、アーギュメントファイルオプションを指定した位置に、
アーギュメントファイルで記述したオプション引数が展開されます。アーギュメントファイルオプションは複数指定できます。アーギュメン
トファイル名に空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。
アーギュメントファイルには、オプション引数を複数の行に記述できます。ただし、オペランドの途中で改行することはできません。アー
ギュメントファイルにアーギュメントファイルオプションは指定できません。アーギュメントファイルには、bsortexコマンドのオプション引数
だけを記述します。
アーギュメントファイルの記述例
例
例1) アーギュメントファイルの正しい記述例
-sort key=32.12pdla,25.4fbia↓
-input reclen=200↓
file=master.db↓
include=25.4fbi.ge.d35↓
-output file=bsortout↓(注)
注)↓印は改行コード(CRLF)を示しています。
例2) アーギュメントファイルの誤った記述例
この例のように、オペランド(keyオペランド)の途中では改行できません。
-sort key=32.12pdla,↓
25.4fbia↓
-input reclen=200↓
file=master.db↓
include=25.4fbi.ge.d35↓
-output file=bsortout↓(注)
- 104 -
注)↓印は改行コード(CRLF)を示しています。
アーギュメントファイルの展開について
アーギュメントファイル(argument-file)には、以下の内容が記述されているものとします。
-sort key=0.10asca
例
例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つ指定されているため、エラーになります。
5.2.2 コピーオプション(-copy)
コピー機能を指定します。
コピーオプション(-copy)にはオペランドはありません。
コピーオプション(-copy)、ソートオプション(-sort)、およびマージオプション(-merge)は互いに排他関係にあります。
記述形式
-copy
5.2.3 定義オプション(-define)
フィールド定義やファイルパス名に対して任意の簡略名を定義します。
ここで定義した任意の簡略名を他のオプションで使用することができます。
記述形式
-define keyword=word-definition [ keyword=word-definition ...][ -define ...]
keyword=word-definition
keyword には、先頭に@を付けた英数字を指定します。
word-definition には、keyword に定義する文字列を指定します。
注意
・ オプション名(例えば-sort)、およびイコール(=)で値を指定するオペランドの左辺部(例えばkey)をword-definition に指定できませ
ん。
- 105 -
・ 簡略名を複数定義した場合、指定順に置き換えられます。このため、ある簡略名を含む他の簡略名を定義する場合、簡略名の指
定順により結果が変わるため、注意が必要です。
例1)
置換え前
-define @HOK=hoken¥hoken1.dat @HOKEN2=hoken¥hoken2.dat
-sort file=@HOKEN2
置換え後
-sort file=hoken¥hoken1.datEN2
例2)
置換え前
-define @HOKEN2=hoken¥hoken2.dat @HOK=hoken¥hoken1.dat
-sort file=@HOKEN2
置換え後
-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]
5.2.4 ヘルプオプション(-h)
bsortexコマンドのコマンド形式の一覧を表示します。
他のオプションと共に指定された場合は、指定されたオプションのチェックを行い、エラーがあった場合はエラーメッセージを出力しま
す。
このオプションが指定されている場合は、PowerSORTの処理は行われません。
記述形式
-h
5.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= ...] } ]
- 106 -
[ reconst=reconst-definition [ ,reconst-definition ...] [ reconst= ...] ]
[ eof= { effect | ignore } ]
[ overwrite ]
5.2.5.1 reclenオペランド
入力レコードのレコード長、または最大レコード長を指定します。
記述形式
reclen=record-length
record-length
レコード長をバイト数で指定します。
バイナリファイルの場合、レコード形式が固定長レコード形式のときは、レコード長を指定します。また、レコード形式が可変長レコード
形式のときは、ファイル内の最大レコード長を指定します。
テキストファイルの場合は、改行コードを含む最大レコード長を指定します。
5.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"
- 107 -
例4) 複数の入力ファイルを指定する例を示します。
file=sortin1,sortin2
5.2.5.3 filesysオペランド
fileオペランドで指定した入力ファイルのファイルシステムを指定します。
記述形式
filesys=file-system [ /owner-name [ ,owner-name ...] ]
file-system
入力ファイルのファイルシステムを指定します。
ファイルシステムは識別子で指定します。指定可能なファイルシステムを以下に示します。
識別子
ファイルシステムの説明
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ファイルシステムの索引ファイルを入力ファイルに指定することはできません。
owner-name
Btrieveファイルシステムで必要な場合には、owner-name に最大8文字までのオーナーネームを指定します。
オーナーネームでは、大文字と小文字が区別されます。また、入力ファイルの指定順にコンマ( , )で区切って複数のオーナーネーム
を指定できます。入力ファイルの数がオーナーネームの数より多い場合、残りの入力ファイルに対するオーナーネームは省略されたと
みなします。入力ファイルの数がオーナーネームの数より少ない場合、余分に指定したオーナーネームは無視されます。
- 108 -
記述例
例
例1) 入力ファイルのファイルシステムに富士通COBOLファイルシステム(BSAM対応順ファイル)を指定する場合、以下のように指定し
ます。
filesys=cobs64
例2) 最初の入力ファイルのオーナーネームにowner1、2番めの入力ファイルのオーナーネームにowner2を指定する場合、以下のよう
に指定します。
filesys=btrv/owner1,owner2
例3) 入力ファイルが2つある場合、2番めの入力ファイルのオーナーネームにowner2を指定する場合、以下のように指定します。
filesys=btrv/,owner2
5.2.5.4 includeオペランド
入力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを処理の対象とします。
includeオペランドは、omitオペランドとは排他関係にあります。
記述形式
include=condition-expression
condition-expression
選択フィールド(選択条件)を指定します。
コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となります。複数のincludeオペランドを指定
した場合は、選択条件の論理和となります。
condition-expression の記述形式
condition-definition [ { .and. | .or. } [ ( ]condition-expression [ ) ] ]
and
選択条件の論理積を示します。
コンマ( , )で区切って複数指定した場合と同等です。
or
選択条件の論理和を示します。
includeオペランドを複数指定した場合と同等です。
condition-definition
1つの選択フィールド(選択条件)を指定します。
condition-definition の記述形式
condition-definition の記述形式には、以下の3つの形式があります。
・ condition-definition の記述形式1
condition-definition の記述形式1では、2つの選択フィールドを比較します。
cmp の左辺は被比較フィールドを、右辺は比較フィールドを示します。
指定した被比較フィールド、または比較フィールドが入力レコードに存在しない場合は、エラーになります。
- 109 -
pos.len typ [ opt ].cmp.pos.len typ
・ condition-definition の記述形式2
condition-definition の記述形式2では、選択フィールドと自己規定値を比較します。
cmp の左辺は被比較フィールドを、右辺は自己規定値を示します。
指定した被比較フィールドが入力レコードに存在しない場合は、エラーになります。
pos.len typ [ opt ].cmp.self-def
・ condition-definition の記述形式3
condition-definition の記述形式3では、レコード件数によって選択します。
RECNUM.cmp.num
pos
被比較フィールド、または比較フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
len
被比較フィールド、または比較フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数でlen に指定します。この場合、pos の
位置にある1バイトのフィールド値とマスク値の論理積をフィールドの値とします。マスク値は、被比較フィールドと比較フィールドに同じ
値を指定します。
指定可能な各データ形式の長さについては、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、被比較フィール
ド、または比較フィールドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォー
テーション( "" )は、1つのダブルクォーテーション( " )として長さを計算します。
例) テキストファイルCSV形式における、被比較フィールドと長さ
被比較フィールド
ABC
"ABC"
"A""B""C"
"A,B,C"
被比較フィールドとして有効な文字
ABC
ABC
A"B"C
A,B,C
被比較フィールドの長さ
3バイト
3バイト
5バイト
5バイト
typ
被比較フィールドと比較フィールドのデータ形式を指定します。
指定可能なデータ形式については、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
注意
・ 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデータ形式に合わせてから比較します。
・ 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールドの短い方の長さで比較します。
・ 比較フィールドのデータ形式の種類が数値、または数字の場合、被比較フィールドと比較フィールドの短い方を長い方の長さに合
わせて比較します。
- 110 -
・ ASCIIコードは、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコー
ド系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペラン
ド)がASCIIコード系の場合に指定できます。
・ EBCDICコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系の場合に指定でき
ます。
・ シフトJISコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がASCIIコード系の場合に指定できま
す。
・ Unicode UCS-2形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDIC
コード系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペ
ランド)がUnicode系(UCS-2形式)の場合に指定できます。
・ Unicode UTF-8形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDIC
コード系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペ
ランド)がUnicode系(UTF-8形式)の場合に指定できます。
opt
被比較フィールドの操作を指定します。
指定可能な操作を以下に示します。バイナリファイルの場合は、wだけ指定できます。テキストファイルの場合は、全ての被比較フィー
ルドの操作が指定できます。複数の操作を指定する場合は、続けて記述します。
意味
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とは排他関係にあります。
注意
・ 被比較フィールド、および比較フィールドのデータ形式に照合順序変更を指定した場合、被比較フィールドの操作は指定できま
せん。
・ 被比較フィールド、および比較フィールドのデータ形式に文字形式2桁年号を指定した場合、被比較フィールドの操作の指定は無
視されます。
self-def
自己規定値を指定します。
self-def の記述形式を以下に示します。
・ self-def の記述形式1
self-def の記述形式1では、文字を直接指定します。
- 111 -
'文字列 '
・ self-def の記述形式2
self-def の記述形式2では、文字を16進数で指定します。
x16進数
・ self-def の記述形式3
self-def の記述形式3では、数値、または数字を10進数で指定します。
d10進数
注意
・ オペランド引数で自己規定値の文字列を指定する場合は、オペランド引数全体をダブルクォーテーション( " )で囲みます。
・ オペランド引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、ダブルクォーテーション( " )の前
に円記号( ¥ )を指定します。
・ オペランド引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、クォーテーション( ' )を2つ続けて指定し
ます。
・ 自己規定値の10進数を指定する場合は、符号を指定できます。
・ 自己規定値は、被比較フィールドのデータ形式に合わせてから比較します。
・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。
・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま
せん。
・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールドを囲むダブルクォーテーション( " )を
指定する必要はありません。
・ 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号なし固定小数点2進数、システム依
存形式固定小数点2進数、システム依存形式符号なしの自己規定値を10進数で指定する場合、その値は以下の範囲になります。
データ形式
指定可能な値
符号ありのデータ形式
-2147483648 ~ 2147483647
符号なしのデータ形式
0 ~ 4294967295
cmp
比較演算子を指定します。
以下に比較演算子とその意味を示します。
比較演算子
意味(真の条件)
eq
被比較フィールド = 比較フィールド、または自己規定値
ne
被比較フィールド ≠ 比較フィールド、または自己規定値
gt
被比較フィールド > 比較フィールド、または自己規定値
ge
被比較フィールド ≧ 比較フィールド、または自己規定値
lt
被比較フィールド < 比較フィールド、または自己規定値
le
被比較フィールド ≦ 比較フィールド、または自己規定値
- 112 -
RECNUM
レコード件数によって選択することを指定します。
condition-definition の記述形式3の場合に、'RECNUM'の固定文字列を指定します。
num
レコード件数を指定します。
入力の場合、入力ファイルの先頭レコードを1件目として指定します。複数の入力ファイルを指定した場合、ファイルごとの先頭レコードを
1件目として選択します。出力の場合、集約、またはサプレス後に出力する最初のレコードを1件目として指定します。
記述例
例
例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) 10バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「abcde」があるレコードを選択する場合は、次のように指定
します。
include="9.5asc.eq.'abcde'"
例5) 10バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「ab"cd」があるレコードを選択する場合は、次のように指定
します。
include="9.5asc.eq.'ab¥"cd'"
例6) 10バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「abc'd」があるレコードを選択する場合は、次のように指定
します。
include="9.5asc.eq.'abc''d'"
例7) 10バイト目の位置から長さ4バイトの外部10進数のフィールドが「-1000」のレコードを選択する場合は、次のように指定します。
include=9.4zdl.eq.d-1000
例8) 4バイト目の位置から長さ3バイトのASCIIコードのフィールドに文字列「abc」がある、かつ10バイト目の位置から長さ3バイトのASCII
コードのフィールドに文字列「abc」があるレコード、または4バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「abcde」
があるレコードを選択する場合は、次のように指定します。
include="3.3asc.eq.'abc'.and.9.3asc.eq.'abc'.or.3.5asc.eq.'abcde'"
5.2.5.5 omitオペランド
入力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを処理の対象から除外します。
omitオペランドは、includeオペランドとは排他関係にあります。
- 113 -
記述形式
omit=condition-expression
condition-expression
選択フィールド(選択条件)を指定します。
condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペランド(condition-expression の記述形
式)を参照してください。
5.2.5.6 reconstオペランド
入力ファイルのレコード再編成機能を使用する場合に再編成フィールドを指定します。
再編成フィールドに指定したフィールドは、出力レコードの先頭から順に詰めて出力します。入力ファイルのレコード再編成機能を使
用する場合、キーフィールド、集約フィールド、出力ファイルのレコード選択機能で指定する選択フィールド、および出力ファイルのレ
コード再編成機能で指定する再編成フィールドは、入力ファイルのレコード再編成後のフィールド位置を指定します。
記述形式
reconst=reconst-definition
reconst-definition
再編成フィールドを指定します。
コンマ( , )で区切って複数のreconst-definition を指定できます。
reconst-definition の記述形式
reconst-definition の記述形式には、以下の4つの形式があります。
・ reconst-definition の記述形式1
reconst-definition の記述形式1では、入力レコードのフィールドを指定します。
指定したフィールドが入力レコードに存在しない場合は、エラーになります。
pos.len
・ reconst-definition の記述形式2
reconst-definition の記述形式2では、自己規定値を指定します。
self-def.len typ [ opt ]
・ reconst-definition の記述形式3
reconst-definition の記述形式3では、入力レコードの指定位置から終端までを再編成フィールドに指定します。
指定したフィールドが入力レコードに存在しない場合は、エラーになります。
pos.END
・ reconst-definition の記述形式4
reconst-definition の記述形式4では、空フィールドを指定します。
テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定できます。
EMPTY [ opt ]
pos
再編成フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
- 114 -
len
再編成フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
reconst-definition の記述形式1では、長さの制限はありません。reconst-definition の記述形式2で指定可能な各データ形式の長さに
ついては、2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、再編成フィール
ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ
のダブルクォーテーション( " )として長さを計算します。
例) テキストファイルCSV形式における、再編成フィールドと長さ
再編成フィールド
ABC
"ABC"
"A""B""C"
"A,B,C"
再編成フィールドとして有効な文字
ABC
ABC
A"B"C
A,B,C
再編成フィールドの長さ
3バイト
3バイト
5バイト
5バイト
self-def
自己規定値を指定します。
self-def の記述形式を以下に示します。
・ self-def の記述形式1
self-def の記述形式1では、文字を直接指定します。
'文字列 '
・ self-def の記述形式2
self-def の記述形式2では、文字を16進数で指定します。
x16進数
・ self-def の記述形式3
self-def の記述形式3では、数値、または数字を10進数で指定します。
d10進数
注意
・ オペランド引数で自己規定値の文字列を指定する場合は、オペランド引数全体をダブルクォーテーション( " )で囲みます。
・ オペランド引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、ダブルクォーテーション( " )の前
に円記号( ¥ )を指定します。
・ オペランド引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、クォーテーション( ' )を2つ続けて指定し
ます。
・ 自己規定値の10進数を指定する場合は、符号を指定できます。
・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。
・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま
せん。
- 115 -
・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールド分離文字、レコード分離文字(注)、
またはダブルクォーテーション( " )が含まれているときは、自己規定値をダブルクォーテーション( " )で囲んで出力します。この際、
自己規定値のダブルクォーテーション( " )は、2つ連続して出力します。
注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含ま
れている場合、自己規定値をダブルクォーテーション( " )で囲みます。
例) 自己規定値にフィールド分離文字(コンマ)、またはダブルクォーテーション( " )を含む場合の再編成フィールドに出力される
データ
自己規定値の指定
FIELD"2"
FIELD2,3
FIELD"2",3
再編成フィールドに出力されるデータ
"FIELD""2"""
"FIELD2,3"
"FIELD""2"",3"
・ 自己規定値で指定した値とlen で指定した長さが異なるときは、以下に示すように処理します。
- 自己規定値が文字列の場合
- 自己規定値で指定した文字列の長さが len で指定した長さより短い場合は、自己規定値を左詰めにして右余白に空白を
詰めます。
- 自己規定値で指定した文字列の長さがlen で指定した長さより長い場合は、エラーとなります。
- 自己規定値が数字、または数値の場合
- 自己規定値で指定した値をtyp とlen で指定したデータ形式と長さに変換して埋め込みます。
- 変換結果がlen を超える場合は、エラーとなります。
・ 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号なし固定小数点2進数、システム依
存形式固定小数点2進数、システム依存形式符号なしの自己規定値を10進数で指定する場合、その値は以下の範囲になります。
長さ
符号ありのデータ形式
符号なしのデータ形式
1バイト
-128~127
0~255
2バイト
-32768~32767
0~65535
3バイト
-8388608~8388607
0~16777215
4バイト以上
-2147483648~2147483647
0~4294967295
typ
自己規定値のデータ形式を指定します。
指定可能なデータ形式については、2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。
注意
・ ASCIIコードは、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコー
ド系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペラン
ド)がASCIIコード系の場合に指定できます。
・ EBCDICコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系の場合に指定でき
ます。
・ シフトJISコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がASCIIコード系の場合に指定できま
す。
・ Unicode UCS-2形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDIC
コード系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペ
ランド)がUnicode系(UCS-2形式)の場合に指定できます。
- 116 -
・ Unicode UTF-8形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDIC
コード系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペ
ランド)がUnicode系(UTF-8形式)の場合に指定できます。
END
reconst-definition の記述形式3の場合に、'END'の固定文字列を指定します。
EMPTY
reconst-definition の記述形式4の場合に、'EMPTY'の固定文字列を指定します。
opt
再編成フィールドの操作を指定します。
テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、reconst-definition の記述形式2、またはreconst-definition の記
述形式4のときに指定できます。以下から選択して指定します。省略した場合は、Lを指定したものとして動作します。
意味
opt
A
再編成フィールドをダブルクォーテーション( " )で囲みます。
L
再編成フィールドをダブルクォーテーション( " )で囲みません。
ただし、再編成フィールドに、フィールド分離文字、レコード分離文字(注)、またはダブル
クォーテーション( " )が含まれている場合は、ダブルクォーテーション( " )で囲みます。
注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含まれ
ている場合、自己規定値をダブルクォーテーション( " )で囲みます。
参考
・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、reconst-definition の記述形式1、または reconst-definition
の記述形式3のときに、再編成フィールドをダブルクォーテーション( " )で囲むかどうかは、入力レコードのフィールドに従います。
入力レコードのフィールドがダブルクォーテーション( " )で囲まれているときは、レコード再編成後のフィールドもダブルクォーテーション
( " )で囲みます。
例) 再編成フィールドを「reconst=1.3,2.2」と指定した場合
入力レコード
出力レコード
"001","ABC",60
"ABC",60
"002","ABCDE",50
"ABC",50
"003","AB,CDE",40
"AB,",40
"004","AB"CDE,30 (注)
"AB"C,30
注) 2番目のフィールドは、「AB」がダブルクォーテーションで囲まれ、「CDE」がそのあとに続いていると判断します。
記述例
例
例1) 入力レコードの5バイト目から長さ10バイトのフィールドを再編成する場合は、次のように指定します。
reconst=4.10
例2) 自己規定値としてASCIIコードの「abc」を文字列で指定する場合は、以下のように指定します。
reconst="'abc'.3asc"
例3) 自己規定値としてダブルクォーテーション( " )を含んだASCIIコードの「ab"cd」を文字列で指定する場合は、以下のように指定し
ます。
- 117 -
reconst="'ab¥"cd'.5asc"
例4) 自己規定値としてクォーテーション( ' )を含んだASCIIコードの「abc'd」を文字列で指定する場合は、以下のように指定します。
reconst="'abc''d'.5asc"
例5) 自己規定値としてASCIIコードの「abc」を16進数で指定する場合は、以下のように指定します。
reconst=x616263.3asc
例6) 自己規定値として外部10進数の「-32」を長さ4バイトで指定する場合は、以下のように指定します。
reconst=d-32.4zdl
例7) 入力レコードの5バイト目からレコードの最後までを再編成する場合は、以下のように指定します。
reconst=4.END
例8) 入力レコードの3バイト目から長さ8バイトのフィールドを再編成し、その後に自己規定値として文字列「,」を再編成して、さらにその
後に入力レコードの20バイト目から長さ5バイトのフィールドを再編成する場合は、次のように指定します。
reconst="2.8,','.1asc,19.5"
例9) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、自己規定値としてASCIIコードの「abc」を文字列で指定し、こ
のフィールドをダブルクォーテーション( " )で囲むときは、以下のように指定します。
reconst="'abc'.3ascA"
例10) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、入力レコードの1番目のフィールドと2番目のフィールドの間
にダブルクォーテーション( " )で囲まれた空フィールドを追加するときは、以下のように指定します。
reconst=0.1,EMPTYA,1.END
5.2.5.7 eofオペランド
入力ファイルがテキストファイルの場合に、EOF制御文字の扱いを指定します。
記述形式
eof={ effect | ignore }
effect
最初のEOF制御文字をファイルの最後と認識して、最初のEOF制御文字までを入力します。
eofオペランドを省略した場合、effectが指定されたものとします。
ignore
EOF制御文字をファイルの最後と認識せず、EOF制御文字以降も入力します。
5.2.5.8 overwriteオペランド
出力ファイルが入力ファイルと同じ場合に、処理を継続することを指定します。
overwriteオペランドを指定し、出力ファイルに入力ファイルと同じファイルを指定すると、指定された入力ファイルに処理結果が上書き
されるため、ディスクスペースを節約できます。overwriteオペランドを省略して、出力ファイルに入力ファイルと同じファイルを指定した
場合は、エラーとなります。
overwriteオペランドは、ソート機能のときに有効です。
記述形式
overwrite
- 118 -
注意
出力ファイルが入力ファイルと同じ場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場合がありますの
で、注意してください。
5.2.6 マージオプション(-merge)
マージ機能を指定します。
マージオプション(-merge)、ソートオプション(-sort)、およびコピーオプション(-copy)は互いに排他関係にあります。
記述形式
-merge [ key=key-definition [ ,key-definition ...] [ key= ...] ]
[ jef=jef-definition [ ,jef-definition ...] [ jef= ...] ]
5.2.6.1 keyオペランド
キーフィールドを指定します。
1つのキーフィールドは、位置、長さ、データ形式、および操作で構成されます。
複数のキーフィールドを指定した場合、指定した順に比較が行われます。複数のキーフィールドを指定する場合は、キーフィールドをコンマ
( , )で区切って指定します。また、keyオペランドを複数指定することもできます。
keyオペランドを省略した場合、レコード全体をキーフィールドとみなしてコードの昇順に並べます。
注意
テキストファイルCSV形式、テキストファイルTSV形式の場合、キーフィールドは省略できません。
記述形式
key=key-definition [ ,key-definition ...] [ key= ...]
key-definition の記述形式
key-definition の記述形式には、以下の2つの形式があります。
・ key-definition の記述形式1
key-definition の記述形式1では、入力レコード中のフィールドをキーフィールドとして指定します。
pos.len typ [ opt ]
・ key-definition の記述形式2
key-definition の記述形式2では、レコード全体をキーフィールドとして指定します。
テキストファイルCSV形式、テキストファイルTSV形式の場合は、指定できません。
ALL [ opt ]
pos
キーフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
len
キーフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
- 119 -
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数でlen に指定します。このとき、pos の位
置にある1バイトのフィールド値とマスク値の論理積がキー値になります。
指定可能な各データ形式の長さについては、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、キーフィールドの
長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つのダ
ブルクォーテーション( " )として長さを計算します。
例) テキストファイルCSV形式における、キーフィールドと長さ
キーフィールド
ABC
"ABC"
"A""B""C"
"A,B,C"
キーフィールドとして有効な文字
ABC
ABC
A"B"C
A,B,C
キーフィールドの長さ
3バイト
3バイト
5バイト
5バイト
typ
キーフィールドのデータ形式を指定します。
指定可能なデータ形式については、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。
opt
キーフィールドの操作を指定します。
指定可能な操作を以下に示します。バイナリファイルの場合は、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」など)を英字と数値に分けて評価し並べま
す。
英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。
指定フィールドの左から評価し、有効データ後に出現したデータは無視します。データ
- 120 -
意味
opt
形式が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とは排他関係にあります。
注意
・ 漢字ソートマージ機能では、キーフィールドの操作にbを指定した場合、全角の空白も無視します。
・ キーフィールドのデータ形式に照合順序変更を指定した場合、キーフィールドの操作にa、またはr以外を指定することはできませ
ん。
・ キーフィールドのデータ形式に文字形式2桁年号を指定した場合、キーフィールドの操作にa、またはr以外を指定しても無視され
ます。
ALL
key-definition の記述形式2の場合に、'ALL'の固定文字列を指定します。
キーフィールドの指定を省略し、レコード全体をキーフィールドとする場合に指定します。キーフィールドの操作を指定する必要がなけ
れば、keyオペランドを省略できます。
記述例
例
例1) 入力レコードの先頭から長さ10バイトのASCIIコードのフィールドを昇順に並べる場合は、次のように指定します。
key=0.10asca
例2) 入力レコードの5バイト目から長さ8バイトの外部10進数のフィールドを降順に並べる場合は、次のように指定します。
key=4.8zdlr
例3) テキストファイル固定フィールド指定の場合、入力レコードの10バイト目から長さ20バイトのASCIIコードのフィールドを昇順に並べ
る場合は、次のように指定します。なお、キーフィールドの先頭の空白とタブは無視し、英小文字を英大文字として比較します。
key=9.20ascabj
例4) レコード全体をキーとして降順に並べる場合は、次のように指定します。
key=ALLr
参考
バイナリファイルの可変長レコード形式、またはテキストファイルの場合、キーフィールドが存在しないレコードが入力されたときは、キー
フィールドが存在しない部分の値を0とみなして処理します。
- 121 -
5.2.6.2 jefオペランド
漢字ソートマージ機能を使用する場合に、漢字フィールド、およびふりがなフィールドを指定します。
jefオペランドは、キーフィールドの操作として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としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
len
ふりがなフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
- 122 -
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、ふりがなフィール
ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ
のダブルクォーテーション( " )として長さを計算します。
typ
ふりがなフィールドのデータ形式を指定します。
指定可能なデータ形式を以下に示します。
表5.1 バイナリファイルの場合
種類
文字
データ形式
typ
長さ(バイト)
ASCIIコード
asc
1~レコード長(注1)
EBCDICコード(注2)
ebc
1~レコード長(注1)
シフトJISコード
sji
1~レコード長(注1)
JEFコード(注2)
jef
2~レコード長(2の倍数) (注1)
表5.2 テキストファイルの場合
種類
文字
データ形式
typ
長さ(バイト)
ASCIIコード
asc
1~レコード長(注1)
シフトJISコード
sji
1~レコード長(注1)
注1) 入力ファイルのレコード再編成機能を指定した場合は、入力ファイルのレコード再編成後のレコード長まで指定できます。レコー
ド再編成機能については、5.2.5.6 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
5.2.7 実行環境オプション(-option)
各種実行環境オプションを指定します。
記述形式
-option [
[
[
[
[
[
colseq=col-def [ ,col-def ...] [ colseq= ...] ]
fifo ]
icode=input-code ]
iconv=input-conversion ]
memsize=memory-size ]
msgfile=message-file ]
- 123 -
[ msglevel=message-level ]
[ tmpdir=temp-directory [ ,temp-directory ...] [ tmpdir= ...] ]
5.2.7.1 colseqオペランド
照合順序を変更するための情報を指定します。
記述形式
colseq=col-def [ ,col-def ...] [ colseq= ...]
col-def
照合順序を変更するための情報を指定します。
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
5.2.7.2 fifoオペランド
先入力先出力(FIFO)機能を指定します。
指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。
先入力先出力(FIFO)機能は、ソート機能のときに有効です。先入力先出力(FIFO)機能を指定しなかった場合、キーフィールドの値が
同一なレコードの出力順序は不定です。マージ機能、コピー機能、レコード集約機能、およびサプレス機能と同時に指定された場合、
先入力先出力(FIFO)機能の指定は無視されます。
記述形式
fifo
注意
fifoオペランドは、環境変数BSORT_FIFOの指定より優先されます。
5.2.7.3 icodeオペランド
入力ファイルのコード系を指定します。
記述形式
icode=input-code
- 124 -
input-code
入力ファイルのコード系を指定します。
以下から1つを選択して指定します。
意味
input-code
au
ASCIIコード系 (富士通COBOL形式) (省略値)
ac
ASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式)
eb
EBCDICコード系 (注)
u2
Unicode系 (UCS-2形式)
u8
Unicode系 (UTF-8形式)
注) EBCDICコード系はバイナリファイルの場合に指定可能です。
5.2.7.4 iconvオペランド
ASCIIコードとEBCDICコード間の変換方式を指定します。
記述形式
iconv=input-conversion
input-conversion
ASCIIコードとEBCDICコード間の変換方式を指定します。
以下から1つを選択して指定します。
意味
input-conversion
0
EBCDICコードとUS ASCIIコード間のコード変換を指定します。(省略値)
1
EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定します。
2
EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定します。
参考
以下の場合にASCIIコードとEBCDICコード間の変換が行われます。
・ 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がASCIIコード系でキーフィールドのデータ形式がEBCDIC
コードの場合におけるキーフィールドの比較
・ 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系でキーフィールドのデータ形式がASCII
コードの場合におけるキーフィールドの比較
・ 選択フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己規定値の変換
・ 再編成フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己規定値の変換
5.2.7.5 memsizeオペランド
PowerSORTが使用する作業域の大きさ(メモリサイズ)を指定します。
記述形式
memsize=memory-size
- 125 -
memory-size
PowerSORTが使用する作業域の大きさをキロバイト数で指定します。
32~2097151キロバイトの範囲で指定します。memsizeオペランドを省略した場合、または0を指定した場合、環境変数BSORT_MEMSIZE
の指定があればその大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。2097152以上の値を指定した場合
は、2097151を指定したとみなされます。
注意
memsizeオペランドは、環境変数BSORT_MEMSIZEの指定より優先されます。
5.2.7.6 msgfileオペランド
メッセージを出力するファイルパス名を指定します。
記述形式
msgfile=message-file
message-file
メッセージを出力するファイルパス名を指定します。
msgfileオペランドを省略した場合、環境変数BSORT_MSGFILEの指定があれば、そのファイルにメッセージを出力します。メッセージ
ファイル以外へのメッセージの出力は、環境変数BSORT_MSGOUTの指定に従います。メッセージファイルに空白を含むファイル名
を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。
注意
msgfileオペランドは、環境変数BSORT_MSGFILEの指定より優先されます。
5.2.7.7 msglevelオペランド
出力するメッセージの種別を指定します。
記述形式
msglevel=message-level
message-level
出力するメッセージの種別(レベル)を指定します。
msglevel オ ペ ラ ン ド を 省 略 し た 場 合 は 、 環 境 変 数 BSORT_MSGLEVEL の 指 定 に 従 い ま す 。 msglevel オ ペ ラ ン ド も 環 境 変 数
BSORT_MSGLEVELの指定も省略されている場合は、message-level にW(エラーメッセージ、および警告メッセージを出力)を指定し
たとみなします。メッセージの出力先は、msgfileオペランド、環境変数BSORT_MSGFILE、および環境変数BSORT_MSGOUTの指定
により決まります。
指定可能なメッセージの種別(レベル)を以下に示します。
意味
message-level
N
何も出力しません。
E
エラーメッセージを出力します。
W
エラーメッセージ、および警告メッセージを出力します。(省略値)
I
エラーメッセージ、警告メッセージ、および情報メッセージを出力します。
また、以前のバージョンとの互換用として、以下の種別(レベル)も指定できます。
- 126 -
意味
message-level
0
何も出力しません。
1
エラーメッセージ、および警告メッセージを出力します。(省略値)
2
エラーメッセージ、警告メッセージ、および情報メッセージを出力します。
注意
・ 何も出力しないと指定した場合でも、コマンドシンタックスのエラーとコマンドヘルプは標準エラー出力に出力します。
・ msglevelオペランドは、環境変数BSORT_MSGLEVELの指定より優先されます。
5.2.7.8 tmpdirオペランド
一時ファイルを作成するフォルダ名を指定します。
記述形式
tmpdir=temp-directory
temp-directory
一時ファイルを作成するフォルダ名を指定します。
コンマ( , )で区切って複数のフォルダ名を指定できます。フォルダ名に空白が含まれる場合は、フォルダ名をダブルクォーテーション( " )
で囲みます。
注意
・ 一時ファイルを作成するフォルダ指定の優先順位については、環境変数BSORT_TMPDIRを参照してください。
・ 誤ったフォルダ名を指定すると意図しないファイルが削除される場合があります。
5.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 ...]
5.2.8.1 fileオペランド
出力ファイルのファイルパス名を指定します。
- 127 -
記述形式
file=file-name
file-name
出力ファイルのファイルパス名を指定します。
コンマ( , )で区切って複数の出力ファイルを指定できます。複数の出力ファイルを指定し、かつmaxfilesizeオペランド、またはmaxrecnum
オペランドを指定した場合、maxfilesizeオペランド、またはmaxrecnumオペランドの指定に従って複数のファイルに分割して出力しま
す。複数の出力ファイルを指定し、かつmaxfilesizeオペランド、およびmaxrecnumオペランドを指定しなかった場合、出力ファイルが
ファイルシステムの許容量を超えたときのリカバリー処理として複数のファイルに分割して出力します。リカバリー処理は、以下のファイ
ルを処理する場合に指定できます。
・ システム標準のファイル(テキストファイル、バイナリファイル)
注意
・ 指定された出力ファイルをすべて使用しても出力できないレコードが存在する場合は、エラーになります。
・ 指定された出力ファイルが1つの場合、maxfilesizeオペランド、およびmaxrecnumオペランドを指定できません。
・ その他のfile-name 記述上の注意事項については、入力ファイル情報オプション(-input)のfileオペランドを参照してください。
5.2.8.2 filesysオペランド
fileオペランドで指定した出力ファイルのファイルシステムを指定します。
記述形式
filesys=file-system
file-system
出力ファイルのファイルシステムを指定します。
省略時はシステムの標準ファイルシステムを指定したものとします。
指定可能なファイルシステムについては、入力ファイル情報オプション(-input)のfilesysオペランドを参照してください。
5.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オペランドは、以下のファイルを処理する場合に指定できます。
・ システム標準のファイル(テキストファイル、バイナリファイル)
- 128 -
注意
fileオペランドで指定した出力ファイルが1つの場合、maxfilesizeオペランドは指定できません。
5.2.8.4 maxrecnumオペランド
1つのファイルに出力可能な最大レコード数を指定します。
記述形式
maxrecnum=max-recordnumber
max-recordnumber
1つのファイルに出力可能な最大レコード数を指定します。
レコード数がmax-recordnumber を超える場合、fileオペランドで指定した次の出力ファイルに続きを出力します。maxfilesizeオペランド
と同時に指定した場合は、先に上限に達した時点で次の出力ファイルに出力します。また、指定した上限に達する前に出力ファイル
がファイルシステムの許容量を超えた場合は、許容量を超えた時点で次の出力ファイルに出力します。
注意
fileオペランドで指定した出力ファイルが1つの場合、maxrecnumオペランドは指定できません。
5.2.8.5 includeオペランド
出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを出力の対象とします。
includeオペランドは、omitオペランド、およびcaseオペランドとは排他関係にあります。
記述形式
include=condition-expression
condition-expression
選択フィールド(選択条件)を指定します。
コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となります。複数のincludeオペランドを指定
した場合は、選択条件の論理和となります。
condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペランド(condition-expression の記述形
式)を参照してください。
5.2.8.6 omitオペランド
出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを処理の対象から除外します。
omitオペランドは、includeオペランド、およびcaseオペランドとは排他関係にあります。
記述形式
omit=condition-expression
condition-expression
選択フィールド(選択条件)を指定します。
コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となります。複数のomitオペランドを指定した
場合は、選択条件の論理和となります。
- 129 -
condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペランド(condition-expression の記述形
式)を参照してください。
5.2.8.7 caseオペランド
出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを出力の対象とします。
caseオペランドは、includeオペランド、およびomitオペランドとは排他関係にあります。
記述形式
case={ condition-expression | other }
condition-expression
選択フィールド(選択条件)を指定します。
コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となります。複数のcaseオペランドを指定した
場合は、選択条件の論理和となります。caseオペランドでは、これより前に指定した出力ファイル情報オプション(-output)のcaseオペラ
ンドで出力されたレコードは出力の対象から除外されます。
condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペランド(condition-expression の記述形
式)を参照してください。
other
'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
5.2.8.8 reconstオペランド
出力ファイルのレコード再編成機能を使用する場合に再編成フィールドを指定します。
記述形式
reconst=reconst-definition
reconst-definition
再編成フィールドを指定します。
出力ファイルのレコード選択処理の後に、reconst-definition で指定した再編成フィールドに従ってレコードを再編成します。
reconst-definition の記述形式については、入力ファイル情報オプション(-input)のreconstオペランド(reconst-definition の記述形式)を
参照してください。
5.2.8.9 idxflagオペランド
富士通COBOLファイルシステムの索引ファイルにおける、インデックスの作成方法を指定します。
- 130 -
記述形式
idxflag=index-flag
index-flag
以下から選択して指定します。
複数指定する場合は、続けて指定します。
意味
index-flag
c
インデックスに圧縮キー指定を示します。
r
レコードのデータ圧縮指定を示します。
5.2.8.10 idxkeyオペランド
出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを指定します。
富士通COBOLファイルシステムの索引ファイルの場合は、idxkeyオペランドを省略できません。
記述形式
idxkey=index-key [ ,index-key ...]
index-key
インデックスフィールドを指定します。
最初に主キーを指定し、その後に副キーを指定します。
index-key の記述形式
pos.len typ opt
pos
インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。
len
インデックスフィールドの長さをバイト数で指定します。
typ
インデックスフィールドのデータ形式を指定します。
指定可能なデータ形式と長さを以下に示します。
種類
文字
データ形式
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
インデックスフィールドの操作を指定します。
指定可能な操作を以下に示します。最終セグメントには、必ずeを指定します。
- 131 -
意味
opt
a
昇順に並べます。
d
インデックスに重複キー指定を示します。
e
セグメントの終りを示します。
5.2.8.11 linedlmtオペランド
出力ファイル内のレコード分離文字を指定します。
テキストファイルのときに有効です。
記述形式
linedlmt=line-delimiter
line-delimiter
出力ファイル内のレコード分離文字を指定します。
指定可能なレコード分離文字を以下に示します。省略時は、入力ファイル(複数の入力ファイルを指定した場合は先頭の入力ファイ
ル)のレコード分離文字と同じになります。
意味
line-delimiter
crlf
CRLFをレコード分離文字として扱います。
cr
CRをレコード分離文字として扱います。
lf
LFをレコード分離文字として扱います。
参考
入力ファイル内のレコード分離文字は、入力ファイル内から自動的に判断します。なお、レコード分離文字(CRLF、CR、LF)が入力ファ
イル内に混在している場合は、最初に現れたレコード分離文字とします。
5.2.8.12 removeeofオペランド
出力ファイルがテキストファイルの場合に、EOF制御文字を取り除きます。
記述形式
removeeof
5.2.9 入力レコード情報オプション(-record)
入力レコード情報を指定します。
記述形式
-record [ recform=record-format ] [ fldsep=field-separate ]
5.2.9.1 recformオペランド
レコード形式を指定します。
記述形式
recform=record-format
- 132 -
record-format
レコード形式を指定します。
システムの標準ファイルシステムのファイルを処理する場合にレコード形式の指定を省略すると、バイナリファイル固定長レコード形式
を指定したものとして動作します。システムの標準ファイルシステム以外のファイル、またはテキストファイルを処理する場合は省略でき
ません。指定可能なレコード形式については、2.6 PowerSORTの入出力環境、および2.7.2 フィールドの指定方法を参照してくださ
い。
次から1つを選択して指定します。
意味
record-format
fix
バイナリファイル固定長レコード形式
var
バイナリファイル可変長レコード形式
txtfix
テキストファイル固定フィールド指定のレコード形式
txtflt
テキストファイル浮動フィールド指定のレコード形式
txtcsv
テキストファイルCSV形式
txttsv
テキストファイルTSV形式
注意
システムの標準ファイルシステムのファイルを処理する場合は、レコード形式にバイナリファイル可変長レコード形式を指定できませ
ん。
5.2.9.2 fldsepオペランド
テキストファイル浮動フィールド指定のレコード形式の場合に、フィールド分離文字列を指定します。
記述形式
fldsep=field-separate
field-separate
テキストファイル浮動フィールド指定のレコード形式の場合に、フィールド分離文字列を指定します。
省略時は、タブ、および空白をフィールド分離文字として扱います。フィールド分離文字列に空白を含む場合は、フィールド分離文字
列をダブルクォーテーション( " )で囲みます。フィールド分離文字列にダブルクォーテーション( " )を指定する場合は、ダブルクォーテーション
( " )の前に円記号( ¥ )を指定します。
記述例
例
例1) フィールド分離文字列として、文字列「SEPARATE」を指定します。
fldsep=SEPARATE
例2) フィールド分離文字列として、文字列「F S」を指定します。
fldsep="F S"
例3) フィールド分離文字列として、文字「'」を指定します。
fldsep='
例4) フィールド分離文字列として、文字「"」を指定します。
- 133 -
fldsep=¥"
例5) フィールド分離文字列として、文字「¥」を指定します。
fldsep=¥
例6) フィールド分離文字列として、文字列「**」を指定します。
fldsep=**
例7) フィールド分離文字列として、文字列「* *」を指定します。
fldsep="* *"
5.2.10 ソートオプション(-sort)
ソート機能を指定します。
ソートオプション(-sort)、マージオプション(-merge)、およびコピーオプション(-copy)は互いに排他関係にあります。ソートオプション(sort)、マージオプション(-merge)、およびコピーオプション(-copy)を省略した場合は、レコード全体をキーとしたソート機能を指定したも
のとして処理します。
各オペランドの説明は、5.2.6 マージオプション(-merge)を参照してください。
記述形式
-sort [ key=key-definition [ ,key-definition ...] [ key= ...] ]
[ jef=jef-definition [ ,jef-definition ...] [ jef= ...] ]
5.2.11 レコード集約オプション(-summary)
レコード集約機能、またはサプレス機能を使用する場合に、集約フィールド、またはサプレス機能を指定します。
レコード集約処理、またはサプレス処理は、出力処理の前にすべての出力レコードに対して行います。
レコード集約オプション(-summary)は、ソート機能、またはマージ機能の場合に有効です。先入力先出力(FIFO)機能(実行環境オプション
(-option)のfifoオペランド、または環境変数BSORT_FIFO)と同時に指定された場合、先入力先出力(FIFO)機能の指定は無視されま
す。
記述形式
-summary { field=summary-definition [ ,summary-definition ...] [ field= ...]
| suppress } [ { first | last } ]
5.2.11.1 fieldオペランド
レコード集約機能を使用する場合に集約フィールドを指定します。
レコード集約機能は、指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1つのレコードにする機能です。テキ
ストファイルの場合は、ASCIIコード、Unicode UCS-2形式、およびUnicode UTF-8形式で記述された半角の数字だけを処理の対象と
します。
suppressオペランドとは排他関係にあります。
記述形式
field=summary-definition
summary-definition
集約フィールドを指定します。
summary-definition の記述形式
pos.len typ [ opt ]
- 134 -
pos
集約フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
len
集約フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、指
定したフィールド長に拡張して処理します。
指定可能な各データ形式の長さについては、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、集約フィールド
の長さに含みません。
例) テキストファイルCSV形式における、集約フィールドと長さ
集約フィールド
123
"123"
集約フィールドとして有効な文字
123
123
集約フィールドの長さ
3バイト
3バイト
typ
集約フィールドのデータ形式を指定します。
指定可能なデータ形式については、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。
opt
テキストファイルの場合に集約フィールドの出力形式を指定します。
バイナリファイルの場合に指定するとエラーとなります。指定可能な出力形式を以下に示します。
意味
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とは排他関係にあります。
- 135 -
注意
・ dは、テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定可能です。
テキストファイル固定フィールド指定の場合はエラーになります。
・ iを指定し、集約した値が「0」になった場合は「+」の符号を付けます。
・ bを指定し、符号が付く場合、符号は数字部の直前に付加されます。
・ i、およびuを省略した場合は、以下のように処理します。
- 集約結果が負の値の場合は、集約結果に「-」の符号を付けます。
- 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を付けません。
- 符号なしデータ同士を集約した場合は、集約結果に符号を付けません。
- 符号なしデータと符号付きデータの集約結果が「0」の場合は、符号を付けません。
- 符号付きデータ同士を集約した場合は、集約結果に符号を付けます。集約した結果が「0」の場合は、「+」の符号を付けます。
・ 集約フィールドの値に符号を付ける場合、集約フィールドの値が集約フィールド長を満たしており、符号が付けられないときはオー
バフローとなります。
・ z、b、およびdを省略した場合は、以下のように処理します。
- 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果が満たない場合は、集約フィールドの左余白に
「0」を詰めます。
- 左余白に「0」が詰められているデータ同士のとき
- 左余白に「0」が詰められているデータと左余白に空白が詰められているデータのとき
- 左余白に「0」が詰められているデータと左余白にタブが詰められているデータのとき
- 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果が満たない場合は、集約フィールドの左余
白に空白を詰めます。
- 左余白に空白が詰められているデータ同士のとき
- 左余白にタブが詰められているデータ同士のとき
- 左余白に空白が詰められているデータと左余白にタブが詰められているデータのとき
・ レコード集約機能の対象とならなかったレコード(キーフィールドの値が同一である他のレコードが存在しないレコード)の集約フィー
ルドは、以下のように処理します。
- optの指定がある場合は、optで指定された形式で出力します。
- optの指定がない場合は、入力されたままの形式で出力されます。
記述例
例
例1) 入力レコードの7バイト目から長さ8バイトの内部10進数のフィールドを集約フィールドに指定する場合は、次のように指定します。
-summary field=6.8pdl
例2) テキストファイルの場合、入力レコードの4バイト目から長さ8バイトのASCIIコードのフィールドを集約フィールドに指定するときは、
次のように指定します。なお、集約フィールドには符号をつけ、集約フィールドの値がフィールド長に満たないときには左余白に空白を
詰めます。
-summary field=4.8ascib
- 136 -
注意
・ firstオペランド、およびlastオペランドのどちらも指定しなかった場合、レコード集約機能の対象となったレコードの中から、どのレ
コードが出力されるかは不定です。
・ 集約フィールドは、キーフィールド、および他の集約フィールドと重なることはできません。
・ 集約フィールドは、レコード内に存在する必要があります。
・ レコード集約機能を使用する場合、キーフィールドは省略できません。
・ 集約フィールドの集約処理中にオーバフローが生じた場合の動作は、環境変数BSORT_SUMOVERCONTの指定に従います。
・ 小数点を含む数字の集約はできません。
・ テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の
対象とします。
・ テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現れたことにより集約フィールドの位置が変
わる場合は、正しく動作しません。
・ テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れたときは、指定したフィールド長を超
える部分はレコード集約機能の対象とせず、そのまま出力されます。また、指定したフィールド長より短いフィールドが現れたとき
は、指定したフィールド長に拡張します。
例) 集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合(フィールド分離文字は「,」とします)
入力レコード
出力レコード
001,12345ABC,OPQ (注1)
001,12456ABC,OPQ (注2)
001,111,RST
002,00127,UVW
002,15,UVW (注1)
002,00112DEF,XYZ
注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。
注2) 指定したフィールド長を超える部分(「ABC」)は、そのまま出力されます。
・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、指定したフィールド長よりも長いフィールドが現れたときは、指
定したフィールド長を超える部分はレコード集約機能の対象とせず、出力もされません。また、指定したフィールド長より短いフィー
ルドが現れたときは、指定したフィールド長に拡張します。
例) テキストファイルCSV形式で、集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合
入力レコード
出力レコード
001,12345ABC,OPQ (注1)
001,12468,OPQ (注2)
001,123,RST
002,00027,UVW
002,15,UVW (注1)
002,00012DEF,XYZ
注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。
注2) 指定したフィールド長を超える部分(「ABC」)は、出力されません。
・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、集約フィールドをダブルクォーテーション( " )で囲むかどうか
は、出力対象となる入力レコードのフィールドに従います。出力対象となる入力レコードのフィールドがダブルクォーテーション( " )
で囲まれているときは、レコード集約後のフィールドもダブルクォーテーション( " )で囲みます。
例) テキストファイルCSV形式で、集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合
入力レコード
001,"12345",OPQ (注)
001,"123",RST
002,"15",UVW (注)
002,00012,XYZ
003,11111,GHI (注)
003,"00789",JKL
004,98765,MNO (注)
出力レコード
001,"12468",OPQ
002,"00027",UVW
003,11900,GHI
004,98769,MNO
- 137 -
004,4,PQR
注) ここで示したレコードが、レコード集約機能で出力対象になるものとします。
5.2.11.2 suppressオペランド
サプレス機能を指定します。
サプレス機能は、指定したキーフィールドの値が同一のとき、1つのレコードを残して他を削除する機能です。
fieldオペランドとは排他関係にあります。
記述形式
suppress
記述例
例
サプレス機能を使用する場合は次のように指定します。
-summary suppress
5.2.11.3 firstオペランド
同一のキーフィールドを持つレコードの中から、最初に入力したレコードを出力します。
lastオペランドとは排他関係にあります。firstオペランド、およびlastオペランドを省略した場合、同一のキーフィールドを持つレコードの
中から、どのレコードが出力されるかは不定です。
参考
マージ機能を使用している場合にfirstオペランドを指定すると、同一のキーフィールドを持つレコードの中から、最初に指定した入力
ファイル内のレコードを出力します。なお、同一ファイル内のレコードは、そのファイル内の最初のレコードを出力します。
記述形式
first
記述例
例
レコード集約機能を使用し、入力レコードの10バイト目から長さ4バイトの外部10進数のフィールドを集約フィールドに指定し、同一の
キーフィールドを持つレコードの中から、最初に入力したレコードを出力する場合は、次のように指定します。
-summary field=9.4zdl first
5.2.11.4 lastオペランド
同一のキーフィールドを持つレコードの中から、最後に入力したレコードを出力します。
firstオペランドとは排他関係にあります。firstオペランド、およびlastオペランドを省略した場合、同一のキーフィールドを持つレコードの
中から、どのレコードが出力されるかは不定です。
- 138 -
参考
マージ機能を使用している場合にlastオペランドを指定すると、同一のキーフィールドを持つレコードの中から、最後に指定した入力
ファイル内のレコードを出力します。なお、同一ファイル内のレコードは、そのファイル内の最後のレコードを出力します。
記述形式
last
記述例
例
サプレス機能を使用し、同一のキーフィールドを持つレコードの中から、最後に入力したレコードを出力する場合は、次のように指定し
ます。
-summary suppress last
- 139 -
第6章 PowerSORT OCXからPowerSORTを使用する
ここではPowerSORT OCXについて説明します。
6.1 PowerSORT OLEカスタムコントロールとは
PowerSORT OLEカスタムコントロール(以降、OCXと表記します)とは、PowerSORTをOLEコンテナアプリケーション上で簡単に呼び出
すことができるコントロールです。
OCXをサポートしているプログラミング言語で使用することができます。PowerSORT OCXをフォームに配置して、必要なプロパティを
設定することにより、少量のコードを作成するだけで、大量データに対応したソート処理、またはマージ処理をアプリケーションプログラ
ムに追加できます。なお、PowerSORT OCXは、デザイン時にはフォーム上に表示され、実行時には非表示となります。
注意
PowerSORT OCXは、Webページ、およびインターネットでの動作についてはサポートしていません。
6.2 PowerSORT OCXのプロパティシート
PowerSORT OCXをフォームに配置して、必要なプロパティを設定します。
プロパティシートはデザイン時に参照が可能で、作成アプリケーションにおけるPowerSORT OCXの初期値を設定することができます。
各プロパティについての詳細は各プロパティの説明を参照してください。
6.2.1 「File」プロパティページ
入出力ファイル、レコード長関連のプロパティを指定するページです。
書式など、各プロパティの詳細は各プロパティの説明を参照してください。
参照
・ 6.3.20 InputFilesプロパティ
・ 6.3.21 InputFileTypeプロパティ
・ 6.3.25 MaxRecordLengthプロパティ
・ 6.3.28 OutputFileプロパティ
- 140 -
・ 6.3.29 OutputFileTypeプロパティ
・ 6.3.10 EnableOverwriteInputFileプロパティ
Btrieve Informationダイアログボックス
Btrieveファイルに関するプロパティを設定するダイアログボックスです。
このダイアログボックスは、「File」プロパティページでInputFileTypeプロパティ、またはOutputFileTypeプロパティにBtrieveファイルを指
定したときに「Btrieve Info」ボタンが有効となり、出力ファイルに関する情報を入力できます。InputFileTypeプロパティ、または
OutputFileTypeプロパティにBtrieveファイルを指定していない場合は、これらのプロパティは無視されます。
書式など、各プロパティの詳細は各プロパティの説明を参照してください。
参照
・ 6.3.5 BtrieveInfileOwnerNameプロパティ
・ 6.3.4 BtrieveIndexKeyプロパティ
・ 6.3.3 BtrieveFileInfoプロパティ
Fujitsu COBOL85 Indexダイアログボックス
COBOL索引ファイルに関するプロパティを設定するダイアログボックスです。
このダイアログボックスは、「File」プロパティページでOutputFileTypeプロパティに富士通COBOL索引ファイルを指定したときに、「Index
Info」ボタンが有効となり、出力ファイルに関する追加情報を入力することができます。OutputFileTypeプロパティに富士通COBOL索引
ファイルを指定していない場合は、このプロパティは無効となります。
書式など、各プロパティの詳細は各プロパティの説明を参照してください。
- 141 -
参照
・ 6.3.15 FjcobKeyCompressionプロパティ
・ 6.3.14 FjcobDataCompressionプロパティ
・ 6.3.16 FjcobPrimeKeyプロパティ
・ 6.3.13 FjcobAlternateKeyプロパティ
6.2.2 「Disposal」プロパティページ
実行する処理を指定するページです。
書式など、各プロパティの詳細は各プロパティの説明を参照してください。
参照
・ 6.3.9 DisposalNumberプロパティ
6.2.3 「KeyField」プロパティページ
キーフィールド、またはキーフィールドを省略した場合のキーフィールドの操作を指定するプロパティページです。
書式など、各プロパティの詳細は各プロパティの説明を参照してください。
- 142 -
参照
・ 6.3.23 KeyCmdStrプロパティ
・ 6.3.6 CollationOrderプロパティ
・ 6.3.31 Reverseプロパティ
・ 6.3.18 IgnoreControlCodeプロパティ
・ 6.3.1 AlphaNumOnlyプロパティ
・ 6.3.33 SkipLeadingBlankプロパティ
・ 6.3.7 CompareAsUpperCaseプロパティ
6.2.4 「Record」プロパティページ
フィールド分離文字、またはレコード分離文字などのレコード情報を指定するプロパティページです。
書式など、各プロパティの詳細は各プロパティの説明を参照してください。
- 143 -
参照
・ 6.3.24 LineDelimiterプロパティ
・ 6.3.11 FieldDefinitionプロパティ
・ 6.3.12 FieldDelimiterプロパティ
6.2.5 「Option」プロパティページ
レコード単位の処理を指定するプロパティページです。
書式など、各プロパティの詳細は各プロパティの説明を参照してください。
参照
・ 6.3.30 RconCmdStrプロパティ
・ 6.3.32 SelCmdStrプロパティ
・ 6.3.17 HandlingSameKeyプロパティ
・ 6.3.34 SumCmdStrプロパティ
・ 6.3.22 InputFilesSkiprecプロパティ
6.2.6 「Environment」プロパティページ
PowerSORTが使用するメモリ量、一時ファイルのフォルダ名など動作環境を設定するプロパティページです。
書式など、各プロパティの詳細は各プロパティの説明を参照してください。
- 144 -
参照
・ 6.3.35 TempDirプロパティ
・ 6.3.36 UsableMemorySizeプロパティ
・ 6.3.27 MessageLevelプロパティ
・ 6.3.26 MessageFileNameプロパティ
・ 6.3.8 DispMessageプロパティ
6.3 実行前に設定するプロパティ
ここでは、PowerSORT OCXのプロパティについて説明します。
各プロパティの説明中、設定値の箇所はVisual Basicのデータ型を記述しています。Visual Basicのデータ型に関しては、B.8 Visual Basic
のデータ型とPowerSORTのデータ形式の関係を参照してください。
6.3.1 AlphaNumOnlyプロパティ
キーフィールドとして比較する文字を空白、および英数字のみに設定します。
構文
object.AlphaNumOnly = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
キーフィールドとして比較する文字を空白、および英数字のみとするかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
AlphaNumOnlyプロパティの設定値は次のとおりです。
- 145 -
設定値
意味
True
空白と英数字のみを比較の対象とします。
False
すべての文字を比較の対象とします。(省略値)
解説
・ Trueを指定すると、空白、および英数字のみを取り出して比較し、レコードの順序を決定します。
・ このプロパティで指定された値は、テキストファイルのソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber = 1)に
おいて、キーフィールドを省略した場合に有効となります。
・ この指定を省略した場合、すべての文字を比較の対象とします。
参照
・ 6.3.6 CollationOrderプロパティ
・ 6.3.7 CompareAsUpperCaseプロパティ
・ 6.3.18 IgnoreControlCodeプロパティ
・ 6.3.31 Reverseプロパティ
・ 6.3.33 SkipLeadingBlankプロパティ
6.3.2 AlternateModeプロパティ
EBCDICコードとASCIIコード間の変換方式を指定します。
構文
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コード間のコード変換をします。
- 146 -
6.3.3 BtrieveFileInfoプロパティ
Btrieveファイルを出力ファイルとする場合のファイル情報を指定します。
構文
object.BtrieveFileInfo = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
ファイル情報を記述形式に従って指定します。
stringの記述形式
L.S[opt]
L
4から4096バイトの範囲でレコード長を指定します。
レコード長の指定は省略できません。
S
512から4096の範囲でページサイズを指定します。
ページサイズの指定は省略できません。
opt
必要に応じて、以下のオプションを指定します。
オプションの指定は省略できます。また、複数のオプションを同時に指定できます。ただし、f10、f20、およびf30を複数指定した場合
は、最後に指定したオプションが有効となります。
オプション
意味
d
データ圧縮
v
可変長レコード
b
後続ブランク除去
a
プリアロケーション (注)
f10
10%スペース確保
f20
20%スペース確保
f30
30%スペース確保
注) プリアロケーションを指定する場合は、例えばa10のようにaに続けて割当てページ数を指定します。
解説
・ 出力ファイルにBtrieveファイル(OutputFileType = 8)を指定した場合に、ファイル作成に必要な情報を指定します。
・ ファイル情報の詳細についてはBtrieveのマニュアルを参照してください。
注意
Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。
- 147 -
6.3.4 BtrieveIndexKeyプロパティ
Btrieveファイルを出力ファイルとする場合のインデックス情報を指定します。
構文
object.BtrieveIndexKey = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
インデックス情報を記述形式に従って指定します。
stringの記述形式
S.P.LType[opt] [S.P.LType[opt]] ...
S
1から24の範囲でセグメントを指定します。
セグメントの指定は省略できません。
P
インデックスの位置を指定します。
位置の指定は省略できません。
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など)。
- 148 -
解説
・ 出力ファイルにBtrieveファイル(OutputFileType = 8)を指定した場合に、ファイル作成に必要な情報を指定します。複数のインデッ
クスを指定する場合は、空白で区切ります。
・ インデックス情報の各指定値の詳細についてはBtrieveのマニュアルを参照してください。
注意
Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。
参照
・ 6.3.3 BtrieveFileInfoプロパティ
6.3.5 BtrieveInfileOwnerNameプロパティ
Btrieveファイルシステムで必要な場合に、入力ファイルに対してオーナーネームを指定します。
構文
object.BtrieveInfileOwnerName = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
オーナーネームを指定します。
解説
・ 入力ファイルにBtrieveファイルを指定した場合で、ファイルの入力にオーナーネームの指定が必要な場合に、最大8文字までの
オーナーネームを指定します。入力ファイルが複数ある場合は、入力ファイルの指定順に合わせて、オーナーネームを空白で区
切って指定します。なお、オーナーネームでは、大文字と小文字が区別されます。
・ このプロパティで指定された値は、InputFileTypeプロパティでBtrieveファイルを設定した場合に有効となります。この条件に該当し
ない場合、指定値は無効となります。
注意
Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。
参照
・ 6.3.20 InputFilesプロパティ
6.3.6 CollationOrderプロパティ
キーフィールドの照合順序を指定します。
照合順序とはレコードの大小関係を決めるための比較の方法です。
- 149 -
構文
object.CollationOrder = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
キーフィールドの照合順序を設定します。
設定する値については、次の設定値を参照してください。
設定値
CollationOrderプロパティの設定値は次のとおりです。
設定値
意味
0
指定なし(システムの照合順序)。(省略値)
1
複数バイトが混在しても文字単位に比較します。
2
符号(+、-)文字を含む数字を算術的に扱います。
3
文字列、数字列と続いたデータを文字部と数字部で分けて比較します。
解説
・ この指定を省略した場合、または0を設定した場合、システムの照合順序で比較します。レコードは文字コードの大小関係で並び
が決定します。
・ 1を設定すると、複数バイトから成る文字が混在していても、文字ごとに比較して並べます。
・ 2を設定すると、符号を含んだ数字の文字列を算術的な値で比較します。文字列中に数字以外の文字が存在した場合の結果は
保証されません。
・ 3を設定すると、英字と数字が連結されたデータを英字と数値に分けて比較します。英字だけを比較の対象として比較後、数字だ
けの文字列を算術的な値で比較します。指定フィールドの左から評価し、有効データ後に出現したデータは無視します。
・ このプロパティで指定された値は、テキストファイルの処理でソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber
= 1)において、キーフィールドを省略した場合に有効となります。
参照
・ 6.3.1 AlphaNumOnlyプロパティ
・ 6.3.7 CompareAsUpperCaseプロパティ
・ 6.3.18 IgnoreControlCodeプロパティ
・ 6.3.31 Reverseプロパティ
・ 6.3.33 SkipLeadingBlankプロパティ
6.3.7 CompareAsUpperCaseプロパティ
英小文字を英大文字として扱うように設定します。
構文
object.CompareAsUpperCase = boolean
- 150 -
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
英小文字を英大文字として扱うかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
CompareAsUpperCaseプロパティの設定値は次のとおりです。
設定値
意味
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
注) Aとa、Bとb、Yとy、Zとzは、それぞれ等しいキーとみなされます。
参照
・ 6.3.1 AlphaNumOnlyプロパティ
・ 6.3.6 CollationOrderプロパティ
・ 6.3.18 IgnoreControlCodeプロパティ
・ 6.3.31 Reverseプロパティ
・ 6.3.33 SkipLeadingBlankプロパティ
6.3.8 DispMessageプロパティ
PowerSORT OCXのメッセージダイアログボックス出力について指定します。
構文
object.DispMessage = boolean
- 151 -
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
メッセージダイアログボックスを表示するかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
DispMessageプロパティの設定値は次のとおりです。
設定値
意味
True
メッセージダイアログボックスを表示します。
False
メッセージダイアログボックスは表示しません。(省略値)
解説
・ Trueを指定すると、画面にメッセージダイアログボックスを表示します。
・ この指定を省略した場合、メッセージダイアログボックスは表示されません。
・ いずれの場合でも、エラー情報はErrorCodeプロパティ、ErrorDetailプロパティ、およびSubErrorCodeプロパティにエラーコードが
設定されます。
参照
・ 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード
・ 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード
・ 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード
・ 9.2.2 富士通COBOLファイルに関するエラーコード
6.3.9 DisposalNumberプロパティ
実行する主要機能を設定します。
構文
object.DisposalNumber = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
実行する主要機能を設定します。
設定する値については、次の設定値を参照してください。
設定値
DisposalNumberプロパティの設定値は次のとおりです。
設定値
0
意味
ソート機能を実行します。(省略値)
- 152 -
設定値
意味
1
マージ機能を実行します。
2
コピー機能を実行します。
解説
・ この指定を省略した場合、ソート機能が実行されます。
参照
・ 2.1 主要機能
・ 2.3 オプション機能と主要機能の組合せ
6.3.10 EnableOverwriteInputFileプロパティ
ソート処理の場合に、入力ファイルへの上書き処理について指定します。
構文
object.EnableOverwriteInputFile = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
入力ファイルの上書きを許可するかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
EnableOverwriteInputFileプロパティの設定値は次のとおりです。
設定値
意味
True
入力ファイルの上書きを許可します。
False
入力ファイルの上書きは許可しません。(省略値)
解説
・ 入力ファイルの既存データをソート処理結果に書き換える、上書き許可を指定します。ソート処理(DisposalNumber = 0)のとき、
OutputFileプロパティで設定した出力ファイル名が、InputFilesプロパティで設定した入力ファイル名の1つと一致した場合に有効と
なります。
・ EnableOverwriteInputFileプロパティは、ファイルを保護する機能です。Falseを設定した状態で、出力ファイル名を入力ファイル名
の1つと同じ名前にした場合、処理開始前にエラー終了します。入力ファイル中のデータを書き換えてよい場合にのみTrueを設定
してください。
・ この指定を省略した場合、入力ファイルの上書きは許可しません。
注意
Trueを指定し、出力ファイルが入力ファイルと同じ場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場
合がありますので、注意してください。
- 153 -
6.3.11 FieldDefinitionプロパティ
テキストファイルを処理する場合のフィールドの指定方法を設定します。
構文
object.FieldDefinition = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
フィールドの指定方法を設定します。
設定する値については、次の設定値を参照してください。
設定値
FieldDefinitionプロパティの設定値は次のとおりです。
設定値
意味
0
浮動フィールドで指定します。(省略値)
1
固定フィールドで指定します。
解説
・ テキストファイルを処理する場合のフィールドの指定方法を設定します。
・ 浮動フィールドは、フィールドの位置をフィールド分離文字によって区切られたフィールド番号によって指定します。フィールド分
離文字の位置によりフィールドの位置が決まるため、レコードごとにフィールドの位置(カラム位置)は異なります。フィールド分離文字は
FieldDelimiterプロパティで指定できます。
・ 固定フィールドは、フィールドの位置をレコードの先頭からのカラム位置で指定します。
・ この指定を省略した場合、フィールドの位置を浮動フィールドで指定します。
参照
・ 6.3.32 SelCmdStrプロパティ
・ 6.3.30 RconCmdStrプロパティ
・ 6.3.34 SumCmdStrプロパティ
・ 6.3.17 HandlingSameKeyプロパティ
6.3.12 FieldDelimiterプロパティ
テキストファイル浮動フィールド指定の場合のフィールド分離文字を設定します。
構文
object.FieldDelimiter = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
- 154 -
string
フィールド分離文字を指定します。
解説
・ テキストファイル浮動フィールド指定の場合のフィールド分離文字を設定します。
・ 浮動フィールド形式で各種フィールドを指定する場合に、レコード内のフィールドの区切りを示すフィールド分離文字を指定できま
す。この指定を省略した場合、空白、およびタブをフィールド分離文字とします。
・ フィールド分離文字は、文字列、または16進数で指定します。
・ 文字列で指定する場合は、全体をクォーテーション( ' )で囲みます。クォーテーション( ' )を分離文字とする場合は、クォーテーション
( ' )の前に円記号( ¥ )を指定します。また、円記号( ¥ )をフィールド分離文字とする場合は、円記号( ¥ )を2つ続けて指定します。
・ 16進数で指定する場合は、先頭にxを付け16進コードを続けて設定します。タブなどの文字として入力できないコードを指定でき
ます。
・ レコード分離文字と同じ文字は指定できません。レコード分離文字は、LineDelimiterプロパティで指定します。
注意
・ 浮動フィールドのフィールド番号は、先頭のフィールドが0となります。
・ フィールド分離文字の指定を省略した場合、レコードの先頭の空白、またはタブは先頭のフィールドに含まれます。レコードの先頭
以外の空白、またはタブが連続している場合は、最初の空白がフィールド分離文字となり、残りの空白はフィールドの一部となりま
す。
・ フィールド分離文字を指定し、フィールド分離文字が連続して存在した場合、2つの分離文字の間に空フィールドが存在するとみ
なします。フィールド分離文字はフィールドには含まれません。
記述例
例
1) フィールド分離文字を文字列で指定する場合は、次のように指定します。
1つの空白
''
1つの円記号( ¥ )
'¥¥'
空白とクォーテーション( ' )
' ¥''
2) フィールド分離文字を16進数で指定する場合は、次のように指定します。
タブの指定
x09
参照
・ 6.3.11 FieldDefinitionプロパティ
6.3.13 FjcobAlternateKeyプロパティ
富士通COBOL索引ファイルの場合に、副キーを設定します。
- 155 -
構文
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) と記述します。
参照
・ 6.3.29 OutputFileTypeプロパティ
・ 6.3.14 FjcobDataCompressionプロパティ
・ 6.3.15 FjcobKeyCompressionプロパティ
・ 6.4.3 SubErrorCodeプロパティ
・ 9.2.2 富士通COBOLファイルに関するエラーコード
- 156 -
6.3.14 FjcobDataCompressionプロパティ
出力ファイルが富士通COBOL索引ファイルの場合に、レコードの圧縮を指定します。
構文
object.FjcobDataCompression = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
レコードを圧縮するかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
FjcobDataCompressionプロパティの設定値は次のとおりです。
設定値
意味
True
レコードを圧縮します。(省略値)
False
レコードを圧縮しません。
解説
・ 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、レコードの圧縮について設定します。
・ この指定を省略した場合、レコードを圧縮します。
注意
富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。
参照
・ 6.3.29 OutputFileTypeプロパティ
・ 6.3.13 FjcobAlternateKeyプロパティ
・ 6.3.15 FjcobKeyCompressionプロパティ
・ 6.3.16 FjcobPrimeKeyプロパティ
・ 6.4.3 SubErrorCodeプロパティ
・ 9.2.2 富士通COBOLファイルに関するエラーコード
6.3.15 FjcobKeyCompressionプロパティ
出力ファイルが富士通COBOL索引ファイルの場合に、索引キーの圧縮を指定します。
構文
object.FjcobKeyCompression = boolean
- 157 -
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
索引キーの圧縮をするかどうかを設定します。
設定する値については、次の設定値を参照してください。
設定値
FjcobKeyCompressionプロパティの設定値は次のとおりです。
設定値
意味
True
索引キーを圧縮します。(省略値)
False
索引キーを圧縮しません。
解説
・ 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、索引キーの圧縮について設定します。
・ この指定を省略した場合、索引キーを圧縮します。
注意
富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。
参照
・ 6.3.29 OutputFileTypeプロパティ
・ 6.3.13 FjcobAlternateKeyプロパティ
・ 6.3.14 FjcobDataCompressionプロパティ
・ 6.3.16 FjcobPrimeKeyプロパティ
・ 6.4.3 SubErrorCodeプロパティ
・ 9.2.2 富士通COBOLファイルに関するエラーコード
6.3.16 FjcobPrimeKeyプロパティ
出力ファイルが富士通COBOL索引ファイルの場合に、主キーを設定します。
構文
object.FjcobPrimeKey = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
富士通COBOL索引ファイルの主キーを記述形式に従って指定します。
- 158 -
stringの記述形式
[D] (pos.len [/pos.len] ...)
D
主キーとするデータ項目が、他のキーと重複する場合に指定します。
pos
富士通COBOL索引ファイルの主キーの位置を指定します。
位置は、キーとするデータ項目のレコードの先頭からの相対位置(0バイトから始まるバイト数)を指定します。
len
富士通COBOL索引ファイルの主キーの長さを指定します。
なお、主キー(FjcobPrimeKeyプロパティ)と副キー(FjcobAlternateKeyプロパティ)すべての長さの合計は、254バイト以下になるように設
定してください。
/
1つのキーとして非連続な複数のキーを指定する場合、「/」で区切ります。
解説
・ 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、主キーを設定します。主キーは省略できません。
・ 主キーのデータ形式はASCIIコードで、常に昇順で並べられます。
注意
富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。
参照
・ 6.3.14 FjcobDataCompressionプロパティ
・ 6.3.15 FjcobKeyCompressionプロパティ
・ 6.4.3 SubErrorCodeプロパティ
・ 9.2.2 富士通COBOLファイルに関するエラーコード
6.3.17 HandlingSameKeyプロパティ
キーフィールドが等しいレコードの処理方法を設定します。
構文
object.HandlingSameKey = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
キーフィールドが等しいレコードの処理方法を設定します。
設定する値については、次の設定値を参照してください。
- 159 -
設定値
HandlingSameKeyプロパティの設定値は次のとおりです。
設定値
意味
0
順不定で処理します。(省略値)
1
先入力先出力(FIFO)機能に従ってレコードの出力順序を決定します。
2
サプレス機能によりレコードを削除します。
3
レコード集約機能を使用します。
解説
・ キーフィールドが等しい複数のレコードがある場合のレコードの出力方法を指定します。
・ 指定を省略した場合、または0を設定した場合は、キーフィールドが等しいレコードの出力順序は不定になります。
・ 1を設定すると、キーフィールドが等しい複数のレコードを入力順に出力します。ソート機能の場合に有効です。
・ 2を設定すると、キーフィールドが等しい複数のレコードから、1つのレコードだけ残して他を削除します。出力されるレコードはすべ
てキーフィールドが異なることになります。キーフィールドが等しい複数のレコードのうち、どのレコードが残るかは不定です。ソート
機能、またはマージ機能の場合に有効です。
・ 3を設定すると、キーフィールドが等しい複数のレコードの集約フィールドの値を加算し、1つのレコードにします。この場合、SumCmdStr
プロパティで集約フィールドを指定する必要があります。キーフィールドが等しい複数のレコードのうち、どのレコードが残るかは不
定です。ソート機能、またはマージ機能の場合に有効です。
注意
Micro Focus COBOL索引ファイルで先入力先出力(FIFO)機能を指定した場合、インデックス順ではなく物理順で優先順位が決定し
ます。
参照
・ 2.2 オプション機能
・ 2.3 オプション機能と主要機能の組合せ
・ 6.3.23 KeyCmdStrプロパティ
6.3.18 IgnoreControlCodeプロパティ
制御文字コードを無視するように設定します。
構文
object.IgnoreControlCode = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
制御文字コードを無視するかどうかを設定します。
設定する値については、次の設定値を参照してください。
- 160 -
設定値
IgnoreControlCodeプロパティの設定値は次のとおりです。
設定値
意味
True
制御文字コードは無視します。
False
制御文字コードも処理します。(省略値)
解説
・ キーフィールドの比較対象として、制御文字コードを無視するかどうかを指定します。
・ Trueを指定すると、制御文字コードを除いて比較し、レコードの順序を決定します。
・ データ形式がUnicode UCS-2形式の場合は、無視されます。
・ この指定を省略した場合、制御文字コードも比較対象となります。
・ このプロパティで指定された値は、テキストファイルの処理でソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber
= 1)のキーフィールドを省略した場合に有効となります。
参照
・ 6.3.1 AlphaNumOnlyプロパティ
・ 6.3.6 CollationOrderプロパティ
・ 6.3.7 CompareAsUpperCaseプロパティ
・ 6.3.31 Reverseプロパティ
・ 6.3.33 SkipLeadingBlankプロパティ
6.3.19 InputDataCodeプロパティ
入力ファイルのコード系を指定します。
構文
object.InputDataCode = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
入力ファイルのコード系を設定します。
設定する値については、次の設定値を参照してください。
設定値
InputDataCodeプロパティの設定値は次のとおりです。
設定値
意味
0
ASCIIコード系(富士通COBOL形式) (省略値)
1
ASCIIコード系(MF COBOL形式、COBOL/2形式)
2
EBCDICコード系
3
Unicode系(UCS-2形式)
- 161 -
設定値
4
意味
Unicode系(UTF-8形式)
解説
・ テキストファイルのときは、InputDataCodeプロパティにEBCDICコード系を選択できません。
・ この指定を省略した場合は、ASCIIコード系(富士通COBOL形式)となります。
6.3.20 InputFilesプロパティ
ソート処理、マージ処理、およびコピー処理の入力ファイルパス名を設定します。
構文
object.InputFiles = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
入力ファイルパス名を設定します。
解説
・ ソート処理、マージ処理、およびコピー処理の入力ファイルパス名を設定します。入力ファイルパス名は、省略できません。
・ 入力ファイルパス名には、ロングファイル名を指定できます。
・ 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション( " )で囲みます。
・ 複数の入力ファイルパス名を設定可能です。複数のファイルパス名を指定する場合、ファイルパス名を空白で区切ります。
・ 入力ファイルパス名を複数指定する場合は、同じファイル種別のファイルしか指定できません。
参照
・ 2.6 PowerSORTの入出力環境
・ 6.3.10 EnableOverwriteInputFileプロパティ
・ 6.3.21 InputFileTypeプロパティ
・ 6.3.22 InputFilesSkiprecプロパティ
・ 6.3.25 MaxRecordLengthプロパティ
・ 6.3.28 OutputFileプロパティ
・ 6.3.29 OutputFileTypeプロパティ
6.3.21 InputFileTypeプロパティ
ソート処理、マージ処理、およびコピー処理の対象となる入力ファイルのファイル種別とレコード形式を設定します。
構文
object.InputFileType = integer
- 162 -
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
入力ファイルのファイル種別とレコード形式を設定します。
設定する値については、次の設定値を参照してください。
設定値
InputFileTypeプロパティの設定値は次のとおりです。
設定値
意味
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運用環境が必要です。
- 163 -
・ 富士通COBOLファイルシステム(BSAM対応順ファイル)を使用する場合は、環境変数BSORT_COBFSYS_MODEにBSAMを指
定した上で、富士通COBOL順固定長ファイル(設定値2)、または富士通COBOL順可変長ファイル(設定値3)を設定してください。
参照
・ 2.6 PowerSORTの入出力環境
・ 6.3.10 EnableOverwriteInputFileプロパティ
・ 6.3.25 MaxRecordLengthプロパティ
・ 6.3.28 OutputFileプロパティ
・ 6.3.29 OutputFileTypeプロパティ
6.3.22 InputFilesSkiprecプロパティ
ソート処理、マージ処理、およびコピー処理の対象となる入力ファイルから読み飛ばすレコード件数を設定します。
構文
object.InputFilesSkiprec = string [ ,string ... ]
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
入力ファイルの先頭から読み飛ばすレコード件数を設定します。
解説
・ 入力ファイルの先頭から読み飛ばすレコード数を設定します。読み飛ばしたレコードはソート処理、マージ処理、またはコピー処理
の対象にはなりません。
・ 読み飛ばすレコード件数は、入力ファイルごとに指定できます。InputFilesプロパティで指定した入力ファイルの順序に対応して、コンマ
( , )で区切って指定します。
・ 指定を省略するとすべてのレコードが処理対象となります。入力ファイル名の数より指定が少ない場合は、指定のない入力ファイ
ルのレコードはすべて処理対象となります。入力ファイル名の数より指定が多い場合は、入力ファイルに対応しない指定は無効と
なります。
6.3.23 KeyCmdStrプロパティ
ソート処理、およびマージ処理のキーフィールドを設定します。
構文
object.KeyCmdStr = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
キーフィールドを記述形式に従って指定します。
- 164 -
stringの記述形式
pos.len typ opt [ M kanji-def ] [, pos.len typ opt [ M kanji-def ] ...]
pos
キーフィールドの位置を指定します。
レコードの先頭を0として計算します。入力がテキストファイルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールド、また
は固定フィールドで指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィールド番号を、
固定フィールドはカラム位置を指定します。
len
キーフィールドの長さを指定します。
データ形式により指定できる長さに上限があります。詳細は、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。
テキストファイルで浮動フィールドとして処理する場合、指定したフィールド長よりも長いフィールドが現れると、指定したフィールド長で
処理されます。逆に指定したフィールド長よりも短いフィールドが現れると、実際のフィールド長で処理されます。
データ形式(typ)に符号なし2進数(bit)を指定する場合は、マスク値を10進数の1~255の範囲で指定します。この場合、フィールド値と
マスク値の論理積がキー値となります。例えば、フィールド値が16進数の8e、マスク値として3を指定した場合、キー値は16進数の02に
なります。
typ
キーフィールドのデータ形式を指定します。
詳細は、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。
opt
キーフィールドの操作を指定します。
詳細は、optを参照してください。
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コードで記述されており、これを国語辞典の並びで昇順に並べる指定です。
- 165 -
9.20ascam Mdic49.10asc
参照
・ 6.3.12 FieldDelimiterプロパティ
・ 6.3.17 HandlingSameKeyプロパティ
・ 6.3.24 LineDelimiterプロパティ
・ 6.3.25 MaxRecordLengthプロパティ
・ 6.3.30 RconCmdStrプロパティ
・ 6.3.32 SelCmdStrプロパティ
・ 6.3.34 SumCmdStrプロパティ
6.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になります。
- 166 -
参照
・ 6.3.25 MaxRecordLengthプロパティ
6.3.25 MaxRecordLengthプロパティ
入力レコードのレコード長、または最大レコード長を設定します。
構文
object.MaxRecordLength = long
object
オブジェクトへの参照を表すオブジェクト式を指定します。
long
入力レコードのレコード長、または最大レコード長を設定します。
設定可能なレコード長、または最大レコード長は1~32000バイトです。
解説
・ バイナリファイルの場合は、レコードが固定長レコード形式のとき、そのレコード長を指定し、レコードが可変長レコード形式のとき、
そのレコードの最大レコード長を指定します。
・ テキストファイルの場合は、レコード分離文字を含む最大レコード長を指定します。
・ 固定長レコード形式では、実際のレコード長と指定値が合わない場合、エラー終了します。可変長レコード形式の場合は、実際の
レコード長が指定値より大きい場合にエラー終了します。
・ レコード分離文字はLineDelimiterプロパティで設定します。標準は長さ2バイトのCRLFです。入力ファイルのコード系がUnicode系
(UCS-2形式)の場合は、CRLFが4バイトとなります。全角の日本語文字など2バイトコードの文字は、1文字で2バイトとして計算しま
す。
6.3.26 MessageFileNameプロパティ
PowerSORTのメッセージを出力するファイルパス名を設定します。
構文
object.MessageFileName = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
メッセージファイルパス名を指定します。
解説
・ メッセージファイルパス名には、ロングファイル名を指定できます。
・ 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション( " )で囲みます。
・ 指定できるメッセージファイルパス名は1つです。
・ 出力されるメッセージは、MessageLevelプロパティ、または環境変数BSORT_MSGLEVELの指定により決まります。
- 167 -
注意
MessageFileNameプロパティの指定は、環境変数BSORT_MSGFILEの指定より優先されます。
参照
・ 6.3.27 MessageLevelプロパティ
6.3.27 MessageLevelプロパティ
PowerSORTが出力するメッセージのレベルを設定します。
構文
object.MessageLevel = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
出力するメッセージのレベルを設定します。
設定する値については、次の設定値を参照してください。
設定値
MessageLevelプロパティの設定値は次のとおりです。
設定値
意味
0
エラーメッセージ、および警告メッセージを出力します。
2の指定と同じです。 (省略値)
1
何も出力しません。
2
エラーメッセージ、および警告メッセージを出力します。
3
エラーメッセージ、警告メッセージ、および情報メッセージを出力します。
解説
・ メッセージを出力するためには、MessageFileNameプロパティ、または環境変数BSORT_MSGFILEで、メッセージを出力するファ
イルパス名の設定が必要です。
注意
MessageLevelプロパティの指定は、環境変数BSORT_MSGLEVELの指定より優先されます。
6.3.28 OutputFileプロパティ
ソート処理、マージ処理、およびコピー処理の出力ファイルパス名を設定します。
構文
object.OutputFile = string
- 168 -
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
出力ファイルパス名を指定します。
解説
・ 出力ファイルパス名には、ロングファイル名を指定できます。
・ 指定できるファイルパス名は1つです。
・ 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション( " )で囲みます。
参照
・ 2.6 PowerSORTの入出力環境
・ 6.3.10 EnableOverwriteInputFileプロパティ
・ 6.3.20 InputFilesプロパティ
・ 6.3.21 InputFileTypeプロパティ
・ 6.3.25 MaxRecordLengthプロパティ
・ 6.3.29 OutputFileTypeプロパティ
6.3.29 OutputFileTypeプロパティ
ソート処理、マージ処理、およびコピー処理の対象となる出力ファイルのファイル種別を設定します。
構文
object.OutputFileType = integer
object
オブジェクトへの参照を表すオブジェクト式を指定します。
integer
出力ファイルのファイル種別を設定します。
設定する値については、次の設定値を参照してください。
設定値
OutputFileTypeプロパティの設定値は次のとおりです。
設定値
意味
0
テキストファイル (省略値)
1
バイナリ固定長ファイル
2
富士通COBOL順ファイル
3
富士通COBOL索引ファイル
4
富士通COBOL相対ファイル
5
Micro Focus COBOL順編成ファイル
6
(Reserved)
- 169 -
設定値
意味
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)を設定してください。
参照
・ 2.6 PowerSORTの入出力環境
・ 6.3.10 EnableOverwriteInputFileプロパティ
・ 6.3.20 InputFilesプロパティ
・ 6.3.21 InputFileTypeプロパティ
・ 6.3.25 MaxRecordLengthプロパティ
・ 6.3.28 OutputFileプロパティ
6.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を指定します。
- 170 -
・ pos
再編成フィールドの位置を指定します。
レコードの先頭を0として計算します。入力がテキストファイルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールド、
または固定フィールドで指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィールド
番号を、固定フィールドはカラム位置を指定します。
・ len
再編成フィールドの長さを指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れると、指定したフィールド長で処理
されます。逆に指定したフィールド長よりも短いフィールドが現れると、実際のフィールド長で処理されます。
slf.len typ
自己規定値を値、長さ、およびデータ形式で指定します。
slfとlenは、ピリオド( . )で区切ります。自己規定値に指定可能なデータ形式と長さについては、2.7.4.4 再編成フィールドの自己規定値
に指定可能なデータ形式を参照してください。
・ slf
自己規定値を指定します。
以下の3つの形式があります。
形式
指定方法
文字列
'文字列'
文字列をクォーテーション( ' )で囲みます。
例) '123'
16進数
x16進数
先頭にxを置き、16進コードを続けます。
例) x313233
10進数
d10進数
先頭にdを置き、10進数を続けます。符号(+、-)を付けることもできま
す。
例) d123、d+123、d-123
・ len
自己規定値の長さを指定します。
・ typ
自己規定値のデータ形式を指定します。
解説
・ レコード再編成機能により、入力レコードの構成を変更できます。レコードを再編成する場合は、入力レコードを構成するフィール
ドを左端から順番に指定します。再編成フィールドの指定方法には、入力レコードからの複写と、自己規定値の設定があります。
・ 入力レコードのフィールドを複写する場合は、再編成フィールドに複写するフィールドの位置と長さを指定します。自己規定値を設
定する場合は、設定する値、長さ、およびデータ形式を指定します。フィールドと自己規定値は組み合わせて指定できます。
・ 再編成フィールドに入力レコードのフィールドを指定する場合は、入力レコード内のフィールドを指定してください。テキストファイ
ル、または可変長レコード形式のファイルの場合は、入力ファイル内の最小レコード長以下となるように位置と長さを指定します。
・ 複数の再編成フィールドを指定する場合は、コンマ( , )で区切って指定します。
・ 自己規定値で指定した値とlenで指定した長さが異なるときは、以下に示すように処理します。
- 自己規定値が文字列の場合、自己規定値で指定した文字列の長さがlenで指定した長さより短いときは、自己規定値を左詰
めにして右余白に空白を詰めます。自己規定値で指定した文字列の長さがlenで指定した長さより長い場合は、エラーとなりま
す。
- 自己規定値が数値、または数字の場合、自己規定値で指定した値をlenとtypで指定したデータ形式と長さに変換して埋め込
みます。変換結果がlenを超える場合は、エラーとなります。
- 171 -
注意
レコード再編成機能を使用する場合、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
参照
・ 6.3.12 FieldDelimiterプロパティ
・ 6.3.17 HandlingSameKeyプロパティ
・ 6.3.24 LineDelimiterプロパティ
・ 6.3.25 MaxRecordLengthプロパティ
・ 6.3.32 SelCmdStrプロパティ
6.3.31 Reverseプロパティ
キーフィールドの指定が省略された場合の入力レコードの並びを設定します。
構文
object.Reverse = boolean
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
キーフィールドの指定が省略された場合の入力レコードの並びを設定します。
設定する値については、次の設定値を参照してください。
設定値
Reverseプロパティの設定値は次のとおりです。
設定値
True
意味
降順で並べます。
- 172 -
設定値
False
意味
昇順で並べます。(省略値)
解説
・ ソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber = 1)において、キーフィールド(KeyCmdStrプロパティ)の指
定を省略した場合の並びを指定します。この指定に従い、レコード全体をキーフィールドとみなし、コード順に並べます。
・ この指定を省略した場合は、昇順で並べます。
参照
・ 6.3.1 AlphaNumOnlyプロパティ
・ 6.3.6 CollationOrderプロパティ
・ 6.3.7 CompareAsUpperCaseプロパティ
・ 6.3.18 IgnoreControlCodeプロパティ
・ 6.3.33 SkipLeadingBlankプロパティ
6.3.32 SelCmdStrプロパティ
ソート処理、マージ処理、およびコピー処理の選択フィールドを設定します。
構文
object.SelCmdStr = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
選択フィールドを指定します。
記述形式
pos.len typ opt.cmp. { pos.len typ | slf }
[{ AND | OR } pos.len typ opt.cmp. { pos.len typ | slf } ...]
pos
選択フィールドの位置を指定します。
レコードの先頭を0として計算します。入力がテキストファイルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールド、また
は固定フィールドで指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィールド番号を、
固定フィールドはカラム位置を指定します。
len
選択フィールドの長さを指定します。
データ形式により指定できる長さに上限があります。指定できる長さについては、2.7.4.3 選択フィールドに指定可能なデータ形式を参
照してください。
テキストファイルで浮動フィールドとして処理する場合、指定したフィールド長よりも長いフィールドが現れると、指定したフィールド長で
処理されます。逆に指定したフィールド長よりも短いフィールドが現れると、実際のフィールド長で処理されます。
データ形式(typ)に符号なし2進数(bit)を指定する場合は、長さにはマスク値を10進数の1 ~255の範囲で指定してください。この場合、
フィールド値とマスク値の論理積がキー値となります。例えば、フィールド値が16進数の8e、マスク値として3を指定した場合、キー値は
16進数の02になります。被比較フィールドと比較フィールドには同じマスク値を指定します。
- 173 -
typ
選択フィールドのデータ形式を指定します。
詳細は、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
opt
選択フィールドの操作を指定します。
この指定はテキストファイルのときに有効です。指定できる操作は、以下のとおりです。
操作
意味
b
キーフィールドの先頭の空白とタブを無視します。
d
空白と英数字のみを比較の対象とします。
i
制御文字コードを無視します。
j
英小文字を英大文字として比較します。
n
符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。
cmp
比較演算子を指定します。
cmpの前後にはピリオド( . )を設定し、空白を入れずに続けて記述します。以下の比較演算子の1つを指定します。
比較演算子
意味(真の条件)
eq
被比較フィールド = 比較フィールド、または自己規定値
ne
被比較フィールド ≠ 比較フィールド、または自己規定値
gt
被比較フィールド > 比較フィールド、または自己規定値
ge
被比較フィールド ≧ 比較フィールド、または自己規定値
lt
被比較フィールド < 比較フィールド、または自己規定値
le
被比較フィールド ≦ 比較フィールド、または自己規定値
slf
自己規定値を指定します。
以下の3つの形式があります。被比較フィールドのデータ形式により、指定できる形式が異なります。詳細は、被比較フィールドと自己
規定値に指定可能なデータ形式の組合せを参照してください。
形式
指定方法
文字列
'文字列'
文字列をクォーテーション( ' )で囲みます。
例) '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と指定してください。
- 174 -
解説
・ レコード選択機能により、ソート処理、マージ処理、またはコピー処理の対象とするレコードを選択できます。
・ 選択フィールドの指定方法には、入力レコードのフィールド同士を比較する方法と、入力レコードのフィールドと自己規定値を比較
する方法があります。また、複数の選択条件と論理演算子を使用して、複雑な論理式を指定することができます。
・ 入力レコードのフィールドを指定する場合は、入力レコードの外を指定しないように位置と長さを指定してください。テキストファイ
ル、または可変長ファイルの場合は、ファイル内の最小レコード長以下となるよう、位置と長さを指定します。
・ 複数の選択フィールドを指定する場合は、各選択フィールドの関係を論理演算子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
参照
・ 6.3.12 FieldDelimiterプロパティ
・ 6.3.17 HandlingSameKeyプロパティ
・ 6.3.24 LineDelimiterプロパティ
・ 6.3.25 MaxRecordLengthプロパティ
・ 6.3.23 KeyCmdStrプロパティ
・ 6.3.30 RconCmdStrプロパティ
・ 6.3.34 SumCmdStrプロパティ
6.3.33 SkipLeadingBlankプロパティ
先頭の空白とタブを無視するように設定します。
構文
object.SkipLeadingBlank = boolean
- 175 -
object
オブジェクトへの参照を表すオブジェクト式を指定します。
boolean
先頭の空白とタブを無視するかどうか設定します。
設定する値については、次の設定値を参照してください。
設定値
SkipLeadingBlankプロパティの設定値は次のとおりです。
設定値
意味
True
先頭の空白とタブを無視します。
False
先頭の空白とタブを比較対象とします。(省略値)
解説
・ Trueを指定すると、フィールドの先頭の空白とタブを除いて比較し、レコードの順序を決定します。
・ このプロパティで指定された値は、テキストファイルの処理でソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber
= 1)のキーフィールドを省略した場合に有効となります。
・ この指定を省略した場合は、先頭の空白とタブも比較対象となります。
参照
・ 6.3.1 AlphaNumOnlyプロパティ
・ 6.3.6 CollationOrderプロパティ
・ 6.3.7 CompareAsUpperCaseプロパティ
・ 6.3.18 IgnoreControlCodeプロパティ
・ 6.3.31 Reverseプロパティ
6.3.34 SumCmdStrプロパティ
ソート処理、およびマージ処理の集約フィールドを設定します。
構文
object.SumCmdStr = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
集約フィールドを記述形式にしたがって指定します。
記述形式
pos.len typ [ pos.len typ ...]
- 176 -
pos
集約フィールドの位置を指定します。
レコードの先頭を0として計算します。入力がテキストファイルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールド、また
は固定フィールドで指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィールド番号を、
固定フィールドはカラム位置を指定します。
len
集約フィールドの長さを指定します。
テキストファイルで浮動フィールドとして処理する場合、集約結果は指定されたフィールド長で処理されます。指定したフィールド長よ
り実際のフィールド長が長い場合、数字の左から指定フィールド長分が有効となります。逆に指定したフィールド長より実際のフィール
ド長が短い場合、指定したフィールド長に拡張して処理します。
typ
集約フィールドのデータ形式を指定します。
詳細は、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。
解説
・ キーフィールドが等しい複数のレコードの集約フィールドを加算し、1つのレコードにします。
・ レコード集約機能を使用する場合は、SumCmdStrプロパティの指定とHandlingSameKeyプロパティに3(レコード集約)を設定する
必要があります。
・ 複数の集約フィールドを指定する場合は、集約フィールドを連続して指定するか、コンマ( , )で区切って指定します。
・ 集約フィールドを指定する場合は、入力レコード内のフィールドを指定してください。テキストファイル、または可変長レコード形式
のファイルの場合は、ファイル内の最小レコード長以下となるように位置と長さを指定します。
記述例
例
例1) 入力レコードの20バイトめから10バイトの外部10進数のフィールドを集約します。
19.10zdl
例2) 入力レコードの10バイトめから10バイトの外部10進数のフィールドと30バイトめから8バイトの固定小数点2進数を集約します。
9.10zdl29.8fbi
6.3.35 TempDirプロパティ
ソート処理で使用する一時ファイルのフォルダ名を設定します。
構文
object.TempDir = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
一時ファイルのフォルダ名を指定します。
- 177 -
解説
・ 一時ファイルを作成するフォルダ名を指定します。PowerSORTは、メモリ内だけでは処理できない大量のデータをソート処理する
場合、TempDirプロパティで指定したフォルダに一時ファイルを作成します。
・ 複数のフォルダ名を指定できます。複数のフォルダ名を指定することで、空きスペースの不足によるエラーを回避できることがあり
ます。
・ 複数のフォルダ名を指定する場合は、異なるフォルダ名をセミコロン( ; )で区切って指定します。
・ この指定を省略した場合は、以下の優先順位に従って一時ファイルを作成するフォルダを決定します。
1. 環境変数BSORT_TMPDIRで指定されたフォルダ
2. 環境変数TEMPで指定されたフォルダ
3. 環境変数TMPで指定されたフォルダ
4. Windowsシステムのフォルダ
注意
指定されたフォルダが存在しない場合は、エラーとなります。
6.3.36 UsableMemorySizeプロパティ
PowerSORTが使用する作業域の大きさ(メモリサイズ)を設定します。
構文
object.UsableMemorySize = long
object
オブジェクトへの参照を表すオブジェクト式を指定します。
long
作業域の大きさをキロバイト数で設定します。
設定可能な作業域の大きさは、0、または64~32767キロバイトです。
解説
・ 指定を省略するか、または0を指定すると、作業域は自動的に設定されます。
6.4 実行後に参照するプロパティ
6.4.1 ErrorCodeプロパティ
PowerSORTの復帰コードが通知されます。
構文
object.ErrorCode
object
オブジェクトへの参照を表すオブジェクト式を指定します。
- 178 -
返却値
ErrorCodeプロパティに返却される値は次のとおりです。
返却値
意味
0
正常に終了しました。
-1
PowerSORTの処理中にエラーが検出されました。
-2
PowerSORT OCXで構文解析処理中にエラーが検出されました。
-3
PowerSORT OCXで構文解析処理中にエラーが検出されました(PowerSORT OCXでの
み検出される固有のエラー)。
-4
PowerSORT OCXのエラーが検出されました。
解説
・ PowerSORTの実行後、処理結果を示す復帰コードが設定されます。実行後に参照可能です。値の設定はできません。
参照
・ 6.3.8 DispMessageプロパティ
・ 6.4.2 ErrorDetailプロパティ
・ 6.4.3 SubErrorCodeプロパティ
・ 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード
・ 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード
・ 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード
・ 9.2.2 富士通COBOLファイルに関するエラーコード
6.4.2 ErrorDetailプロパティ
PowerSORTのエラー詳細コードが通知されます。
構文
object.ErrorDetail
object
オブジェクトへの参照を表すオブジェクト式を指定します。
解説
・ PowerSORT実行中にエラーが検出された場合、エラー詳細コードが通知されます。実行後に参照可能です。値の設定はできま
せん。通知される値については、9.2.6 OCX使用時のエラー詳細コードを参照してください。
参照
・ 6.3.8 DispMessageプロパティ
・ 6.4.1 ErrorCodeプロパティ
・ 6.4.3 SubErrorCodeプロパティ
・ 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード
- 179 -
・ 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード
・ 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード
・ 9.2.2 富士通COBOLファイルに関するエラーコード
6.4.3 SubErrorCodeプロパティ
PowerSORTが使用するファイルシステムのエラーコードが通知されます。
構文
object.SubErrorCode
object
オブジェクトへの参照を表すオブジェクト式を指定します。
解説
・ PowerSORT実行中にファイルシステムでエラーが検出された場合、エラーコードが通知されます。実行後に参照可能です。値の
設定はできません。通知される値については、ファイルシステムに応じて該当するマニュアルを参照してください。
参照
・ 6.3.8 DispMessageプロパティ
・ 6.4.1 ErrorCodeプロパティ
・ 6.4.2 ErrorDetailプロパティ
・ 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード
・ 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード
・ 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード
6.5 メソッド
6.5.1 Actionメソッド
PowerSORTを呼び出します。
構文
object.Action
object
オブジェクトへの参照を表すオブジェクト式を指定します。
解説
・ Actionメソッドには引数はありません。PowerSORT OCXのプロパティに設定された処理条件で、PowerSORTを呼び出します。
・ Actionメソッドを使う前に、必要なプロパティに値を設定してください。
- 180 -
参照
・ 2.1 主要機能
・ 2.3 オプション機能と主要機能の組合せ
・ 6.3.9 DisposalNumberプロパティ
- 181 -
第7章 COBOLプログラムからPowerSORTを使用する
PowerSORTは、富士通のNetCOBOL、PowerCOBOL97、COBOL97、およびCOBOL85で作成したCOBOLプログラムから利用するこ
とができます。
・ PowerSORTをインストールするだけで、COBOL実行環境が自動的にPowerSORTを呼び出します。COBOLの文法に従って、SORT
文、またはMERGE文を使用したプログラムを作成すると、実行時にPowerSORTが呼び出されます。
・ 既存のCOBOLプログラムを実行する場合も、PowerSORTを利用するための特別な設定作業やCOBOLプログラムの変更、再コン
パイルは不要です。
- 182 -
第8章 C言語プログラムからPowerSORTを使用する
PowerSORTは、C言語プログラムから利用することができます。
C言語プログラムからPowerSORTを使用する場合、BSORT関数を使用します。ここでは、各BSORT関数の概要と使い方、BSORT関
数を使用してユーザアプリケーションを開発するときの注意事項について説明します。
8.1 BSORT関数とは
BSORT関数とは、C言語プログラムからPowerSORTを使用するための関数の総称であり、BSORT関数一覧に示す5つの関数が用意
されています。
BSORT関数一覧
以下に各BSORT関数の概要を示します。
表8.1 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関数の組
合せを示します。
表8.2 使用するPowerSORTの機能と関連するBSORT関数一覧
関数名
ソート機能
マージ機能
コピー機能
bsrtopen
◎
◎
◎
bsrtclse
◎
◎
◎
bsrtput
○
×
×
bsrtget
○
×
×
bsrtmrge
×
○
×
◎:必ず使用します
○:使用できます
×:使用できません
8.2 BSORT関数の使い方
ソート機能、マージ機能、およびコピー機能を使用する場合のBSORT関数の使い方について説明します。
- 183 -
8.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関数を発行します。
2. bsrtput関数を発行します。
bsrtput関数はPowerSORTに渡すレコードがなくなるまで連続して発行します。
3. bsrtput関数を発行し、レコードの終わりを通知します。
4. bsrtclse関数を発行します。
- 184 -
bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)を指定しないで、出力ファイルパス名(または標準出力)を指定すると
この形態になります。
8.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関数のパラメタで、入力ファイルパス名を指定し、出力ファイルパス名(または標準出力)を指定しないとこの形態になります。
入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力を含む)を使用する形態
入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力を含む)を使用する場合は、以下の手順で行いま
す。
1. bsrtopen関数を発行します。
2. bsrtmrge関数を発行します。
bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。
この形態のbsrtmrge関数には、ユーザアプリケーションからPowerSORTにレコードを渡す働きがあります。bsrtmrge関数の発行
- 185 -
では、個々のストリングのレコードを渡し、ストリングのレコードがなくなったときはレコードの終わりを通知します。処理しているす
べてのストリングに対してレコードの終わりを通知したら、渡すレコードがなくてもPowerSORTからレコードの終わりが通知される
まで連続して発行します。
3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。
bsrtopen関数のパラメタで、入力ファイルパス名を指定しないで、出力ファイルパス名(または標準出力)を指定するとこの形態になりま
す。
8.2.3 コピー機能を使用する場合
コピー機能を使用する場合、入出力ともファイル(標準入力と標準出力を含む)を使用する形態があります。
ソート機能とマージ機能のようにPowerSORTへレコードを渡したり、PowerSORTからレコードを受け取る形態はありません。コピー機能
を使用する場合は、以下の手順で行います。
1. bsrtopen関数を発行します。
2. bsrtclse関数を発行します。
8.3 ユーザアプリケーション開発時の留意事項
ここでは、BSORT関数を使用したユーザアプリケーション開発時の留意事項について説明します。
環境変数について
環境変数は、bsortexコマンド、bsortコマンド、およびPowerSORT OCXだけでなく、BSORT関数を使用したユーザアプリケーションの
実行にも影響を与えます。BSORT関数を使用したユーザアプリケーションを実行させるときには、適切な環境変数を設定する必要が
あります。
コンパイルについて
BSORT関数を使用したユーザアプリケーションのコンパイルには、PowerSORTが提供しているヘッダーファイル(bsrt.h)が必要です。
このヘッダーファイルは、インストール先のINCLUDEフォルダに格納されています。
リンクについて
BSORT関数を使用したユーザアプリケーションのリンクには、PowerSORTが提供しているライブラリ(f3besort.lib)をリンクする必要があ
ります。このライブラリは、インストール先のLIBフォルダに格納されています。
マルチスレッド対応について
BSORT関数は、スレッドセーフな構造で作られていません。このため、マルチスレッドで動作するように作成されたユーザアプリケー
ション上では、PowerSORTの動作は保証できません。
8.4 BSORT関数の種類
ここでは、各BSORT関数の詳細について説明します。
8.4.1 bsrtopen関数
bsrtopen関数は、PowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域にロードし、各関数のアドレスをパラメタfuncに設定し
ます。
さらにPowerSORTの実行環境を準備します。
記述形式
#include "bsrt.h"
int bsrtopen (long int BSRTVL, BSPTR_BSRTFUNC func,
BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec,
- 186 -
BSPTR_BSRTKEY key, BSPTR_BSRTFILE file,
BSPTR_BSRTOPT opt);
機能説明
以下にbsrtopen関数の機能を示します。
・ PowerSORTの実行環境を構築します。
・ 入力にファイル(標準入力を含む)、出力にユーザアプリケーションを使用する場合、ソート機能のときはソート処理を行い、結果を
出力する直前に復帰します。マージ機能のときはそれぞれのファイルから少しずつレコードを入力し、マージ処理をする直前に復
帰します。
・ 入出力ともファイル(標準入力、標準出力を含む)を指定した場合は、ソート処理、またはマージ処理まで実施して復帰します。
・ コピー機能の場合は、コピー処理を実施して復帰します。
パラメタ詳細
以下では、bsrtopen関数のパラメタについて説明します。
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構造体のポインタを意味します。
BSPTR_BSRTKEY
key
ソート機能、またはマージ機能で使用するキーフィールドを指定します。
なお、BSPTR_BSRTKEYは、BSRTKEY構造体のポインタを意味します。
BSPTR_BSRTFILE
file
入力ファイル、出力ファイル、および一時ファイルなどファイル情報を指定するパラメタです。
なお、BSPTR_BSRTFILEは、BSRTFILE構造体のポインタを意味します。
BSPTR_BSRTOPT
opt
オプション機能を指定するパラメタです。
集約フィールド、選択フィールド、再編成フィールド、および読み飛ばしレコード件数を指定する各構造体のポインタを指定します。こ
れら構造体のポインタをいずれも指定しない場合は、bsrtopen関数のoptパラメタに0を指定します。いずれかを指定する場合は、それ
ぞれ領域を確保した上で指定します。なお、BSPTR_BSRTOPTは、BSRTOPT構造体のポインタを意味します。
復帰値
bsrtopen関数の復帰値を説明します。
- 187 -
復帰値
意味
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を指定します。
例) key、file、およびoptを省略する場合の指定方法
bsrtopen(BSRTVL, func, prim, rec,
(BSPTR_BSRTKEY) 0, (BSPTR_BSRTFILE) 0,
(BSPTR_BSRTOPT) 0);
8.4.2 bsrtclse関数
bsrtclse関数は、bsrtopen関数が構築したPowerSORTの実行環境を消去します。
記述形式
#include "bsrt.h"
int bsrtclse (long int BSRTVL, BSPTR_BSRTFUNC func,
BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec);
機能説明
以下にbsrtclse関数の機能を示します。
・ bsrtopen関数が構築したPowerSORTの実行環境を消去します(作業域の解放、入出力ファイルと一時ファイルのクローズなど)。
・ bsrtopen関数でロードしたPowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域から消去します。
・ bsrtget関数、およびbsrtput関数の処理の途中でbsrtclse関数が呼ばれた場合、処理を中断します。
パラメタ詳細
以下では、bsrtclse関数のパラメタについて説明します。
long int
BSRTVL
PowerSORTのバージョンレベル(BSRTVL)を指定します。
BSRTVLはBSORT関数のヘッダーファイル(bsrt.h)で定義されています。
BSPTR_BSRTFUNC
func
bsrtopen関数で指定したfuncを指定します。
なお、BSPTR_BSRTFUNCは、BSRTFUNC構造体のポインタを意味します。
- 188 -
BSPTR_BSRTPRIM
prim
bsrtopen関数で指定したprimを指定します。
なお、BSPTR_BSRTPRIMは、BSRTPRIM構造体のポインタを意味します。
BSPTR_BSRTREC
rec
bsrtopen関数で指定したrecを指定します。
なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。
復帰値
bsrtclse関数の復帰値を説明します。
復帰値
意味
正常にbsrtclse関数が終了しました。
0
処理の中断を指示され、正常に中断処理が終了しました。
なお、以下のような状態のときにbsrtclse関数を発行すると処理を中断します。
・ ユーザアプリケーションが、bsrtput関数、またはbsrtmrge関数でデータの終わりを通
1
知していない状態
・ ユーザアプリケーションに、bsrtget関数、またはbsrtmrge関数がデータの終わりを通
知していない状態
bsrtclse関数の処理で異常が発生したことを示します。
BSRTREC構造体のerrdetail、またはsub_error_codeに詳細コードが設定されます。
-1
注意
bsrtclse関数のパラメタには、ユーザアプリケーションが新しく設定するメンバーはありません。
8.4.3 bsrtput関数
bsrtput関数は、bsrtopen関数でソート機能を指定し、かつユーザアプリケーションからPowerSORTにレコードを渡す場合に使用します。
記述形式
#include "bsrt.h"
BSRTFUNC func; (注)
int func.bsrtput(BSPTR_BSRTREC rec);
注) funcはbsrtopen関数で指定したパラメタです。
機能説明
以下にbsrtput関数の機能を示します。
・ ユーザアプリケーションからPowerSORTにレコード、またはレコード群を渡します。
・ レコード、またはレコード群の終わりをPowerSORTに通知します。
レコード群の渡し方
複数のレコードを一括してPowerSORTに渡す場合は、BSRTREC構造体のrec_lenにレコード群の長さを指定します。
レコード群の長さは、固定長レコード形式の場合、レコード長のレコード件数倍になります。
可変長レコード形式の場合は、個々のレコードにレコード長の領域(long型)を前置します。レコード群の長さは、レコードとレコード長
の領域の累積長になります。なお、レコード長の領域に設定するレコード長にはレコード長の領域を含みません。
テキストファイルの場合は、改行文字を含めたレコードを連続領域に並べます。レコード群の長さは、レコードの先頭から最後のレコー
ドの改行文字までの長さとなります。
- 189 -
パラメタ詳細
以下では、bsrtput関数のパラメタについて説明します。
BSPTR_BSRTREC
rec
bsrtopen関数で指定したrecを指定します。
なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。
復帰値
bsrtput関数の復帰値を説明します。
復帰値
意味
0
正常にbsrtput関数が終了しました。
1
正常にレコード、またはレコード群の終わりを受け付けました。
-1
bsrtput関数の処理で異常が発生したことを示します。
BSRTREC構造体のerrdetail、またはsub_error_codeに詳細コードが設定されます。
8.4.4 bsrtget関数
bsrtget関数は、bsrtopen関数でソート機能を指定し、かつPowerSORTからソート結果のレコードを受け取る場合に使用します。
記述形式
#include "bsrt.h"
BSRTFUNC func; (注)
int func.bsrtget(BSPTR_BSRTREC rec);
注) funcはbsrtopen関数で指定したパラメタです。
機能説明
以下にbsrtget関数の機能を示します。
・ PowerSORTからレコード、またはレコード群を受け取ります。
・ レコード、またはレコード群の終わりをPowerSORTから通知されます。
返却されるレコード群の形式
個々のレコードを連続した領域に並べて返却します。
固定長レコード形式の場合は、先頭レコードのアドレスがBSRTREC構造体のrec_addrに、レコード群の長さ(レコード長のレコード件数
倍)がBSRTREC構造体のrec_lenに設定されます。
可変長レコード形式の場合は、各レコードの先頭にレコード長を格納した領域(long型)を持つ形式で、先頭レコードのアドレスがBSRTREC
構造体のrec_addrに、レコードとレコード長の領域を累積した長さがBSRTREC構造体のrec_lenに設定されます。
テキストファイルのレコードの場合は、改行文字を含めたレコードを連続した領域に並べて返却します。先頭レコードのアドレスがBSRTREC
構造体のrec_addrに、返却するレコードの累積した長さがBSRTREC構造体のrec_lenに設定されます。
パラメタ詳細
以下では、bsrtget関数のパラメタについて説明します。
BSPTR_BSRTREC
rec
bsrtopen関数で指定したrecを指定します。
なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。
- 190 -
復帰値
bsrtget関数の復帰値を説明します。
復帰値
意味
0
正常にbsrtget関数が終了しました。
1
正常にbsrtget関数が終了しました。
すべてのレコードを渡し終えたため、BSRTREC構造体のrec_addrにNULL、rec_lenに0
を設定しました。通常の処理では、bsrtget関数の復帰値が1になるまでbsrtget関数を繰
返し発行してください。
-1
bsrtget関数の処理で異常が発生したことを示します。
BSRTREC構造体のerrdetail、またはsub_error_codeに詳細コードが設定されます。
8.4.5 bsrtmrge関数
bsrtmrge関数は、bsrtopen関数でマージ機能を指定し、PowerSORTにマージするレコードを渡す場合、およびPowerSORTからマージ
結果のレコードを受け取る場合に使用します。
記述形式
#include "bsrt.h"
BSRTFUNC func; (注)
int func.bsrtmrge(BSPTR_BSRTREC rec);
注) funcはbsrtopen関数で指定したパラメタです。
機能説明
以下にbsrtmrge関数の機能を示します。
・ ユーザアプリケーションからPowerSORTにマージするレコードを渡します。
・ PowerSORTからユーザアプリケーションにマージ結果のレコードが返却されます。
・ ストリングの終わりをPowerSORTに通知します。ストリングとは、ソート済のレコードの集まりのことをいいます。
・ マージ結果のレコードの終わりは、PowerSORTからユーザアプリケーションに通知されます。
パラメタ詳細
以下では、bsrtmrge関数のパラメタについて説明します。
BSPTR_BSRTREC
rec
bsrtopen関数で指定したrecを指定します。
なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。
復帰値
bsrtmrge関数の復帰値を説明します。
復帰値
意味
0
正常にbsrtmrge関数が終了しました。
1
正常にbsrtmrge関数が終了しました。
すべてのレコードを渡し終えたため、BSRTREC構造体のmgrec_addrにNULL、mgrec_len
に0を設定しました。
-1
bsrtmrge 関数の処理で異常が発生したことを示します。
BSRTREC構造体のerrdetail、またはsub_error_codeに詳細コードが設定されます。
- 191 -
8.5 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構造体
8.5.1 BSRTPRIM構造体
BSRTPRIM構造体は、ソート処理、マージ処理、およびコピー処理など主要な基本情報を指定するための構造体です。
typedef struct {
unsigned long
unsigned char
unsigned char
unsigned char
unsigned char
reserve1;
function;
recform;
optionfunc;
fileoprat;
/* reserved */
- 192 -
unsigned char
unsigned char
unsigned char
unsigned char
unsigned long
unsigned long
unsigned long
BSPTR_VOID
unsigned long
BSPTR_UCHAR
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
BSPTR_UCHAR
} BSRTPRIM;
recoprat;
msglevel;
cdmode;
chklevel;
rec_len;
input_string;
memory_size;
memory_addr;
input_recno;
fldchar_addr;
debuginfo;
fieldmode;
keyoption;
keyoption2;
linedlmt;
error_happened;
altmode;
reserve4;
/* reserved */
reserve5;
/* reserved */
BSRTPRIM構造体メンバー
以下では、BSRTPRIM構造体のメンバーについて説明します。
unsigned char
function
PowerSORTの主要機能を指定します。
以下から1つを選択して指定します。省略はできません。
定義値
意味
BS_SORT
ソート機能
BS_MERGE
マージ機能
BS_COPY
コピー機能
unsigned char
recform
レコード形式を指定します。
以下から1つを選択して指定します。テキストファイルのときは値を指定する必要はありません。
定義値
意味
BS_FREC
固定長レコード形式
BS_VREC
可変長レコード形式
unsigned char
optionfunc
オプション機能を指定します。
必要に応じて以下を指定します。複数指定する場合は、その論理和を指定します。
定義値
意味
BS_FIFO
先入力先出力(FIFO)機能を示します。(注)
サプレス機能、またはレコード集約機能と同時に指定された場合、先入力先出力(FIFO)
機能の指定は無視されます。
BS_SUPPRESS
サプレス機能を示します。
レコード集約機能とは排他関係にあります。
- 193 -
定義値
意味
BS_SUM
レコード集約機能を示します。
サプレス機能とは排他関係にあります。レコード集約機能を指定する場合は、BSRTOPT
構造体に集約テーブル(BSRTSUM構造体)のアドレスを指定する必要があります。
BS_SELECT
レコード選択機能を示します。
レコード選択機能を指定する場合は、BSRTOPT構造体に選択テーブル(BSRTSELE構
造体)のアドレスを指定する必要があります。
BS_RECON
レコード再編成機能を示します。
レコード再編成機能を指定する場合は、BSRTOPT構造体に再編成テーブル
(BSRTRCON構造体)のアドレスを指定する必要があります。
BS_REVERSE
降順にソート処理、またはマージ処理することを示します。
キーフィールドを省略した場合に有効になります。
BSMSG_STDERR
標準エラー出力にメッセージを出力することを示します。
出力するメッセージの種別は、BSRTPRIM構造体のmsglevel、または環境変数
BSORT_MSGLEVELの指定に依存します。
注) 入力ファイルがMicro Focus COBOLファイルシステムの索引ファイルの場合に先入力先出力(FIFO)機能を指定すると、インデック
ス順ではなく物理順で優先順位が決定します。
unsigned char
fileoprat
入出力情報を指定します。
必要に応じて以下を指定します。複数指定する場合は、その論理和を指定します。
定義値
意味
BS_OVERWRITE
出力ファイルが入力ファイルと同じ場合に、処理を継続することを示します。
ソート機能のときに有効です。このオプションを指定し、出力ファイルが入力ファイルと同
じ場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場合
がありますので、注意してください。
BS_STDIN
標準入力からレコードを入力することを示します。
このオプションは、マージ機能の場合には指定できません。BSRTFILE構造体で入力
ファイルを指定している場合には無視されます。
BS_STDOUT
標準出力に結果を出力することを示します。
BSRTFILE構造体で出力ファイルを指定している場合には無視されます。
unsigned char
recoprat
PowerSORTとのレコードの受渡し方法を指定します。
複数指定する場合は、入力の受渡し方法と出力の受渡し方法から1つずつ選んでその論理和を指定します。
・ 入力の受渡し方法
定義値
意味
BS_IS
bsrtput関数、またはbsrtmrge関数を使用して、1レコードずつPowerSORTに渡す
ことを示します。
BS_IM
bsrtput関数を使用して、複数のレコードを一括してPowerSORTに渡すことを示
します。
この受渡し方法は、マージ機能の場合には指定できません。
・ 出力の受渡し方法
定義値
BS_OS
意味
bsrtget関数、またはbsrtmrge関数を使用して、1レコードずつPowerSORTから受
け取ることを示します。
- 194 -
定義値
意味
bsrtget関数を使用して、複数のレコードを一括してPowerSORTから受け取ること
を示します。
この受渡し方法は、マージ機能の場合には指定できません。
BS_OM
unsigned char
msglevel
PowerSORTが出力するメッセージの種別(レベル)を指定します。
以下から1つを選択して指定します。なお、メッセージを標準エラー出力に出力するためには、BSRTPRIM構造体のoptionfuncに
BSMSG_STDERRを指定する必要があります。
定義値
意味
BSMSG_LEVEL_N
何も出力しません。
BSMSG_LEVEL_E
エラーメッセージを出力します。
BSMSG_LEVEL_W
エラーメッセージ、および警告メッセージを出力します。
BSMSG_LEVEL_I
エラーメッセージ、警告メッセージ、および情報メッセージを出力します。
また、以前のバージョンとの互換用として、以下の種別(レベル)も指定できます。
定義値
意味
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
意味
何もチェックしません。
- 195 -
定義値
意味
BSCHK_LEVEL1
unsigned long
インターフェースをチェックします。
インターフェースチェックは、bsrtput関数、bsrtget関数、およびbsrtmrge関数でパラメタの
正当性をチェックするものです。
rec_len
入力レコード長を指定します。
可変長レコード形式では最大レコード長を指定します。テキストファイルでは改行コードを含んだ最大レコード長を指定します。
unsigned long
input_string
マージ機能時の入力ストリング数を指定します。
ソート機能、またはコピー機能を使用する場合は、0を指定してください。なお、ストリングとは、ソート済のレコードの集まりをいいます。
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
テキストファイル固定フィールド指定を示します。
バイト位置によって各フィールドを指定します。
BS_CSVFORM
テキストファイルCSV形式を示します。
コンマ( , )で区切られたフィールドの番号で各フィールドを指定します。コンマの位置に
- 196 -
定義値
意味
よりフィールド位置が決定されるため、レコードごとにフィールド位置(カラム位置)は異な
ります。
テキストファイルTSV形式を示します。
タブで区切られたフィールドの番号で各フィールドを指定します。タブの位置によりフィー
ルド位置が決定されるため、レコードごとにフィールド位置(カラム位置)は異なります。
BS_TSVFORM
unsigned char
keyoption
キーフィールドの操作を指定します。
テキストファイルの場合にキーフィールドの指定を省略したときに有効です。必要に応じて以下を指定します。複数の操作を指定する
場合は、その論理和を指定します。
定義値
意味
BSOPT_BLANK
キーフィールドの先頭の空白とタブを無視します。
BSOPT_DICTIONAR
Y
空白と英数字だけを比較の対象とします。
BSOPT_IGNORE
制御文字コードを無視します。
BSOPT_JUMBO
英小文字を英大文字として比較します。
BSOPT_NUMERIC
符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。この定義値は、
BSOPT_CHARNUM、およびkeyoption2のBSOPT2_WCHRとは排他関係にあります。
BSOPT_CHARNUM
英字と数字の連結データ(例えば「data123」など)を英字と数値に分けて評価し並べま
す。
英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。
指定フィールドの左から評価し、有効データ後に出現したデータは無視します。この定
義値は、BSOPT_NUMERIC、およびkeyoption2のBSOPT2_WCHRとは排他関係にあり
ます。
unsigned char
keyoption2
キーフィールドの操作を指定します。
複数バイトで表現される文字の文字列を文字単位に比較する場合に指定します。テキストファイルの場合にキーフィールドの指定を省
略したときに有効です。このメンバーはkeyoptionのBSOPT_NUMERIC、およびBSOPT_CHARNUMとは排他関係にあります。必要に
応じて以下を指定します。
定義値
BSOPT2_WCHR
unsigned char
意味
複数バイトから成る文字が混在していても文字ごとに比較して並べます。
linedlmt
レコード分離文字を指定します。
テキストファイルのときに有効です。以下から1つを選択して指定します。
定義値
意味
BSLDM_LF
LFを改行文字とします。
BSLDM_CR
CRを改行文字とします。
BSLDM_CL
CRLFを改行文字とします。
unsigned char
error_happened
サポートしていないメンバーです。何も指定する必要はありません。
- 197 -
unsigned char
altmode
ASCIIコードとEBCDICコード間の変換方式を指定します。
以下から1つを選択して指定します。
定義値
意味
BSALT_ASCII
EBCDICコードとUS ASCIIコード間のコード変換を指定します。
BSALT_JIS8
EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定します。
BSALT_JIS7
EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定します。
参考
以下の場合にASCIIコードとEBCDICコード間の変換が行われます。
・ 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がASCIIコード系でキーフィールドのデータ形式がEBCDICコードの場合
におけるキーフィールドの比較
・ 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系でキーフィールドのデータ形式がASCIIコードの場合
におけるキーフィールドの比較
8.5.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構造体メンバー
以下では、BSRTREC構造体のメンバーについて説明します。
BSPTR_VOID
sort_table
bsrtopen関数により、PowerSORTが使用する作業域のアドレスが設定されます。
このメンバーはPowerSORTが使用する専用の領域であり、ユーザアプリケーションは、bsrtopen関数の発行からbsrtclse関数の発行が
完了するまでの間、内容を保証しなければなりません。ユーザアプリケーションは、このメンバーに対して何もする必要はありません。
unsigned long
errdetail
PowerSORTが処理中にエラーを検出した場合、BSORT関数のエラー詳細コードが設定されます。
ユーザアプリケーションは、エラーの発生を各BSORT関数の戻り値から知ることができます。ユーザアプリケーションは、エラー発生時
以外にこのメンバーを参照する必要はありません。
- 198 -
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を指定した場合、レコード群のアドレスが設定されます。返却す
るレコード、またはレコード群がないときは、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にNULL、rec_lenに0を指定します。
・ bsrtget関数の場合
使用しません。
・ bsrtmrge関数の場合
最終レコードか否かを通知します。
以下のいずれかを指定します。
- 199 -
定義値
意味
BS_CONT
mgrec_stringのストリングにはレコードがまだあります。
BS_ENDDATA
mgrec_stringのストリングのレコードは終わりました。
unsigned char
mgrec_status
PowerSORTからレコードの入力要求が通知されます。
このメンバーは、bsrtmrge関数を使用するときに設定されます。以下のいずれかが設定されます。
定義値
意味
BS_REQ
レコードの入力要求を示します。
mgrec_stringが示すストリングのレコードを次のbsrtmrge関数で渡します。
BS_NOREQ
レコードの入力要求はありません。
rec_addrにNULL、rec_lenに0を指定して、再度bsrtmrge関数を発行します。
unsigned short
mgrec_string
PowerSORTに渡すレコードのストリング番号を指定、または参照します。
bsrtmrge関数で最初のレコードを渡すときに0を指定します。それ以降は、PowerSORTがストリング番号を設定します。ユーザアプリケー
ションは、ここで設定されたストリング番号のレコードを、次のbsrtmrge関数でPowerSORTへ渡してください。このメンバーは、bsrtmrge関数
を使用するときに設定されます。
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に関するエラーコードが設定されます。
8.5.3 BSRTKEY構造体
BSRTKEY構造体は、ソート処理、またはマージ処理するときのキーフィールドを定義するための構造体です。
キーフィールドの指定を省略した場合は、レコード全体をキーフィールドとみなしてコード順に並べます。
BSRTKEY構造体の領域を確保する際の領域の大きさは、BS_KEYTABSIZE(n)を使って求められます。BS_KEYTABSIZE(n)は、n個の
BSKEY構造体をもつBSRTKEY構造体の大きさを求めるマクロです。
注意
テキストファイルCSV形式、テキストファイルTSV形式の場合、キーフィールドは省略できません。
typedef struct {
unsigned long
entry_no;
- 200 -
BSKEY
} BSRTKEY;
key_entry[1];
BSRTKEY構造体メンバー
以下では、BSRTKEY構造体のメンバーについて説明します。
unsigned long
entry_no
キーフィールドの数を指定します。
0を指定した場合は、キーフィールドの省略を意味します。
BSKEY
key_entry[n]
キーフィールドを指定します。
詳細は8.5.4 BSKEY構造体を参照してください。
8.5.4 BSKEY構造体
BSKEY構造体は、個々のキーフィールドを定義するための構造体です。
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構造体メンバー
以下では、BSKEY構造体のメンバーについて説明します。
unsigned long
key_position
キーフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
unsigned long
key_length
キーフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
キーフィールドのデータ形式(key_type)に符号なし2進数(BSKEY_BIT)を指定する場合は、1バイト分のビットを選択するためのマスク
値を指定します。この場合、key_positionの位置にある1バイトのフィールド値とマスク値の論理積がキー値になります。
指定可能な各データ形式の長さについては、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、キーフィールドの
長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つのダ
ブルクォーテーション( " )として長さを計算します。
例) テキストファイルCSV形式における、キーフィールドと長さ
キーフィールド
ABC
キーフィールドとして有効な文字
ABC
キーフィールドの長さ
3バイト
- 201 -
"ABC"
"A""B""C"
"A,B,C"
unsigned char
ABC
A"B"C
A,B,C
3バイト
5バイト
5バイト
key_type
キーフィールドのデータ形式を指定します。
指定可能なデータ形式については、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。
unsigned char
key_order
キーフィールドの並び順を指定します。
以下のいずれかを指定します。
定義値
意味
BS_ASCND
昇順を示します。(省略値)
BS_REVRS
降順を示します。
unsigned char
key_option
キーフィールドの操作を指定します。
指定可能な操作を以下に示します。バイナリファイルの場合は、BSOPT_Kが指定できます。テキストファイルの場合は、全てのキー
フィールドの操作が指定できます。複数の操作を指定する場合は、その論理和を指定します。
定義値
意味
BSOPT_BLANK
キーフィールドの先頭の空白とタブを無視します。
BSOPT_DICTIONAR
Y
空白と英数字だけを比較の対象とします。
BSOPT_IGNORE
制御文字コードを無視します。
BSOPT_JUMBO
英小文字を英大文字として比較します。
BSOPT_KANJI
漢字ソートマージ機能を使用します。
BSKANJI構造体の指定が必要となります。BSOPT_KANJIを指定した場合は、
BSOPT_BLANKの操作だけが有効となり、他の指定は無視します。漢字ソートマージ機
能で指定可能なデータ形式は、ASCIIコード、シフトJISコード、およびJEFコードです。
BSOPT_NUMERIC
符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。データ形式が
ASCIIコード、EBCDICコード、Unicode UCS-2形式、またはUnicode UTF-8形式の場合
に指定できます。
BSOPT_CHARNUM、およびkey_option2のBSOPT2_WCHRとは排他関係にあります。
BSOPT_CHARNUM
英字と数字の連結データ(例えば「data123」など)を英字と数値に分けて評価し並べま
す。
英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。
指定フィールドの左から評価し、有効データ後に出現したデータは無視します。データ
形式がASCIIコード、EBCDICコード、Unicode UCS-2形式、またはUnicode UTF-8形式
の場合に指定できます。
BSOPT_NUMERIC、およびkey_option2のBSOPT2_WCHRとは排他関係にあります。
注意
・ 漢字ソートマージ機能では、BSOPT_BLANKを指定した場合、全角の空白も無視します。
・ キーフィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、key_optionの指定はできません。
- 202 -
・ キーフィールドのデータ形式に文字形式2桁年号(BSKEY_YYC)を指定した場合、key_optionの指定は無視されます。
unsigned char
key_option2
複数バイトで表現される文字の文字列を文字単位に比較する場合の操作を指定します。
ここで指定する定義値は、key_optionのBSOPT_NUMERIC、およびBSOPT_CHARNUMとは排他関係にあります。必要に応じて以下
を指定します。
定義値
意味
BSOPT2_WCHR
BSPTR_VOID
複数バイトから成る文字が混在していても文字ごとに比較して並べます。
データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式、またはUnicode UTF-8
形式で、入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系以外
の場合に有効です。
subfield_addr
漢字ソートマージ機能、または照合順序変更機能を使用する場合に指定します。
・ 漢字ソートマージ機能を使用する場合、その方法を定義したBSKANJI構造体のアドレスを指定します。漢字ソートマージ機能は、
BSKEY構造体のkey_optionにBSOPT_KANJIが指定されている場合に利用できます。
・ 照合順序変更機能を使用する場合は、照合順序変更を定義したBSCOL構造体のアドレスを指定します。照合順序変更機能は、
BSKEY構造体のkey_typeにBSKEY_COLが指定されている場合に利用できます。
参考
バイナリファイルの可変長レコード形式、またはテキストファイルの場合、キーフィールドが存在しないレコードが入力されたときは、キー
フィールドが存在しない部分の値を0とみなして処理します。
8.5.5 BSKANJI構造体
BSKANJI構造体は、漢字フィールド、およびふりがなフィールドを定義するための構造体です。
typedef struct {
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned long
unsigned long
} BSKANJI;
Kkey_order[4];
Kkey_form;
reserve1;
reserve2;
Fkey_type;
Fkey_position;
Fkey_length;
/* reserved */
/* reserved */
BSKANJI構造体メンバー
以下では、BSKANJI構造体のメンバーについて説明します。
unsigned char
Kkey_order[4]
漢字フィールドの漢字属性を指定します。
漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで指定できます。指定可能な漢字属
性を以下に示します。
定義値
意味
BS_BUSHU
部首コード順に並べます。
BS_SOKAKU
総画数順に並べます。
- 203 -
定義値
意味
BS_ONYOMI
音読み順に並べます。
BS_KUNYOMI
訓読み順に並べます。
BS_CODE
漢字コード順に並べます。
unsigned char
Kkey_form
漢字ソートマージ機能の方式を指定します。
指定可能な方式を以下に示します。
定義値
意味
BSFM_STD
基本方式(漢字属性の順)に並べます。
BSKANJI構造体のKkey_orderの指定が必要です。ふりがなフィールドの指定は必要あ
りません。
BSFM_DIC
国語辞典方式(ふりがなの順)に並べます。
ふりがなフィールドの指定が必要となります。
unsigned char
Fkey_type
ふりがなフィールドのデータ形式を指定します。
ふりがなフィールドには、半角文字と全角文字が混在できます。指定可能なデータ形式を以下に示します。
表8.3 バイナリファイルの場合
種類
文字
データ形式
定義値
長さ(バイト)
ASCIIコード
BSKEY_ASC
1~レコード長 (注1)
EBCDICコード (注2)
BSKEY_EBC
1~レコード長 (注1)
シフトJISコード
BSKEY_SJI
1~レコード長 (注1)
JEFコード (注2)
BSKEY_JEF
2~レコード長 (2の倍数) (注1)
表8.4 テキストファイルの場合
種類
文字
データ形式
定義値
長さ(バイト)
ASCIIコード
BSKEY_ASC
1~レコード長 (注1)
シフトJISコード
BSKEY_SJI
1~レコード長 (注1)
注1) レコード再編成機能を指定した場合は、レコード再編成後のレコード長まで指定できます。
注2) 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系の場合に指定できます。
unsigned long
Fkey_position
ふりがなフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
unsigned long
Fkey_length
ふりがなフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
- 204 -
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、ふりがなフィール
ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ
のダブルクォーテーション( " )として長さを計算します。
8.5.6 BSCOL構造体
BSCOL構造体は、照合順序変更機能を定義するための構造体です。
typedef struct {
unsigned char
} BSCOL;
col_char[256];
BSCOL構造体メンバー
以下では、BSCOL構造体のメンバーについて説明します。
unsigned char
col_char[256]
照合順序を変更するための情報を256バイトのテーブルに指定します。
このテーブルでは、照合順序を変更したいコードのオフセット位置に、変更するコードを指定します。256バイトすべてにコードを指定
する必要があります。照合順序を変更しないコードは、オフセット位置と同じコードを指定します。
8.5.7 BSRTFILE構造体
BSRTFILE構造体は、入力ファイル、出力ファイル、メッセージファイル、および一時ファイルの情報を指定するための構造体です。
BSRTFILE構造体で指定するすべてのファイル情報を省略する場合は、bsrtopen関数のfileパラメタにNULLを指定します。ファイル情
報を指定する場合は、領域を確保した上で指定します。
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;
reserve2;
/* reserved */
/* reserved */
BSRTFILE構造体のメンバー
以下では、BSRTFILE構造体のメンバーについて説明します。
BSPTR_BSFILE
inpfile_tbl
入力ファイルを指定する場合、入力ファイルパス名を指定したBSFILE構造体のアドレスを指定します。
標準入力から入力させる場合、またはユーザアプリケーションからレコードを渡す場合(bsrtput関数、またはbsrtmrge関数を使用する場
合)は、NULLを指定します。
BSPTR_UCHAR
outfile_addr
出力ファイルを指定する場合、出力ファイルパス名のアドレスを指定します。
出力ファイルパス名は'¥0'で終わる文字列です。出力ファイルを複数指定する場合は、BSRTFILE構造体のoutfile_tblに指定します。
標準出力に出力させる場合、ユーザアプリケーションにレコードを渡す場合(bsrtget関数、またはbsrtmrge関数を使用する場合)、また
は出力ファイルを複数指定する場合は、NULLを指定します。
- 205 -
BSPTR_BSFILE
tmpfile_tbl
一時ファイルを指定する場合、一時ファイルパス名を指定したBSFILE構造体のアドレスを指定します。
一時ファイルの指定を省略する場合は、NULLを指定します。一時ファイルの指定を省略すると、以下の優先順位に従って一時ファイ
ルを作成するフォルダを決定します。指定されたフォルダが存在しない場合はエラーとなります。
1. 環境変数BSORT_TMPDIRで指定されたフォルダ
2. 環境変数TEMPで指定されたフォルダ
3. 環境変数TMPで指定されたフォルダ
4. Windowsシステムのフォルダ
BSPTR_UCHAR
msgfile_addr
メッセージファイルを指定する場合、メッセージファイルパス名のアドレスを指定します。
メッセージファイルパス名は'¥0'で終わる文字列です。メッセージファイルの指定を省略する場合は、NULLを指定します。メッセージ
ファイルの指定を省略した場合、環境変数BSORT_MSGFILEの指定があれば、そのファイルにメッセージを出力します。
BSPTR_BSFSYS
inpfsys_tbl
BSFSYS構造体のアドレスを指定します。
入力ファイルを指定しない場合、またはシステムの標準ファイルシステムだけを使用する場合は、指定を省略できます。
unsigned char
outfsys
出力ファイルのファイルシステムを指定します。
ファイルシステムについては8.5.9 BSFSYS構造体を参照してください。出力ファイルを指定しない場合、またはシステムの標準ファイル
システムを使用する場合は、指定を省略できます。
unsigned char
recovery
出力ファイルがファイルシステムの許容量を超えた場合のリカバリー処理を指定します。
リカバリー処理は、出力ファイルがファイルシステムの許容量を超えた場合、複数のファイルに分割して出力します。このため、リカバ
リー処理を指定する場合は、出力ファイルを複数指定する必要があります。リカバリー処理の指定がなく、出力ファイルがファイルシス
テムの許容量を超えた場合は、別の出力ファイルをオープンすることなくエラー終了します。
リカバリー処理は、以下のファイルを処理する場合に指定できます。
・ システム標準のファイル(テキストファイル、バイナリファイル)
リカバリー処理を指定する場合は、以下を指定します。
定義値
意味
リカバリー処理を行います。
BSRC_FILE
BSPTR_BSIDX
idx_addr
BSIDX構造体のアドレスを指定します。
出力ファイルが富士通COBOLファイルシステムの索引ファイルのときに有効です。富士通COBOLファイルシステムの索引ファイルの
場合は省略できません。BSIDX構造体については、8.5.10 BSIDX構造体を参照してください。
BSPTR_BSFILE_EXT
outfile_tbl
BSFILE_EXT構造体のアドレスを指定します。
BSFILE_EXT構造体は、以下の場合に指定します。
・ リカバリー処理を行う場合の出力ファイル情報の指定
・ 入力ファイル、または出力ファイルのファイルシステムにBtrieveファイルシステムを指定した場合の、入力Btrieveファイルのオー
ナーネーム、または出力Btrieveファイルのインデックス情報の指定
- 206 -
8.5.8 BSFILE構造体
BSFILE構造体は、入力ファイルパス名と一時ファイルパス名を指定するための構造体です。
BSFILE構造体の領域を確保する際の領域の大きさは、BS_FILESIZE(n)を使って求められます。BS_FILESIZE(n)は、n個のファイル
パス名のポインタをもつBSFILE構造体の大きさを求めるマクロです。
typedef struct {
unsigned long
unsigned_char
} BSFILE;
entry_no;
*file_addr[1];
BSFILE構造体メンバー
以下では、BSFILE構造体のメンバーについて説明します。
unsigned long
entry_no
入力ファイルパス名、または一時ファイルパス名の数を指定します。
0を指定すると入力ファイルパス名、または一時ファイルパス名の指定を省略したものとみなします。マージ機能で入力ファイルパス名
を指定する場合は、入力ファイルパス名の数とBSRTPRIM構造体のinput_stringに同じ値を指定しなければなりません。
unsigned_char
*file_addr[n]
入力ファイルパス名、または一時ファイルパス名のアドレスを指定します。
ファイルパス名は'¥0'で終わる文字列です。
8.5.9 BSFSYS構造体
BSFSYS構造体は、入力ファイルシステムを指定するための構造体です。
BSFSYS構造体の領域を確保する際の領域の大きさは、BS_INPFSYSSIZE(n)を使って求められます。BS_INPFSYSSIZE(n)は、n個
の入力ファイルシステムの情報をもつBSFSYS構造体の大きさを求めるマクロです。
typedef struct {
unsigned long
unsigned char
} BSFSYS;
entry_no;
filesys[1];
BSFSYS構造体メンバー
以下では、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ファイルシステム(索引ファイル)
- 207 -
定義値
ファイルシステム
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ファイルシステム(索引ファイル)は、入力ファイルのファイルシステムとしてのみ指定可能です。
・ データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイルに指定することはできません。
8.5.10 BSIDX構造体
BSIDX構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスを作成するための構造体で
す。
BSIDX構造体の領域を確保する際の領域の大きさは、BS_IDXTABSIZE(n)を使って求められます。BS_IDXTABSIZE(n)は、n個の
インデックスの情報をもつBSIDX構造体の大きさを求めるマクロです。
typedef struct {
unsigned char
unsigned char
unsigned long
BSIDXKEY
} BSIDX;
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ファイルシステムの上限値に従います。
- 208 -
BSIDXKEY
idx_entry[n]
インデックスフィールドを指定します。
詳細は8.5.11 BSIDXKEY構造体を参照してください。
8.5.11 BSIDXKEY構造体
BSIDXKEY構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを指定するた
めの構造体です。
typedef struct {
unsigned long
unsigned long
unsigned char
unsigned char
unsigned char
unsigned char
} BSIDXKEY;
idx_position;
idx_length;
idx_type;
idx_order;
idx_msub;
idx_comp;
BSIDXKEY構造体のメンバー
以下では、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
インデックスフィールドの作成方法を指定します。
必要に応じて以下を指定します。最終セグメントには、必ずBS_ISEGENDを指定します。
- 209 -
定義値
意味
BSIF_DUPS
インデックスに重複キー指定を示します。
BS_IMAIN
主キー指定を示します。
BS_ISUBとは排他関係にあります。
BS_ISUB
副キー指定を示します。
BS_IMAINとは排他関係にあります。
BS_ISEGEND
セグメントの終わりを示します。
unsigned char
idx_comp
現在サポートしていないメンバーです。
'¥0'を指定します。
8.5.12 BSFILE_EXT構造体
BSFILE_EXT構造体は、以下の場合にファイル情報を指定するための構造体です。
・ リカバリー処理を行う場合の出力ファイル情報の指定
・ 入力ファイル、または出力ファイルのファイルシステムにBtrieveファイルシステムを指定した場合の、入力Btrieveファイルのオー
ナーネーム、または出力Btrieveファイルのインデックス情報の指定
BSFILE_EXT構造体の領域を確保する際の領域の大きさは、BS_OUTTABSIZE(n)を使って求められます。BS_OUTTABSIZE(n)は、
n個の出力ファイルの情報をもつBSFILE_EXT構造体の大きさを求めるマクロです。
注意
入力ファイル、または出力ファイルのファイルシステムにBtrieveファイルシステムを指定する場合、BSFILE_EXT構造体では入力ファ
イルのオーナーネーム、または出力ファイルのインデックス情報を指定します。出力ファイル名は、BSRTFILE構造体のoutfile_addrに
指定してください。
typedef struct {
unsigned long
union {
BSPTR_BSFILE_BASE
BSPTR_BSFILE_BASE
BSPTR_BSFILE_BTRV
} outfile_opt[1];
} BSFILE_EXT;
entry_no;
dosfs;
text;
btrieve;
BSFILE_EXT構造体のメンバー
以下では、BSFILE_EXT構造体のメンバーについて説明します。
unsigned long
entry_no
出力ファイルパス名の数を指定します。
システムの標準ファイルシステムの場合、複数の出力ファイルを指定できます。それ以外のファイルシステムの場合、出力ファイルは1
つしか指定できません。0を指定すると出力ファイルの指定を省略したものとみなします。
ファイル拡張情報を設定するメンバー
以下のメンバーは、共用体で定義されています。
BSPTR_BSFILE_BASE
outfile_opt[n].dosfs
システムの標準ファイルシステムのバイナリファイルの場合にBSFILE_BASE構造体のアドレスを指定します。
entry_noで指定した個数分指定します。
- 210 -
BSPTR_BSFILE_BASE
outfile_opt[n].text
システムの標準ファイルシステムのテキストファイルの場合にBSFILE_BASE構造体のアドレスを指定します。
entry_noで指定した個数分指定します。
BSPTR_BSFILE_BTRV
outfile_opt[n].btrieve
Btrieveファイルシステムの場合にBSFILE_BTRV構造体のアドレスを指定します。
8.5.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構造体メンバー
以下では、BSFILE_BTRV構造体のメンバーについて説明します。
BSPTR_BSFILE
InOwnerNameTbl
入力Btrieveファイルのオーナーネームテーブルのアドレスを指定します。
通常は省略可能です。省略する場合はNULLを指定します。
参考
オーナーネームは、BSFILE構造体を使用して指定します。
入力ファイルが複数の場合は、入力ファイル名と同じ順でオーナーネームを指定します。オーナーネームがない場合は、BSFILE構造体の
file_addr[i]にNULLを指定します。
short int
key_len
出力Btrieveファイルのインデックスキーの合計長を指定します。
- 211 -
short int
bufsize
出力Btrieveファイルのファイル情報とインデックスキー情報を設定した領域の大きさを指定します。
char
*btrv_spec
出力Btrieveファイルのファイル情報とインデックスキー情報を設定した領域のアドレスを指定します。
参考
ファイル情報とインデックスキー情報は、出力Btrieveファイルのファイル情報、およびキー情報を指定するための領域です。
概要は以下のとおりです。テーブルの形式や指定内容に関する詳しい説明については、Btrieveのプログラマーズガイド、またはオペ
レーションマニュアルを参照してください。
8.5.14 BSFILE_BASE構造体
BSFILE_BASE構造体は、出力ファイルごとに固有のファイル情報を指定するための構造体です。
typedef struct {
BSPTR_UCHAR
unsigned char
unsigned char
outfile_addr;
file_kind;
reserve[3];
/* reserved */
- 212 -
BSPTR_BSOUT_COND
} BSFILE_BASE;
out_cond;
BSFILE_BASE構造体のメンバー
以下では、BSFILE_BASE構造体のメンバーについて説明します。
BSPTR_UCHAR
outfile_addr
出力ファイルパス名のアドレスを指定します。
出力ファイルパス名は、'¥0'で終わる文字列です。
unsigned char
file_kind
出力ファイルのファイルシステムを指定します。
複数のファイルシステムを混在させることはできません。ファイルシステムについては、8.5.9 BSFSYS構造体を参照してください。
BSPTR_BSOUT_COND
out_cond
サポートしていないメンバーです。
何も指定する必要はありません。
8.5.15 BSRTOPT構造体
BSRTOPT構造体は、集約フィールド、選択フィールド、再編成フィールド、および読み飛ばしレコード件数を指定するための構造体で
す。
typedef struct {
BSPTR_BSRTSUM
BSPTR_BSRTSELE
BSPTR_BSRTRCON
BSPTR_BSRTSKIP
} BSRTOPT;
sum_addr;
sele_addr;
rcon_addr;
skip_addr;
BSRTOPT構造体メンバー
以下では、BSRTOPT構造体のメンバーについて説明します。
BSPTR_BSRTSUM
sum_addr
BSRTSUM構造体のアドレスを指定します。
BSRTSUM構造体は、集約フィールドを定義する構造体です。BSRTPRIM構造体のoptionfuncにBS_SUMを指定したときに有効にな
ります。BSRTPRIM構造体のoptionfuncにBS_SUMを指定し、集約フィールドを省略するとエラーになります。
BSPTR_BSRTSELE
sele_addr
BSRTSELE構造体のアドレスを指定します。
BSRTSELE構造体は、選択フィールドを定義する構造体です。BSRTPRIM構造体のoptionfuncにBS_SELECTを指定したときに有効
になります。BSRTPRIM構造体のoptionfuncにBS_SELECTを指定し、選択フィールドを省略するとエラーになります。
BSPTR_BSRTRCON
rcon_addr
BSRTRCON構造体のアドレスを指定します。
BSRTRCON構造体は、再編成フィールドを定義する構造体です。BSRTPRIM構造体のoptionfuncにBS_RECONを指定したときに有
効になります。BSRTPRIM構造体のoptionfuncにBS_RECONを指定し、再編成フィールドを省略するとエラーになります。
BSPTR_BSRTSKIP
skip_addr
BSRTSKIP構造体のアドレスを指定します。
BSRTSKIP構造体は、読み飛ばすレコード件数を定義する構造体です。BSRTFILE構造体で入力ファイルを指定したときに有効にな
ります。
- 213 -
8.5.16 BSRTSUM構造体
BSRTSUM構造体は、レコード集約機能を使用する場合に、集約フィールドを定義するための構造体です。
レコード集約機能は、指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1つのレコードにする機能です。レコー
ド集約機能の対象となったレコードの中から、どのレコードが出力されるかは不定です。テキストファイルの場合は、ASCIIコード、Unicode
UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の対象とします。
BSRTSUM構造体の領域を確保する際の領域の大きさは、BS_SUMTABSIZE(n)を使って求められます。BS_SUMTABSIZE(n)は、n
個のBSRTSUM構造体の大きさを求めるマクロです。
参考
レコード集約処理実行中にオーバフローが発生した場合、集約フィールドを含まない短いレコードが入力された場合、またはテキスト
レコードの集約処理実行中に集約フィールド内に不適切なコードが発見された場合、bsrtopen関数の復帰値は0、BSRTREC構造体の
errdetailには、それぞれBSERR_OVERFLOW、BSERR_SUMSHRTREC、BSERR_SUMFIELDが設定されます。
typedef struct {
unsigned long
BSSUM
} BSRTSUM;
entry_no;
sum_entry[1];
BSRTSUM構造体メンバー
以下では、BSRTSUM構造体のメンバーについて説明します。
unsigned long
entry_no
集約フィールドのエントリー数を指定します。
0を指定すると集約フィールドの指定を省略したものとみなします。
BSSUM
sum_entry[n]
集約フィールドを指定します。
詳細は8.5.17 BSSUM構造体を参照してください。
8.5.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構造体メンバー
以下では、BSSUM構造体のメンバーについて説明します。
unsigned long
sum_position
集約フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
- 214 -
unsigned long
sum_length
集約フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、指
定したフィールド長に拡張して処理します。指定可能な各データ形式の長さについては、2.7.4.2 集約フィールドに指定可能なデータ形式
を参照してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、集約フィールド
の長さに含みません。
例) テキストファイルCSV形式における、集約フィールドと長さ
集約フィールド
123
"123"
unsigned char
集約フィールドとして有効な文字
123
123
集約フィールドの長さ
3バイト
3バイト
sum_type
集約フィールドのデータ形式を指定します。
指定可能なデータ形式については、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。
unsigned char
sum_resultsign
テキストファイルの場合に符号の有無を指定します。
必要に応じて以下を指定します。
定義値
意味
BS_SIGNED
集約フィールドの値に符号を付けます。
BS_PLUSUNSIGNEDとは排他関係にあります。
BS_PLUSUNSIGNED
集約フィールドの値が負の値の場合だけ「-」の符号を付けます。
BS_SIGNEDとは排他関係にあります。
参考
指定を省略した場合は、入力されたデータに従って以下のように処理します。
・ 集約結果が負の値の場合は、集約結果に「-」の符号を付けます。
・ 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を付けません。
・ 符号なしデータ同士を集約した場合は、集約結果に符号を付けません。
・ 符号なしデータと符号付きデータの集約結果が「0」の場合は、符号を付けません。
・ 符号付きデータ同士を集約した場合は、集約結果に符号を付けます。集約した結果が「0」の場合は、「+」の符号を付けます。
unsigned char
sum_resultnumber
テキストファイルの場合に、集約フィールドの値がフィールド長に満たない場合の扱いを指定します。
必要に応じて以下を指定します。
定義値
BS_ZEROPADDING
意味
集約フィールドの値がフィールド長に満たない場合、左余白に「0」を詰めます。
例えば、集約フィールドの値が「1234」という4桁の数字であり、集約フィールド長が6バ
- 215 -
定義値
意味
イトの場合、「001234」という数字にします。BS_BLANKPADDING、BS_ZBDELETE
とは排他関係にあります。
BS_BLANKPADDING
集約フィールドの値がフィールド長に満たない場合、左余白に空白を詰めます。
例えば、集約フィールドの値が「1234」という4桁の数字であり、集約フィールド長が6バ
イトの場合、□□1234(□は空白を表わす)という数字にします。BS_ZEROPADDING、
BS_ZBDELETEとは排他関係にあります。
BS_ZBDELETE
集約フィールドの先頭から空白、タブ、および「0」を削除します。
集約フィールドの先頭に空白、タブ、および「0」がある場合、左から評価し、「0」以外
の数字が出現するまでの空白、タブ、および「0」を削除します。例えば、「00123」の場
合、「123」という数字にします。ただし、集約フィールドが「0」(「0」、「0000」、「+000」な
ど)の場合、最後の「0」は削除されません。テキストファイル浮動フィールド指定の場合
に指定可能です。BS_ZEROPADDING、BS_BLANKPADDINGとは排他関係にあり
ます。
参考
指定を省略した場合は、入力されたデータに従って以下のように処理します。
・ 出力結果の左余白に「0」を詰める条件
- 左余白に'0'が詰められているデータ同士のとき
- 左余白に'0'が詰められているデータと左余白に空白が詰められているデータのとき
- 左余白に'0'が詰められているデータと左余白にタブが詰められているデータのとき
・ 出力結果の左余白に空白を詰める条件
- 左余白に空白が詰められているデータ同士のとき
- 左余白にタブが詰められているデータ同士のとき
- 左余白に空白が詰められているデータと左余白にタブが詰められているデータのとき
注意
・ レコード集約機能の対象となったレコードの中から、どのレコードが出力されるかは不定です。
・ 集約フィールドは、キーフィールド、および他の集約フィールドと重なることはできません。
・ 集約フィールドは、レコード内に存在する必要があります。
・ レコード集約機能を使用する場合、キーフィールドは省略できません。
・ 集約フィールドの集約処理中にオーバフローが生じた場合の動作は、環境変数BSORT_SUMOVERCONTの指定に従います。
・ 小数点を含む数字の集約はできません。
・ テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の
対象とします。
・ テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現れたことにより集約フィールドの位置が変
わる場合は、正しく動作しません。
・ テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れたときは、指定したフィールド長を超
える部分はレコード集約機能の対象とせず、そのまま出力されます。また、指定したフィールド長より短いフィールドが現れたとき
は、指定したフィールド長に拡張します。
例) 集約フィールドを「2番目のフィールドの長さ5バイト」、キーフィールドを「1番目のフィールドの長さ3バイト」とした場合
- 216 -
入力レコード
出力レコード
001,12345ABC,OPQ (注1)
001,12456ABC,OPQ (注2)
001,111,RST
002,00127,UVW
002,15,UVW (注1)
002,00112DEF,XYZ
注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。
注2) 指定したフィールド長を超える部分(「ABC」)は、そのまま出力されます。
・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、指定したフィールド長よりも長いフィールドが現れたときは、指
定したフィールド長を超える部分はレコード集約機能の対象とせず、出力もされません。また、指定したフィールド長より短いフィー
ルドが現れたときは、指定したフィールド長に拡張します。
例) テキストファイルCSV形式で、集約フィールドを「2番目のフィールドの長さ5バイト」
、キーフィールドを「1番目のフィールドの長さ
3バイト」とした場合
入力レコード
出力レコード
001,12345ABC,OPQ (注1)
001,12468,OPQ (注2)
001,123,RST
002,00027,UVW
002,15,UVW (注1)
002,00012DEF,XYZ
注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。
注2) 指定したフィールド長を超える部分(「ABC」)は、出力されません。
・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、集約フィールドをダブルクォーテーション( " )で囲むかどうか
は、出力対象となる入力レコードのフィールドに従います。出力対象となる入力レコードのフィールドがダブルクォーテーション( " )
で囲まれているときは、レコード集約後のフィールドもダブルクォーテーション( " )で囲みます。
例) テキストファイルCSV形式で、集約フィールドを「2番目のフィールドの長さ5バイト」
、キーフィールドを「1番目のフィールドの長さ
3バイト」とした場合
入力レコード
出力レコード
001,"12345",OPQ (注)
001,"12468",OPQ
001,"123",RST
002,"00027",UVW
002,"15",UVW (注)
003,11900,GHI
002,00012,XYZ
004,98769,MNO
003,11111,GHI (注)
003,"00789",JKL
004,98765,MNO (注)
004,4,PQR
注) ここで示したレコードが、レコード集約機能で出力対象になるものとします。
8.5.18 BSRTSELE構造体
BSRTSELE構造体は、レコード選択機能を使用する場合に、選択フィールドを定義するための構造体です。
BSRTSELE構造体の領域を確保する際の領域の大きさは、BS_SELETABSIZE(n)を使って求められます。BS_SELETABSIZE(n)は、
n個のBSRTSELE構造体の大きさを求めるマクロです。
typedef struct {
unsigned long
BSSELE
} BSRTSELE;
entry_no;
sele_entry[1];
BSRTSELE構造体メンバー
以下では、BSRTSELE構造体のメンバーについて説明します。
unsigned long
entry_no
選択フィールドのエントリー数を指定します。
0を指定すると選択フィールドの指定を省略したものとみなします。
- 217 -
BSSELE
sele_entry[n]
選択フィールドを指定します。
詳細は8.5.19 BSSELE構造体を参照してください。
8.5.19 BSSELE構造体
BSSELE構造体は、個々の選択フィールドを定義するための構造体です。
typedef struct {
unsigned char
unsigned char
unsigned char
unsigned char
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_cmpoprat;
sele_type1;
sele_type2;
sele_option;
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構造体メンバー
以下では、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を指定します。
- 218 -
注意
・ 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデータ形式に合わせてから比較します。
・ 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールドの短い方の長さで比較します。
・ 比較フィールドのデータ形式の種類が数値、または数字の場合、被比較フィールドと比較フィールドの短い方を長い方の長さに合
わせて比較します。
unsigned char
sele_option
被比較フィールドの操作を指定します。
テキストファイルの場合に有効です。必要に応じて以下を指定します。複数の操作を指定する場合は、その論理和を指定します。
操作
意味
BSOPT_BLANK
フィールドの先頭の空白とタブを無視します。
BSOPT_DICTIONAR
Y
空白と英数字だけを比較の対象とします。
BSOPT_IGNORE
制御文字コードを無視します。
BSOPT_JUMBO
英小文字を英大文字として比較します。
BSOPT_NUMERIC
符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。データ形式が
ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式の場合に指定できま
す。
sele_option2のBSOPT2_WCHRとは排他関係にあります。
注意
被比較フィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、sele_optionは指定できません。
unsigned long
sele_position1
被比較フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
unsigned long
sele_length1
被比較フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、被比較フィール
ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ
のダブルクォーテーション( " )として長さを計算します。
例) テキストファイルCSV形式における、被比較フィールドと長さ
被比較フィールド
ABC
"ABC"
被比較フィールドとして有効な文字
ABC
ABC
被比較フィールドの長さ
3バイト
3バイト
- 219 -
"A""B""C"
"A,B,C"
unsigned long
A"B"C
A,B,C
5バイト
5バイト
pos2.sele_position2
比較フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
pos2.sele_literalとは共用体で定義されています。自己規定値を指定するときは、pos2.sele_literalに指定します。
BSPTR_UCHAR
pos2.sele_literal
自己規定値のアドレスを指定します。
テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列を含むことはできません。
pos2.sele_position2とは共用体で定義されています。自己規定値以外を指定するときは、pos2.sele_position2に指定します。
注意
・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。
・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま
せん。
・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールドを囲むダブルクォーテーション( " )を
指定する必要はありません。
unsigned long
sele_length2
比較フィールド、または自己規定値の長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、比較フィールド
の長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つの
ダブルクォーテーション( " )として長さを計算します。
例) テキストファイルCSV形式における、比較フィールドと長さ
比較フィールド
ABC
"ABC"
"A""B""C"
"A,B,C"
unsigned char
比較フィールドとして有効な文字
ABC
ABC
A"B"C
A,B,C
比較フィールドの長さ
3バイト
3バイト
5バイト
5バイト
sele_trueop
比較結果が真のときの処理を指定します。
最後のエントリーのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を指定します。比較結果の処理については、以下を
参照してください。
- 220 -
表8.5 比較結果の処理方法
処理の種類
定義値
意味
BSSEL_INCLUDE
比較処理の終りとレコードを処理対象とすることを示し
ます。
BSSEL_OMIT
比較処理の終りとレコードを処理対象外とすることを示
します。
次の選択フィールドの処理
BSSEL_NEXT
次の比較処理に移ることを示します。
指定選択フィールドへ飛ぶ
BSSEL_JUMP
指定した比較処理に移ることを示します。
INCLUDE
OMIT
unsigned char
sele_falseop
比較結果が偽のときの処理を指定します。
最後のエントリーのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を指定します。比較結果の処理については、表8.5
比較結果の処理方法を参照してください。
BSPTR_UCHAR
sele_mask
サポートしていないメンバーです。
何も指定する必要はありません。
unsigned char
sele_option2
複数バイトで表現される文字の文字列を文字単位に比較する場合の操作を指定します。
ここで指定する定義値は、sele_optionのBSOPT_NUMERICとは排他関係にあります。必要に応じて以下を指定します。
定義値
意味
BSOPT2_WCHR
unsigned long
複数バイトから成る文字が混在していても文字ごとに比較します。
データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式、またはUnicode UTF-8
形式で、入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系以外
の場合に有効です。
sele_truejmp
sele_trueopにBSSEL_JUMPを指定したときの飛び先を指定します。
iを指定すると、比較結果が真のときにsele_entry[i]の選択フィールドへ処理が移ります。sele_truejmpには、自身のエントリー番号+1から
entry_no-1の範囲の値を指定します。
unsigned long
sele_falsejmp
sele_falseopにBSSEL_JUMPを指定したときの飛び先を指定します。
iを指定すると、比較結果が偽のときにsele_entry[i]の選択フィールドへ処理が移ります。sele_falsejmpには、自身のエントリー番号+1から
entry_no-1の範囲の値を指定します。
BSPTR_VOID
subfield_addr
照合順序変更機能を使用する場合、照合順序変更を定義したBSCOL構造体のアドレスを指定します。
照合順序変更機能は、sele_type1、またはsele_type2にBSKEY_COLが指定されている場合に利用できます。
参考
1つの選択フィールドは、1つの論理式を表現します。このため、複合条件を指定する場合は、複数の選択フィールドを指定する必要
があります。以下に、複合条件を満たすレコードを選択する場合の指定方法を示します。
複合条件
(論理式1 ∩ 論理式2) ∪ 論理式3 (注)
注) ∩は論理積、∪は論理和を表しています。
- 221 -
指定方法
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
8.5.20 BSRTRCON構造体
BSRTRCON構造体は、レコード再編成機能を使用する場合に、再編成フィールドを定義するための構造体です。
BSRTRCON構造体の領域を確保する際の領域の大きさは、BS_RCONTABSIZE(n)を使って求められます。BS_RCONTABSIZE(n)
は、n個のBSRTRCON構造体の大きさを求めるマクロです。
注意
レコード再編成機能を使用する場合、キーフィールドと集約フィールドにはレコード再編成後のフィールド位置を指定します。
typedef struct {
unsigned long
BSRCON
} BSRTRCON;
entry_no;
rcon_entry[1];
BSRTRCON構造体のメンバー
以下では、BSRTRCON構造体のメンバーについて説明します。
unsigned long
entry_no
再編成フィールドのエントリー数を指定します。
0を指定すると再編成フィールドの指定を省略したものとみなします。
BSRCON
rcon_entry[n]
再編成フィールドを指定します。
詳細は8.5.21 BSRCON構造体を参照してください。
8.5.21 BSRCON構造体
BSRCON構造体は、個々の再編成フィールドを定義するための構造体です。
typedef struct {
union {
unsigned long
BSPTR_UCHAR
} pos;
unsigned long
unsigned char
unsigned char
unsigned char
} BSRCON;
rcon_position;
rcon_literal;
rcon_length;
rcon_consinf;
rcon_option;
reserve[2];
/* reserved */
BSRCON構造体メンバー
以下では、BSRCON構造体のメンバーについて説明します。
unsigned long
pos.rcon_position
再編成フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮
- 222 -
動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
rcon_consinfにBS_EMPFLDを指定する場合は、0を指定してください。
pos.rcon_literalとは共用体で定義されています。自己規定値を指定したいときは、pos.rcon_literalに指定します。
BSPTR_UCHAR
pos.rcon_literal
自己規定値のアドレスを指定します。
pos.rcon_positionとは共用体で定義されています。入力レコード中のフィールドを指定したい場合は、pos.rcon_positionに指定します。
注意
・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。
・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま
せん。
・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールド分離文字、レコード分離文字(注)、
またはダブルクォーテーション( " )が含まれているときは、自己規定値をダブルクォーテーション( " )で囲んで出力します。この際、
自己規定値のダブルクォーテーション( " )は、2つ連続して出力します。
注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか一つでも含ま
れている場合、自己規定値をダブルクォーテーション( " )で囲みます。
例) 自己規定値にフィールド分離文字(コンマ)、またはダブルクォーテーション( " )を含む場合の再編成フィールドに出力される
データ
自己規定値の指定
FIELD"2"
FIELD2,3
FIELD"2",3
unsigned long
再編成フィールドに出力されるデータ
"FIELD""2"""
"FIELD2,3"
"FIELD""2"",3"
rcon_length
再編成フィールド、または自己規定値の長さを指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも
長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実
際のフィールド長で処理します。rcon_consinfにBS_RECEND、またはBS_EMPFLDを指定する場合は、0を指定してください。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、再編成フィール
ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ
のダブルクォーテーション( " )として長さを計算します。
例) テキストファイルCSV形式における、再編成フィールドと長さ
再編成フィールド
ABC
"ABC"
"A""B""C"
"A,B,C"
unsigned char
再編成フィールドとして有効な文字
ABC
ABC
A"B"C
A,B,C
再編成フィールドの長さ
3バイト
3バイト
5バイト
5バイト
rcon_consinf
入力レコード中のフィールドを再編成フィールドにするか、または自己規定値を再編成フィールドにするかを指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、PowerSORTがフィールド分
離文字列を付加して再編成します。
- 223 -
定義値
意味
BS_FIELD
入力レコード中のフィールドを再編成フィールドに指定します。
BS_LITERAL
自己規定値を再編成フィールドに指定します。
BS_RECEND
指定位置からレコードの最後までを再編成フィールドに指定します。
BS_EMPFLD
空フィールドを再編成フィールドに指定します。
テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定できます。
unsigned char
rcon_option
再編成フィールドの操作を指定します。
テキストファイルCSV形式、またはテキストファイルTSV形式の場合、自己規定値、または空フィールドを再編成フィールドとするときに
指定できます。必要に応じて以下を指定します。省略した場合は、BSFE_Lを指定したものとして動作します。
定義値
意味
BSFE_A
再編成フィールドをダブルクォーテーション( " )で囲みます。
BSFE_L
再編成フィールドをダブルクォーテーション( " )で囲みません。
ただし、再編成フィールドに、フィールド分離文字、レコード分離文字(注)、またはダブル
クォーテーション( " )が含まれている場合は、ダブルクォーテーション( " )で囲みます。
注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含まれ
ている場合、自己規定値をダブルクォーテーション( " )で囲みます。
参考
・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、入力レコード中のフィールドを再編成フィールドとするときに
再編成フィールドをダブルクォーテーション( " )で囲むかどうかは、入力レコードのフィールドに従います。入力レコードのフィール
ドがダブルクォーテーション( " )で囲まれているときは、レコード再編成後のフィールドもダブルクォーテーション( " )で囲みます。
例) 再編成フィールドを「2番目のフィールドの長さ3バイト、3番目のフィールドの長さ2バイト」と指定した場合
入力レコード
出力レコード
"001","ABC",60
"ABC",60
"002","ABCDE",50
"ABC",50
"003","AB,CDE",40
"AB,",40
"004","AB"CDE,30 (注)
"AB"C,30
注) 2番目のフィールドは、「AB」がダブルクォーテーションで囲まれ、「CDE」がそのあとに続いていると判断します。
8.5.22 BSRTSKIP構造体
BSRTSKIP構造体は、入力ファイルの先頭から処理対象としないレコードを読み飛ばす場合に、読み飛ばすレコード件数を定義する
ための構造体です。
BSRTSKIP構造体の領域を確保する際の領域の大きさは、BS_SKIPTABSIZE(n)を使って求められます。BS_SKIPTABSIZE(n)は、n
個のBSRTSKIP構造体の大きさを求めるマクロです。
typedef struct {
unsigned long
unsigned long
} BSRTSKIP;
entry_no;
skip_recnum[1];
BSRTSKIP構造体メンバー
以下では、BSRTSKIP構造体のメンバーについて説明します。
- 224 -
unsigned long
entry_no
読み飛ばすレコード件数のエントリー数を指定します。
0を指定すると読み飛ばすレコード件数の指定を省略したものとみなします。
unsigned long
skip_recnum[n]
読み飛ばすレコード件数を指定します。
0を指定するとすべてのレコードが処理対象となります。入力ファイルの指定順に合わせて、入力ファイルごとに読み飛ばすレコード件
数を指定します。入力ファイル数より読み飛ばすレコード件数の指定が少ない場合は、指定のない入力ファイルのレコードはすべて処
理対象となります。入力ファイル数より読み飛ばすレコード件数の指定が多い場合は、入力ファイルに対応しない指定が無視されま
す。
8.5.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
reserve1;
/* reserved */
unsigned long
reserve2;
/* reserved */
BSPTR_VOID
handle;
} BSRTFUNC;
BSRTFUNC構造体メンバー
以下では、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が実行中に使用するメンバーです。
このメンバーは参照、および更新する必要はありません。
- 225 -
BSPTR_VOID
handle
PowerSORTが実行中に使用するメンバーです。
このメンバーは参照、および更新する必要はありません。
- 226 -
第9章 メッセージとエラーコード
ここでは、bsortコマンド、bsortexコマンド、およびBSORT関数が出力するメッセージと、PowerSORT OCX、およびBSORT関数が返す
エラー詳細コードについて説明します。
9.1 メッセージ
PowerSORTが出力するメッセージには、情報メッセージ、警告メッセージ、およびエラーメッセージがあります。
また、環境変数BSORT_EVENTLOGにE、W、I、またはYESを指定した場合は、指定値に応じたメッセージをアプリケーションログへ
出力します。
出力されるメッセージは、システムの地域設定によって日本語メッセージと英語メッセージが切り替わります。
メッセージの出力先
メッセージの出力先は、環境変数BSORT_MSGOUTで指定します。
また、メッセージをファイルへ出力する場合は、環境変数BSORT_MSGFILE、bsortコマンドの-Gオプション、bsortexコマンドの-option
オプションのmsgfileオペランド、またはBSORT関数のBSRTFILE構造体で指定します。
詳細は、それぞれの説明を参照してください。
メッセージの出力形式
メッセージの出力形式は、環境変数BSORT_MSGSTYLEで指定します。
環境変数BSORT_MSGSTYLEに1を指定した場合、以下のようにメッセージ本文だけをメッセージとして出力します。
メッセージ本文
メッセージ本文:メッセージの本文です。各メッセージの説明を参照してください。
指定を省略した場合、または2を指定した場合、以下の形式で出力します。
ヘッダー: 日付と時刻: メッセージ種別: メッセージ番号 メッセージ本文
ヘッダー:
"PSORT" と出力します。
日付と時刻:
"YYYY-MM-DD HH:MM:SS" の形式で出力します。
メッセージ種別:INFO(情報メッセージ)、WARNING(警告メッセージ)、ERROR(エラーメッセージ)のいずれかを出力します。
メッセージ番号:メッセージごとに一意に設定された4桁の番号を出力します。各メッセージの説明を参照してください。
メッセージ本文:メッセージの本文です。各メッセージの説明を参照してください。
9.1.1 情報メッセージ
情報メッセージは、PowerSORTの処理状況、および処理結果を通知するメッセージです。
環境変数BSORT_MSGLEVEL、bsortexコマンドの-optionオプションのmsglevelオペランド、bsortコマンドの-lオプション、またはBSORT
関数のBSRTPRIM構造体で情報メッセージの出力を指定した場合に出力されます。
9.1.1.1 情報メッセージの説明形式
以下に情報メッセージの説明形式を示します。
メッセージ番号
日本語メッセージ
英語メッセージ
可変情報
情報メッセージ中の可変情報を以下のように示します。
%s: %sの位置に示されている文字列の意味
- 227 -
システムの処理
PowerSORTの処理を示します。
9.1.1.2 情報メッセージ
以下に情報メッセージを示します。
1044
入力レコード件数は%sです.
Number of input records is %s.
可変情報
%s: 入力ファイルから読み込んだすべてのレコード件数、またはユーザアプリケーションから受け取ったすべてのレコード件数
システムの処理
処理を継続します。
1045
出力レコード件数は%sです.
Number of output records is %s.
可変情報
%s: 出力ファイルに出力したすべてのレコード件数、またはユーザアプリケーションへ返却したすべてのレコード件数
システムの処理
処理を継続します。
1046
削除レコード件数は%sです.
Number of suppress records is %s.
可変情報
%s: レコードの選択、集約、またはサプレス機能で処理の対象外になったレコード件数
システムの処理
処理を継続します。
1052
Business Sort
Business Sort
<<< %s1 >>>
<<< %s1 >>>
DATE %s2 TIME %s3
DATE %s2 TIME %s3
可変情報
%s1: PowerSORTのバージョン
%s2: 日付
%s3: 時刻
システムの処理
処理を開始します。
- 228 -
1053
Business Sort
Business Sort
<<< %s1 >>>
<<< %s1 >>>
DATE %s2 TIME %s3
DATE %s2 TIME %s3
可変情報
%s1: PowerSORTのバージョン
%s2: 日付
%s3: 時刻
システムの処理
処理を終了します。
9.1.2 警告メッセージ
警告メッセージは、PowerSORTが検出した異常を通知するメッセージです。
異常の検出後、処理を継続できる場合、警告メッセージとして検出した異常を通知します。
環境変数BSORT_MSGLEVEL、bsortexコマンドの-optionオプションのmsglevelオペランド、bsortコマンドの-lオプション、またはBSORT
関数のBSRTPRIM構造体で警告メッセージの出力を指定した場合に出力されます。
9.1.2.1 警告メッセージの説明形式
以下に警告メッセージの説明形式を示します。
メッセージ番号
日本語メッセージ
英語メッセージ
可変情報
警告メッセージ中の可変情報を以下のように示します。
%s: %sの位置に示されている文字列の意味
%d: %dの位置に示されている数値の意味
エラー原因
エラーの原因を示します。
システムの処理
PowerSORTの処理を示します。
ユーザの対処
ユーザの対処方法を示します。
9.1.2.2 警告メッセージ
以下に警告メッセージを示します。
0024
メッセージファイルの容量が足りません.メッセージファイルへの出力を中止します.
The message file capacity was insufficient. The output to the message file was interrupted.
可変情報
なし
- 229 -
エラー原因
ディスクの空き容量がないため、スペースの拡張ができません。
システムの処理
メッセージファイルへの出力を中断し、本メッセージを含めて標準エラー出力に切り換えて処理を続行します。
ユーザの対処
次のいずれかの対処をお願いします。
・ メッセージファイルを別のディスク上に指定してください。
・ 不要なファイルを削除し、ディスクに空きスペースを作ってから再度実行してください。
0028
同じファイル(%s)を指定しています.
Same file(%s) is specified.
可変情報
%s: ファイルパス名
エラー原因
次のいずれかの場合に出力されます。
・ 一時ファイルと入力ファイル、一時ファイルと出力ファイル、一時ファイルとメッセージファイル、または一時ファイルと他の一時
ファイルに同じファイルを指定しています。
・ 一時ファイルパス名の生成で、一意なパス名の生成に失敗しました。
システムの処理
エラーとなった一時ファイルは使用せず、処理を継続します。
ユーザの対処
同じファイルパス名を指定しないようにしてください。
0029
ファイル(%s)の形式に誤りがあります.
Invalid format of file (%s).
可変情報
%s: エラーのあったファイルパス名
エラー原因
一時ファイルを作成するフォルダの指定がフォルダではありません。
システムの処理
エラーとなった一時ファイルを作成するフォルダは使用せず、処理を継続します。
ユーザの対処
一時ファイルの形式を確認してください。
0030
ファイル(%s)の属性に誤りがあります.
Invalid attribute of file (%s).
- 230 -
可変情報
%s: ファイルパス名
エラー原因
一時ファイルの属性が違います。または、一時ファイルを作成するフォルダが使用できません。
システムの処理
エラーとなった一時ファイルは使用せず、処理を継続します。
ユーザの対処
一時ファイルの属性、または指定した一時ファイルを作成するフォルダを確認してください。
0032
ファイル(%s1)のオープンでエラー(%s2)が発生しました.
Error occurred during file (%s1) open.(%s2)
可変情報
%s1: 一時ファイルパス名
%s2: エラー番号、またはエラー詳細情報
エラー原因
一時ファイルのオープンでエラーが発生しました。
システムの処理
エラーとなった一時ファイルは使用せず、処理を継続します。
ユーザの対処
システムのマニュアルから出力されたエラー番号を参照し、エラー原因を取り除いてください。
0039
ファイル(%s)には参照許可または書込許可がありません.
There is no reference or writing permission on the file(%s).
可変情報
%s: 一時ファイルパス名
エラー原因
参照、または書込みすることを許されていないファイルを指定しています。
システムの処理
処理を継続します。
ユーザの対処
一時ファイルの指定を確認し、再度実行してください。
0041
集約処理でオーバフローが発生しました.
The overflow occurred at the summation process.
可変情報
なし
- 231 -
エラー原因
レコード集約処理でオーバフローが発生しました。
システムの処理
次のいずれかの処理を行います。どちらの処理を選択しても、ソート、またはマージの処理は継続します。
・ 環境変数BSORT_SUMOVERCONTの指定がない、またはOFFの場合は、集約処理を中断し、それ以後の同値のキーフィー
ルドを持つレコードに対しては、集約処理を行いません。
・ 環境変数BSORT_SUMOVERCONTの指定がONの場合は、オーバフローする直前まで集約されたレコードを出力し、それ以
後の同値のキーフィールドを持つレコードに対しては、別レコードとして集約処理を継続します。
bsortexコマンド、またはbsortコマンドの場合、bsortopt.exe(BSORTオプション環境設定)によりBSORT_SUMOVERに値を設定する
と、bsortexコマンド、またはbsortコマンドの復帰値として設定した値を返します。
ユーザの対処
集約フィールドで指定したフィールドを拡張してください。
0042
集約フィールドが存在しないレコードが入力されたため,集約処理を中止します.
Summation field did not exist on the input record. Therefore, the summation process was discontinued.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ 可変長レコード入力中、集約フィールドを含まない短いレコードが入力されたため、集約処理を中止します。
・ テキストレコード入力中、集約フィールドを含まないレコードが入力されたため、集約処理を中止します。
システムの処理
レコード集約処理を中断します。ソート、またはマージの処理は継続します。
bsortexコマンド、またはbsortコマンドの場合、bsortopt.exe(BSORTオプション環境設定)によりBSORT_SUMSHRTに値を設定する
と、bsortexコマンド、またはbsortコマンドの復帰値として設定した値を返します。
ユーザの対処
集約フィールドの指定を確認してください。
0083
システムコールまたはライブラリ関数(%s)でエラー(%d)が発生しました.
Error occurred during system call or library function (%s)(%d).
可変情報
%s: システムコール、またはライブラリ関数名
%d: エラー番号
エラー原因
システムコール、またはライブラリ関数の呼び出しでエラーが発生しました。
システムの処理
処理を継続します。
- 232 -
ユーザの対処
関数名、およびエラー番号からエラーの原因が分かる場合は、そのエラー原因を取り除いてください。エラーの原因が分からない
場合は、関数名、およびエラー番号とともに技術員(SE)に連絡してください。
0084
システムコールまたはライブラリ関数(%s1)でエラー(%d)が発生しました(パス名:%s2).
Error occurred during system call or library function (%s1)(%d) (path name:%s2).
可変情報
%s1: システムコール、またはライブラリ関数名
%d : エラー番号
%s2: パス名
エラー原因
ファイルに対するシステムコール、またはライブラリ関数の呼び出しでエラーが発生しました。
システムの処理
処理を継続します。
ユーザの対処
関数名、エラー番号、およびパス名からエラーの原因が分かる場合は、そのエラー原因を取り除いてください。エラーの原因が分
からない場合は、関数名、エラー番号、およびパス名とともに技術員(SE)に連絡してください。
0089
集約フィールド(%d)の内部に不適切なコードが発見されたため,集約処理を中断します.
Unreasonable code is found in the summation-field(%d) specification. The summation process was interrupted.
可変情報
%d: フィールド番号
エラー原因
テキストレコードの集約フィールド内に、数字、符号、空白、およびタブ以外の文字が発見されました。
システムの処理
レコード集約処理を中断します。ソート、またはマージの処理は継続します。
bsortexコマンド、またはbsortコマンドの場合、bsortopt.exe(BSORTオプション環境設定)によりBSORT_SUMFILDに値を設定する
と、bsortexコマンド、またはbsortコマンドの復帰値として設定した値を返します。
ユーザの対処
集約フィールドの指定を確認してください。
9.1.3 エラーメッセージ
エラーメッセージは、PowerSORTが検出した異常を通知するメッセージです。
異常の検出後、処理を継続できない場合、エラーメッセージとして検出した異常を通知します。
エラーメッセージは、環境変数BSORT_MSGLEVEL、bsortexコマンドの-optionオプションのmsglevelオペランド、bsortコマンドの-lオプ
ション、またはBSORT関数のBSRTPRIM構造体でエラーメッセージの出力を指定した場合に出力されます。
9.1.3.1 エラーメッセージの説明形式
以下にエラーメッセージの説明形式を示します。
- 233 -
メッセージ番号
日本語メッセージ
英語メッセージ
可変情報
エラーメッセージ中の可変情報を以下のように示します。
%s: %sの位置に示されている文字列の意味
%d: %dの位置に示されている数値の意味
エラー原因
エラーの原因を示します。
システムの処理
PowerSORTの処理を示します。
ユーザの対処
ユーザの対処方法を示します。
9.1.3.2 エラーメッセージ
以下にエラーメッセージを示します。
0001
オプション(%s)は省略できません.
Option (%s) is not specified.
可変情報
%s: 必要とするオプション
エラー原因
次のいずかの場合に出力されます。
・ 標準出力許可(-w)の指定がない場合、出力ファイル名(-o)の指定を省略できません。
・ COBOLファイル、またはRDMファイルを指定した場合は、レコード形式(recform(-record)、または-Z)の指定を省略できません。
システムの処理
処理を中断します。
ユーザの対処
必要なオプションを指定して、再度実行してください。
0002
オプション(%s1)と(%s2)は同時に指定できません.
Exclusive options (%s1), (%s2) are specified.
可変情報
%s1: 排他関係にあるオプション1
%s2: 排他関係にあるオプション2
エラー原因
次のいずれかの場合に出力されます。
・ ソート機能(-s)、マージ機能(-m)、コピー機能(-c)のいずかを同時に指定しています。
- 234 -
・ サプレス機能(suppress(-summary)、または-u)、およびレコード集約機能(field(-summary)、または-g)を同時に指定しています。
・ コピー機能(-copy、または-c)と他のオプション(-summary、overwrite(-input)、または-u、-g、-r、-v)のいずれかを同時に指定して
います。
・ マージ機能(-merge、または-m)と上書き許可(overwrite(-input)、または-v)を同時に指定しています。
システムの処理
処理を中断します。
ユーザの対処
排他関係にあるオプションの指定を修正して、再度実行してください。
0003
オプション(%s)が重複しています.
Duplicate options (%s) are specified.
可変情報
%s: 重複しているオプション
エラー原因
フィールド指定以外のオプションを重複して指定しています。
システムの処理
処理を中断します。
ユーザの対処
オプションの重複を修正して、再度実行してください。
0004
オプション(%s)の指定に誤りがあります.
Invalid option (%s) is specified.
可変情報
%s: 不当なオプション
エラー原因
次のいずれかの場合に出力されます。
・ オプションとして認識できない文字列があります。
・ マージ機能(-m)を指定していますが、入力ファイルの指定がありません。
・ ファイルシステム(-F)の指定が許されたもの以外です。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0005
オプション(%s)の値に誤りがあります.
Invalid value (%s) is specified.
- 235 -
可変情報
%s: 不当なオプション
エラー原因
次のいずれかの場合に出力されます。
・ レコード長(-z) の指定が数値ではありません。
・ 当該オプションの値として許されたもの以外です。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0006
文法的な誤り(%s)があります.
Syntax error (%s).
可変情報
%s: 文法的な誤りを検出した文字列
エラー原因
次のいずれかの場合に出力されます。
・ 引数が必要なオプションに引数がありません。
・ 引数の無いオプション(例えば -s、-m、-f、-u、-v)と引数が必要なオプション(例えば、-y、-z、-o)を連続して指定しています。
システムの処理
処理を中断します。
ユーザの対処
オプション、またはオペランドの指定形式を修正して、再度実行してください。
0007
キーフィールド(%d)の指定に誤りがあります.
The mistake is found in the key-field(%d) specification.
可変情報
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
・ 形式に誤りがあります。
・ キーフィールド(BSRTKEY構造体のkey_entry[%d])の指定に誤りがあります。
・ 当該データ形式で許しているフィールド長を超えています。または不当な値です。
・ フィールド長の指定がレコード長を超えています。または、レコード長の指定がありません。
・ オプションの指定に誤りがあります。
- 236 -
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0008
集約フィールド(%d)の指定に誤りがあります.
The mistake is found in the summation-field(%d) specification.
可変情報
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
・ 形式に誤りがあります。
・ 集約フィールド(BSRTSUM構造体のsum_entry[%d])の指定に誤りがあります。
・ BSRTPRIM構造体のoptionfuncでBS_SUMを指定していますが、BSRTSUM構造体の指定がありません。
・ 当該データ形式で許しているフィールド長を超えています。または不当な値です。
・ フィールド長の指定がレコード長を超えています。または、レコード長の指定がありません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0009
再編成フィールド(%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)を指定しました。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
- 237 -
0010
選択フィールド(%d)の指定に誤りがあります.
The mistake is found in the selection-field(%d) specification.
可変情報
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
・ 形式に誤りがあります。
・ 選択フィールド(BSRTSELE構造体のsele_entry[%d])の指定に誤りがあります。
・ BSRTPRIM構造体のoptionfuncでBS_SELECTを指定していますが、BSRTSELE構造体の指定がありません。
・ 当該データ形式で許しているフィールド長を超えています。または不当な値です。
・ フィールド長の指定がレコード長を超えています。または、レコード長の指定がありません。
・ 真、または偽のオペレーションあるいは飛び先に誤りがあります。
・ オプションの指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0011
環境変数の指定に誤りがあります.
Invalid environment variable is specified.
可変情報
なし
エラー原因
環境変数の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0014
bsrtopen関数で指定したBSRTPRIM(%s)に誤りがあります.
The mistake is found in BSRTPRIM(%s) specified by the bsrtopen function.
可変情報
%s: 誤りを検出したフィールド名
エラー原因
次のいずれかの場合に出力されます。
・ 主要機能(function)を認識できません。または、指定されていません。
- 238 -
・ レコード形式(recform)が認識できません。または、指定されていません。
・ オプション機能(optionfunc)が認識できません。
・ 入出力情報(fileoprat)が認識できません。
・ レコードの受渡し方法(recoprat)が認識できません。
・ メッセージの種別(msglevel)が認識できません。
・ 入力ファイルのコード系(cdmode)が認識できません。
・ チェック機構(chklevel)が認識できません。
・ キーフィールドの操作(keyoption、またはkeyoption2)が認識できません。
・ マージ機能のとき、入力ストリング数の指定がありません。
・ マージ機能のとき、標準入力からレコードを入力するよう指定されています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0015
bsrtopen関数で指定したBSRTFILE(%s)に誤りがあります.
The mistake is found in BSRTFILE(%s) specified by the bsrtopen function.
可変情報
%s: 誤りを検出したフィールド名
エラー原因
次のいずれかの場合に出力されます。
・ 入力ファイルテーブル(infile_tbl)内の指定に誤りがあります。
・ 出力ファイルテーブル(outfile_tbl)内の指定に誤りがあります。
・ 一時ファイルテーブル(tmpfile_tbl)内の指定に誤りがあります。
・ メッセージファイル(msgfile_addr)の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0016
キーフィールドと集約フィールド,または集約フィールドと集約フィールドが重なっています.
Key field and summation field positions, or summation fields positions are identical.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ キーフィールドと集約フィールドが重なっています。
- 239 -
・ 集約フィールド同士が重なっています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0018
bsrtput関数の使用方法に誤りがあります.
Invalid use for bsrtput function.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ ファイルから入力するよう指定しているときに、bsrtput関数を発行しています。
・ bsrtput関数でBS_ENDDATA(レコード渡し終了)を指定した後、bsrtput関数を発行しています。
・ bsrtopen関数でマージ機能を指定しているときに、ソート機能専用のbsrtput関数を発行しています。
システムの処理
処理を中断します。
ユーザの対処
誤りの原因を修正して、再度実行してください。
0019
bsrtget関数の使用方法に誤りがあります.
Invalid use for bsrtget function.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ ファイルに出力するよう指定しているときに、bsrtget関数を発行しています。
・ bsrtput関数でBS_ENDDATA(レコード渡し終了)を指定する前(レコード渡し途中)に、bsrtget関数を発行しています。
・ PowerSORTからレコードの終了通知後、bsrtget関数を発行しています。
・ bsrtopen関数でマージ機能を指定しているときに、ソート機能専用のbsrtget関数を発行しています。
システムの処理
処理を中断します。
ユーザの対処
誤りの原因を修正して、再度実行してください。
- 240 -
0020
bsrtmrge関数の使用方法に誤りがあります.
Invalid use for bsrtmrge function.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ bsrtopen関数で入力ファイルと出力ファイルを指定しているときに、bsrtmrge関数を発行しています。
・ PowerSORTからレコードの終了通知後、bsrtmrge関数を発行しています。
・ bsrtopen関数でソート機能を指定したときに、マージ機能専用のbsrtmrge関数を発行しています。
・ bsrtopen関数で指定したストリング番号より大きな値をbsrtmrge関数のストリング番号に設定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りの原因を修正して、再度実行してください。
0021
%s関数でレコードアドレスの指定がありません.
Record address is not specified in %s function.
可変情報
%s: bsrtput、またはbsrtmrge
エラー原因
次のいずれかの場合に出力されます。
・ bsrtput関数でレコードアドレスを指定していません。
・ bsrtmrge関数でレコードを渡し終えたことを指示する前に、レコードアドレスの指定を省略しました。
システムの処理
処理を中断します。
ユーザの対処
レコードアドレスを指定するようユーザアプリケーションを修正してください。すべてのレコードを渡し終えているのであれば、
BS_ENDDATAを指定するようにユーザアプリケーションを修正してください。
0022
%s関数で指定したレコード長に誤りがあります.
Invalid record length is specified in %s function.
可変情報
%s: bsrtopen、bsrtput、またはbsrtmrge
エラー原因
次のいずれかの場合に出力されます。
・ 固定長レコード形式のときに、bsrtopen関数で指定した長さと異なる長さを指定しています。
- 241 -
・ 可変長レコード形式のときに、bsrtopen関数で指定した最大レコード長よりも長いレコードを指定しています。
・ bsrtopen関数でレコード長を指定していません。
・ 固定長レコード形式でレコード群渡しのとき、bsrtopen関数で指定したレコード長の整数倍の値を指定していません。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をしてください。
・ レコード長が正しい値になるよう、ユーザアプリケーションを修正してください。
・ bsrtopen関数で指定した最大レコード長が実際の最大レコード長以上であるか確認してください。違っていればユーザアプリ
ケーションを修正してください。
・ bsrtopen関数で検出された場合は、レコード長を指定するようユーザアプリケーションを修正してください。
0023
PowerSORTの動作に必要な領域を確保できません.
A necessary PowerSORT working area cannot be secured.
可変情報
なし
エラー原因
必要なメモリを確保できません。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をお願いします。
・ 環境変数BSORT_MEMSIZEの指定を増やしてください。ただし、物理メモリの空きが少ないときは、BSORT_MEMSIZEの指
定を物理メモリの空き以下に減らしてください。
・ ユーザアプリケーションから呼び出している場合には、PowerSORTが使用できるメモリ量が充分にあるか確認してください。
・ PowerSORTの動作には最低32キロバイト以上の作業域が必要です。
0025
一時ファイルの容量が足りません.
Not enough temporary file space.
可変情報
なし
エラー原因
一時ファイルへのデータ書き出し時に容量不足を検出しました。
システムの処理
処理を中断します。
また、このメッセージに続いて、メッセージ番号0175、または0176のメッセージを出力します。
- 242 -
ユーザの対処
次のいずれかの対処をお願いします。
・ ディスクのスペースに空きがある場合は、空きスペースの存在するフォルダを一時ファイル用に定義してください。
・ ディスクのスペースに空きがあり、bsrtopen関数で一時ファイルパス名を指定している場合は、指定する一時ファイルの数を増
やしてください。
・ ディスクのスペースに空きがない場合は、不要なファイルを削除して空きスペースを作ってください。
参照
一時ファイルに関する指定については、以下を参照してください。
・ 環境変数BSORT_TMPDIR
・ 実行環境オプション(-option)のtmpdirオペランド
・ bsrtopen関数におけるBSRTFILE構造体のtmpfile_tbl
0026
一時ファイルが生成できません.
The temporary file cannot be created.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ 一時ファイルの指定に誤りがあります。
・ 一時ファイルの自動確保処理で、一時ファイル生成に必要な仮想記憶域、またはディスクの空きスペースが不足しています。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をお願いします。
・ 一時ファイルの指定を確認してください。
・ PowerSORT、またはユーザアプリケーションが使用する仮想記憶域の大きさを減らしてください。
・ システムの負荷が軽い時間帯に再度実行してください。
・ 不要なファイルを削除してディスクに空きスペースを作ってください。
0027
ファイル(%s)は存在しません.
File(%s) does not exist.
可変情報
%s: 入力ファイルパス名、または出力ファイルパス名
エラー原因
入力ファイル、または出力ファイルに指定されたファイルパス名が存在しません。
- 243 -
システムの処理
処理を中断します。
ユーザの対処
入力ファイルパス名、または出力ファイルパス名を確認してください。
0028
同じファイル(%s)を指定しています.
Same file(%s) is specified.
可変情報
%s: ファイルパス名
エラー原因
次のいずれかの場合に出力されます。
・ 入力ファイルと出力ファイルに同じファイルを指定していますが、上書き許可(bsortexコマンドの-inputオプションのoverwriteオ
ペランド、bsortコマンドの-vオプション、またはbsrtopen関数におけるfileopratのBS_OVERWRITE)を指定していません。
・ マージ機能、またはコピー機能で、入力ファイルと出力ファイルに同じファイルを指定しています。
・ 入力ファイルとメッセージファイルに同じファイルを指定しています。
・ 出力ファイルとメッセージファイルに同じファイルを指定しています。
システムの処理
処理を中断します。
ユーザの対処
同じファイルパス名を指定しないようにしてください。
ソート機能で、入力ファイルと出力ファイルに同じファイルを指定する場合は、上書き許可(bsortexコマンドの-inputオプションのoverwrite
オペランド、bsortコマンドの-vオプション、またはbsrtopen関数におけるfileopratのBS_OVERWRITE)を指定してください。なお、こ
の場合に処理途中で異常が発生すると、ファイルの復元ができなくなることがあります。
0029
ファイル(%s)の形式に誤りがあります.
Invalid format of file (%s).
可変情報
%s: エラーのあったファイルパス名
エラー原因
レコード形式に可変長形式を指定していますが、ファイルシステムを省略しているか、またはシステム標準のファイルシステムを指
定しています。
システムの処理
処理を中断します。
ユーザの対処
ファイルの形式を確認して再度実行してください。
0030
ファイル(%s)の属性に誤りがあります.
Invalid attribute of file (%s).
- 244 -
可変情報
%s: ファイルパス名
エラー原因
次のいずれかの場合に出力されます。
・ 入力ファイルに固定長レコード形式と可変長レコード形式を混在して指定しています。
・ 入力のレコード形式と異なるファイルを出力ファイルに指定しています。
・ 指定されたレコード形式とファイル内のレコード形式が異なります。
・ 指定されたレコード長とファイル内のレコード長が異なります。
・ 入力ファイルが作成中(更新中)です。
システムの処理
処理を中断します。
ユーザの対処
エラー原因を取り除いて、再度実行してください。
0031
レコード長を指定していません.
Record length is not specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ レコード長を指定していません。
・ BSRTPRIM構造体のrec_lenの指定がありません。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をお願いします。
・ レコード長を指定してください。
・ BSRTPRIM構造体のrec_lenにレコード長を指定してください。
0032
ファイル(%s1)のオープンでエラー(%s2)が発生しました.
Error occurred during file (%s1) open.(%s2)
可変情報
%s1: ファイルパス名
%s2: エラー番号、またはエラー詳細情報
エラー原因
次のいずれかの場合に出力されます。
・ システム内のファイルオープン処理でメモリ不足が発生しました。
- 245 -
・ 親フォルダのスペースが拡張できません。
・ ファイルのスペースを獲得できません。
・ ファイルパス名の要素がフォルダではありません。
・ 他プロセスで使用中です。
・ 媒体障害、またはソフト障害によるデータ破壊が発生しました。
・ ファイルの存在するディスクが使用できません。
・ 索引ファイルの場合、インデックスの指定に誤りがあります。
・ 格納レコード件数が0件のRDMファイルが入力されました。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をお願いします。
・ メモリ不足が原因の場合は、PowerSORT、またはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してくだ
さい。
・ ディスクのスペース不足が原因の場合は、ディスク上に空きスペースを作って、再度実行してください。
・ ファイルパス名の要素がフォルダでない場合は、正しいファイルパス名を指定してください。
・ 他プロセスで使用中の場合は、使用中でない時間帯に再度実行してください。
・ パス名、またはパス名の要素の長さが制限を超えている場合は、正しい名前を指定して再度実行してください。
・ 格納レコード件数が0件のRDMファイルを処理する場合は、環境変数BSORT_RDM_EMPTYにCONTINUEを指定してくださ
い。
参考
エラー原因の調査のため、エラー番号として以下に示す情報が出力されることがあります。
使用している各ファイルシステムのマニュアルを参照し、エラー原因を取り除いてください。
・ 入出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システムが設定するエラーコード
・ 入出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通COBOLファイルシステムが設定す
るエラーコード
・ 入出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラーコード("iserrno,isstat4"の形式)
0033
プロセス内,またはシステム内でオープン中のファイルが多過ぎます.
There are too many files open in the system or in the process.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ プロセス内、またはシステム内でオープン中のファイルが多過ぎるため、必要なファイルをオープンできません。
・ ソート処理に必要とする一時ファイルの数が多過ぎます。
- 246 -
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をお願いします。
・ bsortコマンド、またはbsortexコマンドを使用している場合は、入力ファイルの数を減らしてください。
・ BSORT関数を使用している場合は、BSORT関数発行前にオープン中のファイルをクローズしてください。
・ システム内でオープン中のファイルが多過ぎる場合は、システムの負荷が低いときに再実行してください。
・ ソート処理に必要とする一時ファイルの数が多過ぎる場合は、一時ファイルに指定したディスクスペースを拡張してください。ま
た、環境変数BSORT_TMPDIR等により一時ファイルを作成するフォルダを指定している場合は、個々のディレクトリパス名の
長さを短くしてください。
0034
ファイル(%s1)のクローズでエラー(%s2)が発生しました.
Error occurred during file (%s1) close.(%s2)
可変情報
%s1: ファイルパス名
%s2: エラー番号、またはエラー詳細情報
エラー原因
次のいずれかの場合に出力されます。
・ メモリ不足が発生しました。
・ 媒体障害、またはソフト障害によるデータ破壊が発生しました。
・ ファイルの存在するディスクが使用できません。
システムの処理
処理を中断します。
ユーザの対処
PowerSORT、またはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してください。
参考
エラー原因の調査のため、エラー番号として以下に示す情報が出力されることがあります。
使用している各ファイルシステムのマニュアルを参照し、エラー原因を取り除いてください。
・ 入出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システムが設定するエラーコード
・ 入出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通COBOLファイルシステムが設定す
るエラーコード
・ 入出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラーコード("iserrno,isstat4"の形式)
0035
ファイル(%s1)からのレコード入力中にエラー(%s2)が発生しました.
Error occurred during the file (%s1) reading.(%s2)
- 247 -
可変情報
%s1: ファイルパス名
%s2: エラー番号、またはエラー詳細情報
エラー原因
次のいずれかの場合に出力されます。
・ ファイルからのレコード入力中にメモリ不足が発生しました。
・ 媒体障害、またはソフト障害によるデータ破壊が発生しました。
・ ファイルの存在するディスクが使用できません。
システムの処理
処理を中断します。
ユーザの対処
PowerSORT、またはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してください。
参考
エラー原因の調査のため、エラー番号として以下に示す情報が出力されることがあります。
使用している各ファイルシステムのマニュアルを参照し、エラー原因を取り除いてください。
・ 入力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システムが設定するエラーコード
・ 入力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通COBOLファイルシステムが設定するエ
ラーコード
・ 入力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラーコード("iserrno,isstat4"の形式)
0036
ファイル(%s1)へのレコード出力中にエラー(%s2)が発生しました.
Error occurred during the file (%s1) writing.(%s2)
可変情報
%s1: ファイルパス名
%s2: エラー番号、またはエラー詳細情報
エラー原因
次のいずれかの場合に出力されます。
・ ファイルへのレコード出力中にメモリ不足が発生しました。
・ ファイルのスペースを拡張できません。
・ 媒体障害、またはソフト障害によるデータ破壊が発生しました。
・ ファイルの存在するディスクが使用できません。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をお願いします。
・ メモリ不足が発生した場合は、PowerSORT、またはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してく
ださい。
- 248 -
・ 出力ファイルのスペースを拡張できなかった場合は、スペースの拡張ができるように、ディスク上に空きスペースを作ってから再
度実行してください。
参考
エラー原因の調査のため、エラー番号として以下に示す情報が出力されることがあります。
使用している各ファイルシステムのマニュアルを参照し、エラー原因を取り除いてください。
・ 出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システムが設定するエラーコード
・ 出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通COBOLファイルシステムが設定するエ
ラーコード
・ 出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラーコード("iserrno,isstat4"の形式)
0037
ファイル(%s)には参照許可がありません.
There is no reference permission in file(%s).
可変情報
%s: ファイルパス名
エラー原因
参照することを許されていないファイルを指定しています。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をお願いします。
・ ファイルパス名を間違えていた場合は、正しいパス名を指定して再度実行してください。
・ 指定に誤りがない場合は、参照する権利がありませんので、ファイルの管理者に許可をもらってください。
0038
ファイル(%s)には書込許可がありません.
There is no writing permission in the file(%s).
可変情報
%s: ファイルパス名
エラー原因
書込みすることを許されていないファイルを指定しています。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をお願いします。
・ ファイルパス名を間違えていた場合は、正しいパス名を指定して再度実行してください。
・ 指定に誤りがない場合は、書き込む権利がありませんので、ファイルの管理者に許可をもらってください。
- 249 -
0040
ストリングが並んでいません.
The string was not sorted.
可変情報
なし
エラー原因
マージ機能の入力に指定したファイル、またはストリングが、指定したキーフィールドの順に並んでいません。
システムの処理
処理を中断します。
ユーザの対処
マージ機能では、ソート済みのファイル、またはストリングを指定してください。
0043
PowerSORTの処理で内部論理の矛盾を検出しました.(%s-%d)
Logical error occurred at PowerSORT.(%s-%d)
可変情報
%s: 検出モジュール名
%d: エラー識別番号
エラー原因
内部論理の矛盾を検出しました。
システムの処理
処理を中断します。
ユーザの対処
エラー識別番号とともに技術員(SE)に連絡してください。
参考
検出モジュール名に「qha7tmpp」、エラー識別番号に「162」が出力されていた場合、入力ファイルが作成中(更新中)であることが考
えられます。他のプロセスによって、入力ファイルが作成中(更新中)でないかを確認してください。
0072
選択フィールドが存在しないレコードが入力されました.
Selection field did not exist on the input record.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ 可変長レコード入力中、選択フィールドを含まない短いレコードが入力されました。
・ テキストレコード入力中、選択フィールドを含まないレコードが入力されました。
- 250 -
システムの処理
処理を中断します。
ユーザの対処
選択フィールドの指定を確認してください。
0073
再編成フィールドが存在しないレコードが入力されました.
Reconstruction field did not exist on the input record.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ 可変長レコード入力中、再編成フィールドを含まない短いレコードが入力されました。
・ テキストレコード入力中、再編成フィールドを含まないレコードが入力されました。
システムの処理
処理を中断します。
ユーザの対処
再編成フィールドの指定を確認してください。
0074
キーフィールドの内部に判別不可能なコードが検出されました.
Unreasonable code is found in the key field.
可変情報
なし
エラー原因
キーフィールドの内部に未定義のコードが検出されました。
システムの処理
処理を中断します。
ユーザの対処
キーフィールドの指定を確認してください。
0075
ファイルシステム(%s)でエラーが発生しました.
Error occurred in file system(%s).
可変情報
%s: 指定したファイルシステム
エラー原因
指定したファイルシステムがインストールされていません。
- 251 -
システムの処理
処理を中断します。
ユーザの対処
必要なファイルシステムをインストールしてください。
0076
引数ファイルに誤りがあります.
The mistake is found in argument file.
可変情報
なし
エラー原因
アーギュメントファイル(引数ファイル)内のクォーテーション( ' )、またはダブルクォーテーション( " )がペアになっていません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0078
ファイルパス名(%s)が長すぎます.
File path name(%s) is too long.
可変情報
%s: ファイルパス名
エラー原因
入力ファイル、出力ファイル、またはアーギュメントファイルのパス名の長さがシステムで定義されているPATH_MAXを超えていま
す。
システムの処理
処理を中断します。
ユーザの対処
ファイルパス名の長さをPATH_MAX以下にして、再度実行してください。
0079
%sのパスプレフィックスの構成要素にフォルダでないものがあります.
A path prefix component of %s is not a folder.
可変情報
%s: ファイルパス名
エラー原因
入力ファイル、出力ファイル、またはアーギュメントファイルのパスプレフィックスの中にフォルダでないものがあります。
システムの処理
処理を中断します。
- 252 -
ユーザの対処
ファイルの指定を修正して、再度実行してください。
0080
指定した%sはフォルダです.
Specified %s is a folder.
可変情報
%s: パス名
エラー原因
出力ファイルにフォルダを指定しています。
システムの処理
処理を中断します。
ユーザの対処
出力ファイルの指定を修正して、再度実行してください。
0081
出力デバイス上のスペースが足りません.
No space left on the output device.
可変情報
なし
エラー原因
出力ファイル、または一時ファイルの書込み中にそのデバイス上に空き領域がなくなりました。
システムの処理
処理を中断します。
ユーザの対処
充分な空き領域があるデバイスを割り当て、再度実行してください。
0082
ファイル(%s)のサイズがプロセスの限度あるいは最大ファイルサイズを超えました.
File(%s) size exceeds the process's file size limit or the maximum file size.
可変情報
%s: ファイル名
エラー原因
出力ファイル、または一時ファイルの書込み中に、そのファイルサイズがシステムで設定しているプロセスのファイルサイズの限度、
またはユーザが設定している最大ファイルサイズを超えました。
システムの処理
処理を中断します。
ユーザの対処
処理対象のレコードを選択して出力ファイルサイズを小さくしてください。
- 253 -
0083
システムコールまたはライブラリ関数(%s)でエラー(%d)が発生しました.
Error occurred during system call or library function (%s)(%d).
可変情報
%s: システムコール、またはライブラリ関数名
%d: エラー番号
エラー原因
システムコール、またはライブラリ関数の呼び出しでエラーが発生しました。
システムの処理
処理を中断します。
ユーザの対処
関数名、およびエラー番号からエラーの原因が分かる場合は、そのエラー原因を取り除いて再度実行してください。エラーの原因
が分からない場合は、関数名、およびエラー番号とともに技術員(SE)に連絡してください。
0084
システムコールまたはライブラリ関数(%s1)でエラー(%d)が発生しました(パス名:%s2).
Error occurred during system call or library function (%s1)(%d) (path name:%s2).
可変情報
%s1: システムコール、またはライブラリ関数名
%d : エラー番号
%s2: パス名
エラー原因
ファイルに対するシステムコール、またはライブラリ関数の呼び出しでエラーが発生しました。
システムの処理
処理を中断します。
ユーザの対処
関数名、エラー番号、およびパス名からエラーの原因が分かる場合は、そのエラー原因を取り除いて再度実行してください。エラー
の原因が分からない場合は、関数名、エラー番号、およびパス名とともに技術員(SE)に連絡してください。
0085
PowerSORTのローディング中にエラーが発生しました.
Error occurred during PowerSORT loading.
可変情報
なし
エラー原因
PowerSORTのライブラリがインストールの時点から移動された可能性があります。または、ファイルが壊されている可能性がありま
す。
システムの処理
処理を中断します。
- 254 -
ユーザの対処
PowerSORTを再インストールしてください。
0086
%s関数で指定したレコードにラインフィードが存在しません.
Line feed did not exist on the record specified in %s function.
可変情報
%s: bsrtput、またはbsrtmrge
エラー原因
指定したテキストレコードにラインフィードが存在しません。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をしてください。
・ 入力レコードがテキスト形式であることを確認してください。
・ bsrtput関数、またはbsrtmrge関数で指定するレコード長を確認してください。
0088
レコード長の指定に誤りがあります.
Invalid record length is specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ 可変長レコード入力中に指定したレコード長を超えるレコードが入力されました。
・ テキストレコード入力中に指定したレコード長を超えるレコードが入力されました。
システムの処理
処理を中断します。
ユーザの対処
レコード長の指定を確認してください。
0090
漢字コードの変換処理(%s)でエラー(%d)が発生しました.
Error occurred during kanji code conversion (%s)(%d).
可変情報
%s: エラーが発生した関数名
%d: エラー番号、またはADJUSTが設定するエラー詳細コード
エラー原因
ADJUST、または標準コード変換関数(iconv)がインストールされていません。
- 255 -
システムの処理
処理を中断します。
ユーザの対処
ADJUST、および標準コード変換関数(iconv)が正しくインストールされているか確認してください。
0093
環境変数(%s)の指定に誤りがあります.
Invalid environment variable (%s) is specified.
可変情報
%s: 誤りを検出した環境変数
エラー原因
環境変数の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0095
bsrtopen関数で指定したBSRTOPT(%s)に誤りがあります.
The mistake is found in BSRTOPT(%s) specified by the bsrtopen function.
可変情報
%s: 誤りを検出したフィールド名
エラー原因
次のいずれかの場合に出力されます。
・ オプション機能(optfunc)が認識できません。
・ 出力レコード位置(outrecpos)が認識できません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0096
入力処理後のレコード長に誤りがあります.
The mistake is found in record length after the input process.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ 入力ファイルのレコード再編成の指定がない場合、入力ファイルグループ間で指定したレコード長が異なります。
- 256 -
・ 入力ファイルのレコード再編成の指定がある場合、入力ファイルグループ間で入力レコード再編成後のレコード長が異なりま
す。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をしてください。
・ 入力ファイルのレコード再編成機能を使用する場合は、入力ファイルグループ間でレコード再編成後のレコード長が同じにな
るようにして、再度実行してください。
・ 入力ファイルのレコード再編成機能を使用しない場合は、入力ファイルグループ間で同じレコード長にして、再度実行してくだ
さい。
0098
同時に指定すべきオプション(%s1)と(%s2)の指定がありません.
Synchronous option (%s1), (%s2) are not specified.
可変情報
%s1: 必要とするオプション1
%s2: 必要とするオプション2
エラー原因
同時に指定すべき2つのオプションのどちらかを指定していません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0100
ASCIIコードとEBCDICコード間の変換方式の指定に誤りがあります.
Invalid conversion method between ASCII code and EBCDIC code is specified.
可変情報
なし
エラー原因
ASCIIコードとEBCDICコード間の変換方式の指定に誤りがあります。
参照
・ bsortコマンドにおける-Qオプション
・ bsortexコマンドにおける-optionのiconvオペランド
・ BSRTPRIM構造体におけるaltmode
システムの処理
処理を中断します。
- 257 -
ユーザの対処
誤りを修正して、再度実行してください。
0102
インデックスの作成方法の指定に誤りがあります.
Invalid index creation method is specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ 主キーと副キーのどちらも指定していません。
・ インデックスの作成方法の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0104
インデックスのデータ形式を指定していません.
Index data type is not specified.
可変情報
なし
エラー原因
インデックスのデータ形式を指定していません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0105
インデックスの作成方法を指定していません.
Index creation method is not specified.
可変情報
なし
エラー原因
インデックスの作成方法を指定していません。
システムの処理
処理を中断します。
- 258 -
ユーザの対処
誤りを修正して、再度実行してください。
0106
インデックスの長さの指定に誤りがあります.
Invalid index length is specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ インデックスの長さが0バイトです。
・ インデックスの長さが、指定したデータ形式で指定できる長さを超えています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0107
インデックスの並びの指定に誤りがあります.
Invalid index order is specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ 富士通COBOLファイルシステム、またはMicro Focus COBOLファイルシステムの索引ファイルの場合に、降順を指定していま
す。
・ インデックスの並びの指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0108
レコード全体をキーフィールドとする場合のキーフィールドの操作に誤りがあります.
The mistake is found in the operation of the key field when the key field is omitted.
可変情報
なし
エラー原因
レコード全体をキーフィールドとする場合のキーフィールドの操作で、排他関係にある操作(n、N、w)を同時に指定しています。
- 259 -
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0109
キー形式の指定に誤りがあります.
Invalid key type is specified.
可変情報
なし
エラー原因
キー形式の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0110
コピー機能と集約機能/サプレス機能/並びの降順は同時に指定できません.
Exclusive options, copy and summation/suppress/reverse are specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ コピー機能でレコード集約機能を指定しています。
・ コピー機能でサプレス機能を指定しています。
・ コピー機能で並びの降順を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0111
ストリング数の指定に誤りがあります.
Invalid string number is specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
- 260 -
・ マージ機能で、入力ファイル数とストリング数が異なります。
・ マージ機能で、ストリング数に0を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0112
チェックレベルの指定に誤りがあります.
Invalid check level is specified.
可変情報
なし
エラー原因
チェックレベルの指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0113
テキストファイルのフィールド分離文字列の指定に誤りがあります.
Invalid field separating character-string in the text file is specified.
可変情報
なし
エラー原因
フィールド分離文字列にレコード分離文字が含まれています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0114
テキストファイルのフィールド形式を指定していません.
Text field format is not specified.
可変情報
なし
エラー原因
テキストファイルの場合に、フィールドの指定方法の指定がありません。
- 261 -
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0116
ファイルシステムの指定に誤りがあります.
Invalid file system is specified.
可変情報
なし
エラー原因
ファイルシステムの指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0118
メッセージレベルの指定に誤りがあります.
Invalid message level is specified.
可変情報
なし
エラー原因
メッセージの種別(レベル)の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0119
出力時のレコード区切り文字の指定に誤りがあります.
Invalid output line delimiter is specified.
可変情報
なし
エラー原因
出力時のレコード分離文字の指定に誤りがあります。
システムの処理
処理を中断します。
- 262 -
ユーザの対処
誤りを修正して、再度実行してください。
0120
レコード形式の指定に誤りがあります.
Invalid record format is specified.
可変情報
なし
エラー原因
レコード形式の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0121
レコード形式を指定していません.
Record format is not specified.
可変情報
なし
エラー原因
レコード形式を指定していません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0122
レコード形式またはテキストフィールド形式を指定していません.
Record format or text field format is not specified.
可変情報
なし
エラー原因
バイナリ固定長レコード形式、バイナリ可変長レコード形式、テキストファイル固定フィールド指定のレコード形式、テキストファイル
浮動フィールド指定のレコード形式、テキストファイルCSV形式、およびテキストファイルTSV形式のいずれも指定していません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
- 263 -
0123
レコード受渡し方法の指定に誤りがあります.
Invalid method of passing and receiving records is specified.
可変情報
なし
エラー原因
レコード受渡し方法の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0124
索引ファイルで出力可能な最大ファイルサイズまたは最大レコード数を指定しています.
Exclusive options, max output file size/max output record number and indexed file are specified.
可変情報
なし
エラー原因
索引ファイルのときに、1つのファイルに出力可能な最大ファイルサイズ、または最大レコード数を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0125
集約機能とサプレス機能は同時に指定できません.
Exclusive options, summation and suppress are specified.
可変情報
なし
エラー原因
レコード集約機能とサプレス機能を同時に指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0126
集約機能/サプレス機能以外で先頭/最終レコードの出力を指定しています.
First/last option is specified without summation/suppress function.
- 264 -
可変情報
なし
エラー原因
レコード集約機能、およびサプレス機能の指定がないときに、先頭/最終レコードの出力を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0128
出力ファイルとメッセージファイルに同じファイル(%s)を指定しています.
Same file(%s) is specified for output file and message file.
可変情報
%s: ファイルパス名
エラー原因
出力ファイルとメッセージファイルに同じファイルパス名を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0129
出力ファイルに同じファイル(%s)を指定しています.
Same file(%s) is specified for output files.
可変情報
%s: ファイルパス名
エラー原因
出力ファイルに同じファイルを複数指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0130
出力ファイルシステムに誤りがあります.
Invalid output file system is specified.
可変情報
なし
- 265 -
エラー原因
次のいずれかの場合に出力されます。
・ テキストファイルのとき、システム標準のファイルシステム(dos)以外を指定しています。
・ 標準出力のとき、システム標準のファイルシステム(dos)以外を指定しています。
・ 出力ファイルシステムに誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0131
入力時のレコード区切り文字の指定に誤りがあります.
Invalid input line delimiter is specified.
可変情報
なし
エラー原因
入力時のレコード分離文字の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0132
出力ファイルパス名(%s)の指定に誤りがあります.
Invalid output file path name(%s) is specified.
可変情報
%s: ファイルパス名
エラー原因
出力ファイルパス名の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0133
出力可能な最大ファイルサイズの指定に誤りがあります.
Invalid max output file size is specified.
可変情報
なし
- 266 -
エラー原因
次のいずれかの場合に出力されます。
・ 出力レコード長(レコード再編成後の長さ)より小さい最大ファイルサイズを指定しています。
・ 出力可能な最大ファイルサイズの指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0134
出力可能な最大ファイルサイズまたは最大レコード数の指定に誤りがあります.
Invalid max output file size or max output record number is specified.
可変情報
なし
エラー原因
出力ファイルが標準出力のときに、1つのファイルに出力可能な最大ファイルサイズ、または最大レコード数を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0135
マージ機能/コピー機能で入力ファイルへの上書きを指定しています.
Exclusive options, merge/copy and overwrite are specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ マージ機能のときに、入力ファイルへの上書きを指定しています。
・ コピー機能のときに、入力ファイルへの上書きを指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0136
入力コード系の指定に誤りがあります.
Invalid input data code is specified.
- 267 -
可変情報
なし
エラー原因
入力コード系の指定に誤りがあります。
参照
・ bsortコマンドにおける-qオプション
・ bsortexコマンドにおける-optionのicodeオペランド
・ BSRTPRIM構造体におけるcdmode
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0138
入力ファイルとメッセージファイルに同じファイル(%s)を指定しています.
Same file(%s) is specified for input file and message file.
可変情報
%s: ファイルパス名
エラー原因
入力ファイルとメッセージファイルに同じファイルパス名を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0139
入力ファイルと出力ファイルに同じファイル(%s)を指定しています.
Same file(%s) is specified for input file and output file.
可変情報
%s: ファイルパス名
エラー原因
入力ファイルと出力ファイルに同じファイルパス名を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
- 268 -
0140
入力ファイルシステムに誤りがあります.
Invalid input file system is specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ テキストファイルのとき、システム標準のファイルシステム(dos)以外を指定しています。
・ 標準入力のとき、システム標準のファイルシステム(dos)以外を指定しています。
・ 入力ファイルシステムに誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0141
入力ファイルパス名(%s)の指定に誤りがあります.
Invalid input file path name(%s) is specified.
可変情報
%s: ファイルパス名
エラー原因
入力ファイルパス名の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0142
標準入力と入力への上書きは同時に指定できません.
Exclusive options, standard input and overwrite are specified.
可変情報
なし
エラー原因
標準入力と入力ファイルへの上書きを同時に指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
- 269 -
0143
入力ファイルパス名を指定していません.
Input file path name is not specified.
可変情報
なし
エラー原因
入力ファイルパス名を指定していません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0144
出力ファイルパス名を指定していません.
Output file path name is not specified.
可変情報
なし
エラー原因
出力ファイルパス名を指定していません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0145
入力ファイルシステムの指定に誤りがあります.
The mistake is found in input file system specification.
可変情報
なし
エラー原因
入力ファイルシステムの指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0146
出力ファイルシステムの指定に誤りがあります.
The mistake is found in output file system specification.
- 270 -
可変情報
なし
エラー原因
出力ファイルシステムの指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0147
インデックスのデータ形式の指定に誤りがあります.
Invalid index data type is specified.
可変情報
なし
エラー原因
次のいずれかの場合に出力されます。
・ 富士通COBOLファイルシステム、またはMicro Focus COBOLファイルシステムの索引ファイルで、ASCIIコード、Unicode以外
を指定しています。
・ インデックスのデータ形式の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0148
システム標準のファイルシステムでは可変長レコード形式を指定できません.
Exclusive options, standard file system and variable-length record format are specified.
可変情報
なし
エラー原因
システム標準のファイルシステムで可変長レコード形式を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0149
索引ファイルで出力レコード渡しを指定しています.
Exclusive options, output record passing and indexed file are specified.
- 271 -
可変情報
なし
エラー原因
索引ファイルで出力レコード渡しを指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0150
bsrtopen関数でBSRTPRIMを指定していません.
BSRTPRIM is not specified by the bsrtopen function.
可変情報
なし
エラー原因
bsrtopen関数でBSRTPRIM構造体を指定していません。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0151
バイナリファイルでテキスト用キーオプションを指定しています.
Key option is specified for binary file.
可変情報
なし
エラー原因
バイナリファイルでテキスト用キーオプションを指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0152
テキストファイルで入力コード系にEBCDICコード系を指定しています.
Exclusive options, text file and EBCDIC input data code are specified.
可変情報
なし
- 272 -
エラー原因
テキストファイルで入力コード系にEBCDICコード系を指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0153
bsrtopen関数で指定した%s1(%s2)に誤りがあります.
The mistake is found in %s1(%s2) specified by the bsrtopen function.
可変情報
%s1: 誤りを検出した構造体名
%s2: 誤りを検出したフィールド名
エラー原因
BSIDX構造体のidx_flagの指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0154
出力可能な最大ファイルサイズ指定または最大レコード数指定は,出力ファイルが1つのとき指定できません.
Division of output file cannot be specified for one output file.
可変情報
なし
エラー原因
出力ファイルが1つのとき、出力可能な最大ファイルサイズ、または最大レコード数による出力ファイルの分割出力を指定していま
す。
システムの処理
処理を中断します。
ユーザの対処
次のいずれかの対処をしてください。
・ 複数の出力ファイルを指定して、再度実行してください。
・ 出力ファイルの分割出力の指定を外して、再度実行してください。
0155
ソート機能,マージ機能またはコピー機能を同時に指定しています.
Exclusive options, -sort, -merge or -copy are specified.
可変情報
なし
- 273 -
エラー原因
ソート機能、マージ機能、またはコピー機能のいずれかを同時に指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0156
オペランド(%s)の指定に誤りがあります.
Invalid operand (%s) is specified.
可変情報
%s: 不当なオペランド
エラー原因
次のいずれかの場合に出力されます。
・ オペランドとして認識できない文字列があります。
・ bsortexコマンドのソートオプション(-sort)、またはマージオプション(-merge)におけるkey=ALL指定のとき、キーフィールドの操
作の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0157
分割出力で指定した%sの後の出力ファイルが足りません.
Not enough output file after %s specified for the output division.
可変情報
%s: 分割出力で指定した最後の出力ファイルパス名
エラー原因
分割出力で指定した出力ファイルが少ないため、出力できないレコードがあります。
システムの処理
処理を中断します。
ユーザの対処
分割出力で指定する出力ファイルを増やして、再度実行してください。
0158
指定したファイルシステムでは出力可能な最大ファイルサイズを指定できません.
Max output file size is specified with the file system which does not support it.
可変情報
なし
- 274 -
エラー原因
システム標準のファイル(テキストファイル、バイナリファイル)以外のファイルで、1つのファイルに出力可能な最大ファイルサイズを
指定しています。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0159
オペランド(%s)は省略できません.
Operand (%s) is not specified.
可変情報
%s: 必要とするオペランド
エラー原因
-inputオプションでレコード長(reclenオペランド)の指定がありません。
システムの処理
処理を中断します。
ユーザの対処
必要なオペランドを指定して、再度実行してください。
0160
漢字フィールド(%d)の指定に誤りがあります.
The mistake is found in the jef-field(%d) specification.
可変情報
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
・ 漢字ソートマージの方式の指定に誤りがあります。
・ 漢字フィールドの漢字属性の指定に誤りがあります。
・ ふりがなフィールドの位置、または長さの指定に誤りがあります。
・ ふりがなフィールドのデータ形式の指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0161
インデックスフィールド(%d)の指定に誤りがあります.
The mistake is found in the index-field(%d) specification.
- 275 -
可変情報
%d: 誤っているフィールド番号
エラー原因
次のいずれかの場合に出力されます。
・ 位置、または長さの指定に誤りがあります。
・ データ形式の指定に誤りがあります。
・ オプションの指定に誤りがあります。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0173
ファイル(%s1)の属性取得処理でエラー(%s2)が発生しました.
Attribute acquisition error of file(%s1). (%s2)
可変情報
%s1: ファイルパス名
%s2: エラー番号
エラー原因
ファイルの属性取得処理でエラーが発生しました。
システムの処理
処理を中断します。
ユーザの対処
誤りを修正して、再度実行してください。
0174
PowerSORTが正しくインストールされていません.
PowerSORT is not correctly installed.
可変情報
なし
エラー原因
PowerSORTが正しくインストールされていません。
システムの処理
処理を中断します。
ユーザの対処
PowerSORTのインストール環境が壊れている可能性があります。必要であればPowerSORTを再度インストールしてください。
0175
一時フォルダ(%s)を使用しました.
Temporary folder (%s) was used.
- 276 -
可変情報
%s: 一時フォルダ名
エラー原因
一時ファイルへのデータ書き出し時に容量不足を検出しました。
システムの処理
処理を中断します。
メッセージ番号0025のメッセージの付加情報として、0025のメッセージに続いて出力されます。
ユーザの対処
使用した一時フォルダ名を確認し、次のいずれかの対処をお願いします。
・ ディスクのスペースに空きがある場合は、空きスペースの存在するフォルダを一時ファイル用に定義してください。
・ ディスクのスペースに空きがない場合は、不要なファイルを削除して空きスペースを作ってください。
0176
一時ファイル(%s)を使用しました.
Temporary file (%s) was used.
可変情報
%s: 一時ファイル名
エラー原因
一時ファイルへのデータ書き出し時に容量不足を検出しました。
システムの処理
処理を中断します。
メッセージ番号0025のメッセージの付加情報として、0025のメッセージに続いて出力されます。
ユーザの対処
使用した一時ファイル名を確認し、次のいずれかの対処をお願いします。
・ ディスクのスペースに空きがある場合は、bsrtopen関数で指定する一時ファイルの数を増やしてください。
・ ディスクのスペースに空きがない場合は、不要なファイルを削除して空きスペースを作ってください。
0177
キーフィールドは省略できません.
Key field is not specified.
可変情報
なし
エラー原因
テキストファイルCSV形式、またはテキストファイルTSV形式の場合、キーフィールドの指定を省略できません。
システムの処理
処理を中断します。
ユーザの対処
キーフィールドを指定して、再度実行してください。
- 277 -
9.1.4 アプリケーションログへの出力メッセージ
PowerSORTは、環境変数BSORT_EVENTLOGの指定に応じたメッセージをアプリケーションログへ出力します。
アプリケーションログは、システム付属のイベントビューアを使用して参照してください。
環境変数BSORT_EVENTLOGにE、W、またはIを指定した場合に出力されるメッセージは、環境変数BSORT_EVENTLOGを参照し
てください。環境変数BSORT_EVENTLOGにYESを指定した場合は、以下に示すメッセージが出力対象となります。エラー原因、お
よびユーザの対処については、各メッセージの説明を参照してください。
メッセージ番号
メッセージ
0015
bsrtopen関数で指定したBSRTFILE(%s)に誤りがあります.
0023
PowerSORTの動作に必要な領域を確保できません.
0035
ファイル(%s1)からのレコード入力中にエラー(%s2)が発生しました.
0036
ファイル(%s1)へのレコード出力中にエラー(%s2)が発生しました.
0043
PowerSORTの処理で内部論理の矛盾を検出しました.(%s-%d)
0081
出力デバイス上のスペースが足りません.
0085
PowerSORTのローディング中にエラーが発生しました.
0090
漢字コードの変換処理(%s)でエラー(%d)が発生しました.
0102
インデックスの作成方法の指定に誤りがあります.
0105
インデックスの作成方法を指定していません.
0106
インデックスの長さの指定に誤りがあります.
0107
インデックスの並びの指定に誤りがあります.
0134
出力可能な最大ファイルサイズまたは最大レコード数の指定に誤りがあります.
0147
インデックスのデータ形式の指定に誤りがあります.
0153
bsrtopen関数で指定した%s1(%s2)に誤りがあります.
0157
分割出力で指定した%sの後の出力ファイルが足りません.
0158
指定したファイルシステムでは出力可能な最大ファイルサイズを指定できません.
参考
PowerSORTが出力するアプリケーションログでは、ソースに「PowerSORT」、イベントIDにメッセージ番号が設定されます。なお、メッ
セージ番号が0001~0999までの場合、先頭から続く '0' は削除されます。
9.2 エラーコード
BSORT関数を組み込んだユーザアプリケーション、またはPowerSORT OCXからPowerSORTを利用しているときにPowerSORTがエ
ラーを検出した場合は、以下のようにエラーコードを通知します。
・ ユーザアプリケーションからPowerSORTを利用している場合は、BSRTREC構造体のerrdetailにエラー詳細コードを設定します。ま
た、富士通COBOLファイルシステム、Btrieveファイルシステム、および漢字ソートマージ機能使用時は、より詳細なコードをBSRTREC
構造体のsub_error_codeに設定します。
・ PowerSORT OCXからPowerSORTを利用している場合は、ErrorDetailプロパティにエラー詳細コードを設定します。また、富士通
COBOLファイルシステム、Btrieveファイルシステム、および漢字ソートマージ機能使用時は、より詳細なコードをSubErrorCodeプロ
パティに設定します。
- 278 -
9.2.1 BSORT関数のエラー詳細コード(errdetail)
BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、PowerSORTがエラーを検出した場合、
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関数で指定した入力ファイル名テー
ブルに誤りがあります。
bsrtopen関数で指定したBSRTPRIM情報に
誤りがあります。
・ bsrtopen関数でマージ機能を指定してい
ますが、ファイル数、またはストリング数の
指定がありません。
56
BSERR_BSRTPRIM
・ 入力ストリング数がBSRTFILEの指定と異
なります。
・ 入力ファイルのレコード形式と
BSRTPRIMで指定したレコード形式が異
なります。
排他関係にある機能を指定しました。
57
・ サプレス機能、レコード集約機能
BSERR_EXCLUSIVE
・ ソート機能、マージ機能、コピー機能
キーフィールドの指定に誤りがあります。
・ キーフィールドがレコードの外を指してい
59
ます。
BSERR_KEYTAB
・ キーフィールドのデータ形式を認識でき
ません。
- 279 -
エラー詳細
コード
エラーコードの定義値
意味
・ キーフィールド長が各データ形式のサ
ポート範囲外です。
・ オプションの指定に誤りがあります。
集約フィールドの指定に誤りがあります。
・ 集約フィールドの数を指定していません。
・ 集約フィールドがレコードの外を指してい
60
ます。
BSERR_SUMTAB
・ 集約フィールドのデータ形式を認識でき
ません。
・ 集約フィールド長がサポート範囲外で
す。
61
BSERR_DUPKEY
キーフィールドと集約フィールド、または集約
フィールド同士が重なっています。
62
BSERR_UNSUPPORT
未サポート機能を指定しています。
63
BSERR_SELTAB
選択フィールドの指定に誤りがあります。
64
BSERR_RECONTAB
再編成フィールドの指定に誤りがあります。
65
BSERR_FILESYS
ファイルシステムの指定に誤りがあります。ま
たは、PowerSORTのファイルアクセスライブラ
リがローディングできません。
選択フィールドの指定に誤りがあります。
・ 可変長のレコード入力中に、選択フィー
66
ルドより短いレコードが入力されました。
BSERR_SELSHRTREC
・ テキストファイルのレコード入力中に、選
択フィールドを含まないレコードが入力さ
れました。
再編成フィールドの指定に誤りがあります。
・ 可変長のレコード入力中に、再編成フィー
67
ルドより短いレコードが入力されました。
BSERR_RCONSHRTREC
・ テキストファイルのレコード入力中に、再
編成フィールドを含まないレコードが入力
されました。
68
BSERR_OUTFILETAB
出力ファイルテーブルに誤りがあります。
69
BSERR_BSRTOPT
bsrtopen関数で指定したBSRTOPT構造体に
誤りがあります。
100
BSERR_NOOPEN
bsrtopen関数を呼び出す前に、bsrtput関数、
bsrtget関数、またはbsrtmrge関数を使用しま
した。
bsrtput関数の使用方法に誤りがあります。
・ bsrtopen関数でファイルからレコードを入
101
力するよう指定しているときに、bsrtput関
数を使用しました。
BSERR_BSRTPUT
・ レコードの受渡しが完了した後に、bsrtput
関数を使用しました。
- 280 -
エラー詳細
コード
エラーコードの定義値
意味
・ マージ処理を指定しているときに、bsrtput
関数を使用しました。
bsrtget関数の使用方法に誤りがあります。
・ bsrtopen関数でファイルにレコードを出力
するよう指定しているときに、bsrtget関数
を使用しました。
102
・ bsrtput関数によるレコードの受渡しが完
BSERR_BSRTGET
了する前に、bsrtget関数を使用しました。
・ bsrtget関数ですべてのレコードを出力し
た後に、bsrtget関数を使用しました。
・ マージ処理を指定しているときに、bsrtget
関数を使用しました。
bsrtmrge関数の使用方法に誤りがあります。
・ bsrtopen関数でファイルからレコードを入
力して結果をファイルに出力するよう指定
しているときに、bsrtmrge関数を使用しま
した。
103
・ bsrtmrge関数ですべてのレコードを出力
BSERR_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
テキストファイルでレコードの終りに改行文字
がありません。
118
BSERR_EXTSHRTREC
テキストファイルのレコード入力中に、キー
フィールドを含まないレコードが入力されまし
た。
- 281 -
エラー詳細
コード
エラーコードの定義値
意味
119
BSERR_SUMFIELD
テキストファイルのレコード集約処理中に、
フィールド内に不適切なコードが発見された
ため、レコード集約処理を中止します。
200
BSERR_READFILE
ファイルからのレコード読込み中に、エラーが
発生しました。
201
BSERR_WRITEFILE
ファイルへのレコード書込み中に、エラーが
発生しました。
202
BSERR_FILEATTR
ファイルの属性に誤りがあります。または、ファ
イル属性の取得に失敗しました。
203
BSERR_TEMPATTR
一時ファイルの属性に誤りがあります。また
は、ファイル属性の取得に失敗しました。
ファイルの形式に誤りがあります。
・ 通常ファイルと順ファイルを混在して指定
しました。
204
BSERR_FILEFORMAT
・ 相対ファイル、または索引ファイルを指定
しました。
・ メッセージファイルに通常ファイル以外を
指定しました。
ファイルパス名の指定に重複があります。
・ 入力ファイルと出力ファイルに同じファイ
ルを指定しました。
205
BSERR_SAMEFILE
・ 入力ファイルとメッセージファイルに同じ
ファイルを指定しました。
・ 出力ファイルとメッセージファイルに同じ
ファイルを指定しました。
レコード形式に誤りがあります。
・ 固定長ファイルと可変長ファイルを混在
206
して指定しています。
BSERR_RECFORM
・ 入力と出力のレコード形式が異なってい
ます。
レコード長に誤りがあります。
・ 可変長レコード形式のファイルを指定し
207
たときは、bsrtopen関数で指定した長さよ
りファイル属性のレコード長の方が長い
場合に発生します。
BSERR_FILERECLEN
・ 固定長レコード形式のファイルを指定し
たときは、bsrtopen関数で指定した長さと
ファイル属性の長さが異なる場合に発生
します。
208
BSERR_FILEOPEN
ファイルのオープンでエラーが発生しました。
209
BSERR_OPENMAX
プロセス内、またはシステム内でオープン中
のファイルが多過ぎます。または、必要とする
一時ファイルの数が多過ぎます。
210
BSERR_FILECLOSE
ファイルのクローズでエラーが発生しました。
- 282 -
エラー詳細
コード
エラーコードの定義値
意味
211
BSERR_FILEIO
媒体障害、またはソフト障害によるデータ破
壊が発生しました。
212
BSERR_TEMPSPACE
一時ファイルの容量が足りません。
213
BSERR_INCORE
インコアソートできません。
214
BSERR_TEMPCREAT
一時ファイルの生成ができません。
215
BSERR_FILENONE
入力、または出力に指定したファイルがあり
ません。
216
BSERR_PERMIFILE
入力ファイルに指定したファイルには、参照
許可がありません。
217
BSERR_PERMOFILE
出力ファイルに指定したファイルには、書込
許可がありません。
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
システムコール、またはライブラリ関数でエ
ラーが発生しました。
- 283 -
エラー詳細
コード
エラーコードの定義値
意味
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
指定されたデバイスを見つけることができま
せん。
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
入力ファイルとして指定されたフォルダ名が
無効です。
- 284 -
エラー詳細
コード
エラーコードの定義値
意味
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
入力ファイルとして指定されたディスクは使用
中か、または他のプロセスがロックしていま
す。
283
BSERR_OUT_DRIVE_LOCKED
出力ファイルとして指定されたディスクは使用
中か、または他のプロセスがロックしていま
す。
284
BSERR_EXTENDED_ERROR
拡張エラーが発生しました。
285
BSERR_FILE_CORRUPT
ファイル、またはフォルダが壊れており、読み
取ることができません。
286
BSERR_FILE_INVALID
ファイルのボリュームが外部的に交換されて
おり、オープンされているファイルは有効でな
くなりました。
287
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
指定されたドライブを見つけることができませ
ん。
- 285 -
エラー詳細
コード
エラーコードの定義値
意味
297
BSERR_IN_INVALID_DRIVE
指定された入力ファイルのドライブを見つけ
ることができません。
298
BSERR_OUT_INVALID_DRIVE
指定された出力ファイルのドライブを見つけ
ることができません。
299
BSERR_INVALID_NAME
ファイル名、フォルダ名、またはボリュームラ
ベルが構文上正しくありません。
300
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
他のプロセスが出力ファイルの一部分を既に
ロックしているため、プロセスはそのファイル
にアクセスできません。
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
ディスクにはボリュームラベルがありません。
- 286 -
エラー詳細
コード
エラーコードの定義値
意味
320
BSERR_IN_NO_VOLUME_LABEL
入力ファイルのディスクにはボリュームラベル
がありません。
321
BSERR_OUT_NO_VOLUME_LABEL
出力ファイルのディスクにはボリュームラベル
がありません。
322
BSERR_NOT_CONNECTED
指定されたファイルのネットワーク接続は存在
しません。
323
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
ネットワーク要求がサポートされていません。
332
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
指定された出力ファイルのパスを見つけるこ
とができません。
- 287 -
エラー詳細
コード
エラーコードの定義値
意味
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
読込み処理中、ディスク上の指定された領域
やトラックの位置を特定することができません
でした。
354
BSERR_WT_SEEK
書込み処理中、ディスク上の指定された領域
やトラックの位置を特定することができません
でした。
355
BSERR_SEEK_ON_DEVICE
指定されたデバイス、またはファイルにファイ
ルポインタを設定することができません。
356
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
入力ファイルをオープンできません。
- 288 -
エラー詳細
コード
エラーコードの定義値
意味
363
BSERR_OUT_TOO_MANY_OPEN_FILES
出力ファイルをオープンできません。
364
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
漢字属性の取得処理でエラーが発生しまし
た。
602
BSERR_ICONV
文字コード変換処理でエラーが発生しまし
た。
623
BSERR_INVALID_FRIGANA
ふりがなフィールドの指定に誤りがあります。
9.2.2 富士通COBOLファイルに関するエラーコード
BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、富士通COBOLファイルシステムがエラーを
検出した場合、富士通COBOLファイルシステムが通知するエラーコードをBSRTREC構造体のsub_error_codeに設定します。
富士通COBOLファイルシステムのエラーコードは、1~4バイトの16進数で通知されます。最終1バイトがファイルステータス値、それ以
前の値は詳細コードです。エラーコードは後ろから1バイトずつ参照してください。なお、富士通COBOLファイルシステムのエラーコー
ドの詳細については、お使いの富士通COBOLのマニュアルを参照してください。
9.2.3 Btrieveファイルに関するエラーコード
BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、Btrieveファイルシステムがエラーを検出した
場合、Btrieveファイルシステムが通知するエラーコードをBSRTREC構造体のsub_error_codeに設定します。
Btrieveファイルシステムのエラーコードの詳細については、お使いのBtrieve製品のマニュアルを参照してください。
9.2.4 ADJUSTに関するエラーコード
BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、漢字ソートマージ機能でADJUSTプログラム
がエラーを検出した場合、ADJUSTプログラムが通知するエラー詳細コードをBSRTREC構造体のsub_error_codeに設定します。
ADJUSTプログラムが通知するエラー詳細コード(10進数)を以下に示します。
- 289 -
エラー詳細
コード
意味
100
ファイルは既にオープン済みです。
102
利用者定義情報体がありません。
103
属性辞書のオープンエラーが発生しました。
104
管理情報のオープンエラーが発生しました。
105
利用者定義情報のオープンエラーが発生しました。
106
領域不足が発生しました。
201
ファイルは既にクローズ済みです。
202
属性辞書のクローズエラーが発生しました。
203
管理情報のクローズエラーが発生しました。
204
利用者定義情報のクローズエラーが発生しました。
301
コードエラーが発生しました。
302
辞書ファイルが未オープンです。
303
属性情報がありません。
304
属性辞書のI/Oエラーが発生しました。
305
管理情報のI/Oエラーが発生しました。
306
利用者定義情報のI/Oエラーが発生しました。
9.2.5 ICONVに関するエラーコード
BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、漢字ソートマージ機能でICONVプログラム
がエラーを検出した場合、ICONVプログラムが通知するエラー詳細コードをBSRTREC構造体のsub_error_codeに設定します。
ICONVプログラムのエラー詳細コード(10進数)を以下に示します。
エラー詳細
コード
意味
2
利用者定義コード変換表のファイルがオープンできませんでした。
7
変換元バッファ領域が小さいため変換処理を中断しました。
8
サポートしていない利用者定義コード変換表の形式が指定されました。
12
領域不足が発生しました。
22
変換元文字列の終りに、不完全なコード、またはシフトコードが現れたため変換処理を中断しまし
た。
42
変換元文字列の中に変換元文字コードとして存在しないコードがあったため変換処理を中断しま
した。
50
利用者固有のコード変換機能で、未定義文字での復帰指示、または利用者定義コードが現れた
ため変換処理を中断しました。
54
利用者定義コード変換処理で、コード変換表内の変換先文字コード属性値が正しくありません。
61
利用者定義コード変換表のアドレスが指定されていません。
9.2.6 OCX使用時のエラー詳細コード
PowerSORT OCXからPowerSORTを利用しているときに、PowerSORTがエラーを検出した場合、ErrorCodeプロパティにPowerSORT
の復帰コードを設定します。また、ErrorDetailプロパティにPowerSORTのエラー詳細コードを設定します。
- 290 -
注意
PowerSORTの復帰コード(ErrorCodeプロパティ)の値により、ErrorDetailプロパティの設定値の意味は異なります。
9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード
ErrorCodeプロパティが、0、-1、または-2の場合のErrorDetailプロパティの設定値の意味は以下のとおりです。
設定値
意味
PowerSORTで使用するダイナミックリンクライブラリ(DLL)がローディングできません。以下のような
原因が考えられます。
・ 漢字ソートマージ機能を指定していますが、ADJUSTがインストールされていません。
2
・ 富士通COBOLファイルを指定していますが、富士通COBOLファイルシステムがインストール
されていません。
・ Btrieveファイルを指定していますが、Btrieveファイルシステムがインストールされていません。
50
指定したメモリサイズが小さすぎます。
52
PowerSORTの動作に必要なメモリを確保できませんでした。
設定された情報に以下のような誤りがあります。
・ 実際の入力ファイルのレコード形式が指定されたレコード形式と異なります。
・ 入力ファイルのファイル種別にバイナリファイルを指定していますが、バイナリファイルのファイ
56
ルサイズがレコード長の倍数ではありません。
・ マージ、およびコピー機能で、上書き指定がされています。
・ コピー機能で、降順が指定されています。
・ コピー機能で、サプレス機能、またはレコード集約機能が指定されています。
排他関係にある機能を指定しました。
57
・ サプレス機能、レコード集約機能
・ ソート機能、マージ機能、コピー機能
キーフィールドの指定に誤りがあります。
・ キーフィールドがレコードの外を指しています。
59
・ キーフィールドで指定されたデータ形式を認識できません。
・ キーフィールドで指定されたキーの長さがサポート範囲外です。
集約フィールドの指定に誤りがあります。
・ 集約フィールドがレコードの外を指しています。
60
・ 集約フィールドで指定されたデータ形式を認識できません。
・ 集約フィールドで指定されたキーの長さがサポート範囲外です。
61
キーフィールドと集約フィールド、または集約フィールド同士が重なっています。
62
サポートされていない機能を指定しています。
63
選択フィールドに誤りがあります。
64
再編成フィールドに誤りがあります。
65
ファイルシステムの指定に誤りがあります。
66
選択フィールドが存在しないレコードが入力されました。
67
再編成フィールドが存在しないレコードが入力されました。
- 291 -
設定値
意味
111
レコード長に誤りがあります。
114
マージ処理の入力ファイルが並んでいません。
115
レコード集約処理でオーバフローが発生しました。
116
可変長レコード、またはテキストファイルのレコード入力中、集約フィールドが存在しないレコード
が入力されました。集約処理を中止し、処理は継続します。
117
テキストファイルのレコードでレコードの終りに改行文字がありません。
118
テキストファイルのレコード入力中、キーフィールドを含まないレコードが入力されました。
200
ファイルからのレコード読込み中にエラーが発生しました。
201
ファイルへのレコード書込み中にエラーが発生しました。
202
ファイルの属性に誤りがあります。または、ファイル属性の取得に失敗しました。
203
一時ファイルの属性に誤りがあります。または、ファイル属性の取得に失敗しました。
ファイルの形式に誤りがあります。
204
・ 組み合わせてはいけないファイル形式を指定しました。ファイル形式の組合せについては、
入力と出力のファイル種別の組合せについてを参照してください。
・ サポート外のファイル形式を指定しました。
205
ファイルパス名の指定に重複があります。または、入力ファイルと出力ファイルに同じファイルを指
定しました。
レコード形式に誤りがあります。
206
・ 固定長レコード形式のファイルと可変長レコード形式のファイルを混在して指定しています。
・ 入力と出力のレコード形式が異なっています。
レコード長に誤りがあります。
・ 可変長レコード形式のファイルを指定したときは、MaxRecordLengthプロパティで指定した長
207
さよりファイル属性のレコード長の方が長い場合に発生します。
・ 固定長レコード形式のファイルを指定したときは、MaxRecordLengthプロパティで指定した長
さとファイル属性の長さが異なる場合に発生します。
208
ファイルのオープンでエラーが発生しました。
209
プロセス内、またはシステム内でオープン中のファイルが多過ぎます。または、必要とする一時ファ
イルの数が多過ぎます。
210
ファイルのクローズでエラーが発生しました。
211
媒体障害、またはソフト障害によるデータ破壊が発生しました。
212
一時ファイルの容量が足りません。
213
インコアソート(メモリ内だけで行うソート)できません。
214
一時ファイルの生成ができません。または、指定された一時ファイルのフォルダ名や属性に誤りが
あり、一時ファイルの生成ができません。
215
入力に指定したファイルがありません。
216
入力に指定したファイルには参照許可がありません。
217
出力に指定したファイルには書込み許可がありません。
219
一時ファイルに指定したファイルには参照許可、または書込み許可がありません。
222
レコード長の省略はできません。
224
一時ファイルへの書込み中にエラーが発生しました。
225
一時ファイルからの読込み中にエラーが発生しました。
- 292 -
設定値
意味
226
環境変数の設定に誤りがあります。
230
キーフィールドの内部に判別不可能なコードがあります。
COBOLファイルシステムでエラーが発生しました。
231
・ 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
出力ファイル名が長過ぎます。
264
フォルダ、またはファイルを作成できません。
265
入力ファイルとして指定されたフォルダ、またはファイルを作成できません。
266
出力ファイルとして指定されたフォルダ、またはファイルを作成できません。
267
デバイスへの接続は以前から記憶されている接続ですが現在は接続されていません。
268
入力ファイルのデバイスへの接続は以前から記憶されている接続ですが現在は接続されていま
せん。
269
出力ファイルのデバイスへの接続は以前から記憶されている接続ですが現在は接続されていま
せん。
270
指定されたフォルダは有効なフォルダではありません。
- 293 -
設定値
意味
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
指定された出力ファイルのドライブを見つけることができません。
299
ファイル名、フォルダ名、またはボリュームラベルが構文上正しくありません。
300
入力ファイルのファイル名、フォルダ名、またはボリュームラベルが構文上正しくありません。
301
出力ファイルのファイル名、フォルダ名、またはボリュームラベルが構文上正しくありません。
302
I/Oデバイスエラーのため要求を実行できませんでした。
303
他のプロセスがファイルの一部分を既にロックしているため、プロセスはそのファイルにアクセスで
きません。
304
他のプロセスが入力ファイルの一部分を既にロックしているため、プロセスはそのファイルにアクセ
スできません。
- 294 -
設定値
意味
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
指定されたデバイス、またはファイルをオープンできません。
335
入力ファイルとして指定されたデバイス、またはファイルをオープンできません。
336
出力ファイルとして指定されたデバイス、またはファイルをオープンできません。
337
この時点では、指定されたパスは使えません。
338
この時点では、指定された入力ファイルのパスは使えません。
339
この時点では、指定された出力ファイルのパスは使えません。
340
指定されたパスを見つけることができません。
341
指定された入力ファイルのパスを見つけることができません。
342
指定された出力ファイルのパスを見つけることができません。
343
クライアントは必要な特権を保持していません。
- 295 -
設定値
意味
344
入力ファイルに指定されたファイルに対して、クライアントは必要な特権を保持していません。
345
出力ファイルに指定されたファイルに対して、クライアントは必要な特権を保持していません。
346
システムは指定されたデバイスから読み取ることができません。
347
リモートコンピュータが利用できません。
348
ネットワーク要求が受け入れられませんでした。
349
ドライブは、要求されたセクタを見つけることができません。
350
ドライブは、読込み要求されたセクタを見つけることができません。
351
ドライブは、書込み要求されたセクタを見つけることができません。
352
ドライブは、ディスク上の指定された領域やトラックの位置を特定することができません。
353
読込み処理中、ディスク上の指定された領域やトラックの位置を特定することができませんでした。
354
書込み処理中、ディスク上の指定された領域やトラックの位置を特定することができませんでした。
355
指定されたデバイス、またはファイルにファイルポインタを設定することができません。
356
指定された入力ファイルのデバイス、またはファイルにファイルポインタを設定することができませ
ん。
357
指定された出力ファイルのデバイス、またはファイルにファイルポインタを設定することができませ
ん。
358
リモートサーバは、一時停止状態、または開始状態です。
359
他のプロセスがファイルを使用しているため、プロセスはそのファイルにアクセスできません。
360
他のプロセスが入力ファイルを使用しているため、プロセスはそのファイルにアクセスできません。
361
他のプロセスが出力ファイルを使用しているため、プロセスはそのファイルにアクセスできません。
362
入力ファイルをオープンできません。
363
出力ファイルをオープンできません。
364
ディスクメディアが認識されていません。フォーマットされていない可能性があります。
365
入力ファイルとして指定されたディスクメディアが認識されていません。フォーマットされていない
可能性があります。
366
出力ファイルとして指定されたディスクメディアが認識されていません。フォーマットされていない
可能性があります。
367
ボリュームは、認識されたファイルシステムを持っていません。必要なファイルシステムドライバが
すべてロードされ、ボリュームが壊れていないかどうか確認してください。
368
指定されたデバイスに書き込むことができません。
369
メディアは書込み禁止です。
370
アクセスが拒否されました。
371
入力ファイルのアクセスが拒否されました。
372
出力ファイルのアクセスが拒否されました。
600
漢字ソートマージ機能でエラーが発生しました。
601
漢字属性の取得処理でエラーが発生しました。SubErrorCodeプロパティにエラー詳細コードが設
定されています。対応するエラー詳細コードについては9.2.4 ADJUSTに関するエラーコードを参
照してください。
602
文字コード変換処理でエラーが発生しました。SubErrorCodeプロパティにエラー詳細コードが設
定されています。対応するエラー詳細コードについては9.2.5 ICONVに関するエラーコードを参
照してください。
623
ふりがなフィールドの指定に誤りがあります。
- 296 -
9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード
ErrorCodeプロパティが-3の場合のErrorDetailプロパティの設定値の意味は次のとおりです。
設定値
意味
1
PowerSORT OLEカスタムコントロール解析処理で使用する領域の確保に失敗しました。
2
メモリサイズが不正です。(6.3.36 UsableMemorySizeプロパティ)
3
一時ファイルが作成できません。または、ファイル名とフォルダ名の指定が混在しています。(6.3.35
TempDirプロパティ)
4
処理指定に無効な値を指定しています。(6.3.9 DisposalNumberプロパティ)
5
入力ファイル名を指定してください。(6.3.20 InputFilesプロパティ)
6
入力ファイル形式に無効な値を指定しています。(6.3.21 InputFileTypeプロパティ)
7
出力ファイル名を指定してください。(6.3.28 OutputFileプロパティ)
8
出力ファイル種別に無効な値を指定しています。(6.3.29 OutputFileTypeプロパティ)
9
キーフィールドが長過ぎます。(6.3.23 KeyCmdStrプロパティ)
10
再編成自己既定値が指定した長さに収まりません。(6.3.30 RconCmdStrプロパティ)
11
富士通COBOL索引情報に誤りがあります。(6.3.16 FjcobPrimeKeyプロパティ、6.3.13
FjcobAlternateKeyプロパティ)
12
同値キーの扱い指定と集約指定の組合せに誤りがあります。(6.3.17 HandlingSameKeyプロパ
ティ、6.3.34 SumCmdStrプロパティ)
13
同値キーの扱い指定に無効な値を指定しています。(6.3.17 HandlingSameKeyプロパティ)
14
照合順序に無効な値を指定しています。(6.3.6 CollationOrderプロパティ)
15
フィールドモードに無効な値を指定しています。(6.3.11 FieldDefinitionプロパティ)
16
レコード分離文字に無効な値を指定しています。(6.3.24 LineDelimiterプロパティ)
17
フィールド分離文字指定が長過ぎます。(6.3.12 FieldDelimiterプロパティ)
18
フィールド分離文字指定に誤りがあります。(6.3.12 FieldDelimiterプロパティ)
19
ファイルの上書き指定はソート処理だけ有効です。
20
一時ファイルフォルダ指定に誤りがあります。(6.3.35 TempDirプロパティ)
22
レコード読み飛ばし件数の指定に誤りがあります。(6.3.22 InputFilesSkiprecプロパティ)
Btrieve関連情報に誤りがあります。(6.3.5 BtrieveInfileOwnerNameプロパティ、6.3.4
BtrieveIndexKeyプロパティ、6.3.3 BtrieveFileInfoプロパティ)
以下のような原因が考えられます。
・ 出力ファイル種別がBtrieveで、BtrieveIndexKeyプロパティ、BtrieveFileInfoプロパティの双方
に情報がない場合
23
- 出力がBtrieveファイルのとき、BtrieveIndexKeyプロパティ、BtrieveFileInfoプロパティの指
定が必要です。
・ キー長やプリアロケーションサイズなどにshort int型で表現できない値が指定されている場合
- Btrieve関連の指定値は、特に記述がない場合、short int型で表現できる範囲(0~65535)
です。例外として、セグメント番号はlong型で表現できる範囲(0~4294967295)まで指定で
きます。
24
InputDataCodeプロパティに無効な値を指定しています。(6.3.19 InputDataCodeプロパティ)
25
AlternateModeプロパティに無効な値を指定しています。(6.3.2 AlternateModeプロパティ)
26
テキストファイルのときはInputDataCodeプロパティにEBCDICを選択できません。(6.3.19
InputDataCodeプロパティ、6.3.21 InputFileTypeプロパティ)
- 297 -
9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード
ErrorCodeプロパティが-4のときは、PowerSORT OCXのエラーです。
本エラーが発生した場合は、ErrorDetailプロパティの設定値を当社サポート員、または販売元に通知し、調査を依頼してください。
- 298 -
付録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
- 299 -
例5 レコード再編成機能を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの
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に出力します。キーフィールドの
指定は、レコードの8バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。
bsort -s -z100 -7.4asca -Tfix -o bsortout bsortin
例11 テキストファイルをソートする例(浮動フィールド指定)
最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイルbsortoutに出力します。キーフィールドの
指定は、レコード分離文字コロン( : )で区切られた第2番めのフィールドの先頭から4バイトのASCIIコードのフィールドを昇順に並べる
指定です。
bsort -s -z100 -1.4asca -Tflt -t: -o bsortout bsortin
- 300 -
例12 漢字ソートマージ機能(基本方式)を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの
10バイトめから20バイトの漢字(シフトJISコード)のフィールドを総画数順、音読み順の昇順に並べる指定です。
bsort -s -z100 -9.20sjiam -M stdSO -o bsortout bsortin
例13 漢字ソートマージ機能(国語辞典方式)を使った例
レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの
10バイトめから20バイトの漢字フィールドに対するふりがなフィールドが、レコードの50バイトめから10バイトにシフトJISコードで記述され
ており、これを国語辞典の並びで昇順に並べる指定です。
bsort -s -z100 -9.20sjiam -M dic49.10sji -o bsortout bsortin
例14 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
例15 出力ファイル切換え機能を使った例
レコード長が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)
- 301 -
・ 条件別ファイル出力機能を使った例(その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の順編成ファイル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つのレコードを残して他を削除します。
- 302 -
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バイトの文字のフィールドを昇順に並べる指定です。
bsortex -sort key=0.10asca -record recform=fix -input reclen=100 file=bsortin filesys=btrv -output file=bsortout
filesys=cobseq
例10 テキストファイルをソートする例(固定フィールド指定)
最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイルbsortoutに出力します。キーフィールドの
指定は、レコードの8バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。
bsortex -sort key=7.4asca -record recform=txtfix -input reclen=100 file=bsortin -output file=bsortout
例11 テキストファイルをソートする例(浮動フィールド指定)
最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイルbsortoutに出力します。キーフィールドの
指定は、レコード分離文字コロン( : )で区切られた第2番めのフィールドの先頭から4バイトのASCIIコードのフィールドを昇順に並べる
指定です。
bsortex -sort key=1.4asca -record recform=txtflt fldsep=: -input reclen=100 file=bsortin -output file=bsortout
例12 漢字ソートマージ機能(基本方式)を使った例
レコード長が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コードのフィールドを昇順に並べる指定です。
- 303 -
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以上のレコードを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
- 304 -
A.3.2
ソート処理(テキストファイル)の例
次のプログラムは、既に存在する最大レコード長120バイトのテキストファイル "c:¥sortin.txt" を、レコードの20バイトめから10バイトのASCII
コードをキーフィールドとして昇順に並べ、その結果をテキストファイル "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
'既にキーフィールドとしてレコードの先頭から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
- 305 -
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
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
- 306 -
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を呼出し実行します。
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
- 307 -
End If
End Sub
A.3.8
レコード再編成機能を使った例
次のプログラムは、既に存在するレコード長100バイトのバイナリファイル "c:¥sortin" を、レコードの20バイトめから10バイト、30バイトから
10バイト、先頭から10バイト、40バイトから10バイトの順に再編成し、バイナリファイル "c:¥sortout" に出力するコードの記述例です。
Private Sub Command1_Click()
'エラーメッセージを表示しない旨を指定します。
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
'出力ファイル名を指定します。
PowerSORT1.OutputFile = "c:¥sortout.txt"
'出力ファイル種別にテキストを指定します。
PowerSORT1.OutputFileType = 0
- 308 -
'最大レコード長は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
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
- 309 -
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
'エラー検出時の処理。
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
'エラー検出時の処理。
- 310 -
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" に出力するコードの記
述例です。
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関数の使用例を説明します。
この例では、テキストファイルからレコードを入力し、ソート結果を出力ファイルに出力します。ライブラリ関数、およびWin32APIに対す
るエラー判定は行っていないため、このような関数でエラーが発生した場合、本プログラムの動作は保証されません。
なお、この使用例は、製品のインストールフォルダの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;
/* レコード情報領域の宣言 */
BSRTFILE
file;
/* ファイル情報領域の宣言 */
BSPTR_BSRTKEY
key;
/* キー情報領域の宣言 */
BSRTOPT
opt;
/* オプション情報領域の宣言 */
- 311 -
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;
/*
/*
/*
/*
/*
/*
/*
/*
/* BSRTFILEの設定処理 */
memset(&file, 0x00, sizeof(BSRTFILE));
/* BSRTFILE(file)領域の初期化 */
BSRTPRIM(prim)領域の初期化 */
ソート機能 */
レコード処理指定なし */
処理情報を出力しない */
入力データのコード系はASCII */
BSORT関数のチェックをしない */
レコード長は15バイト */
浮動フィールド指定 */
/* 入力ファイルテーブル領域の確保・・・(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)領域の初期化 */
/* 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
=
=
=
=
=
1;
0;
4;
BSKEY_ASC;
BS_ASCND;
/*
/*
/*
/*
/*
キーの個数は1個 */
比較位置は第1フィールド */
キー長は4バイト */
データ形式はASCII文字 */
昇順に並べる */
/* BSRTRECの設定処理(初期化) */
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);
}
- 312 -
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);
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つの出力ファイルを指定できます。
- 313 -
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関数で異常終了。
- 314 -
付録B 留意事項
B.1 メモリ不足への対処方法について
PowerSORT実行中にメモリ不足が発生した場合、以下のように対処してください。
・ bsortコマンドのメモリサイズオプション(-y)、bsortexコマンドの実行環境オプション(-option)のmemsizeオペランド、または環境変数
BSORT_MEMSIZEを指定している場合は、PowerSORTが使用するメモリサイズの指定を省略してください。メモリサイズの指定を
省略することにより、PowerSORTが動作条件に応じたメモリサイズを自動設定します。
・ また、メモリサイズの指定を増加することも有効です。メモリサイズの上限値は2097151キロバイト(2ギガバイト)です。ただし、使用可
能な物理メモリ量を超えないように指定してください。
B.2 一時ファイルのフォルダ指定方法について
環境変数BSORT_TMPDIR、またはbsortexコマンドにおける-optionオプションのtmpdirオペランドにより、一時ファイルを作成するフォ
ルダを指定する場合は、以下の点に注意してください。
・ 存在するドライブ、およびフォルダ、使用可能なドライブ、およびフォルダを指定してください。
・ 一時フォルダ名の指定は、最後に円記号( ¥ )を付けて指定してください。円記号( ¥ )を付けないと誤動作の原因となります。
・ フォルダを複数指定する場合は、空白を入れずにセミコロン( ; )で区切って指定してください。
例
例1) 正しい指定
C:¥;D:¥
例2) 誤った指定
C:¥ ; D:¥
・ 充分な空きスペースがあるフォルダを指定してください。
B.3 フィールドの指定方法について
PowerSORTは、以下に示す順番で各機能を処理します。
1. データ入力処理
2. 入力ファイルのレコード選択処理
3. 入力ファイルのレコード再編成処理
4. ソート処理、マージ処理、およびコピー処理
5. レコード集約処理
6. 出力ファイルのレコード選択処理
7. 出力ファイルのレコード再編成処理
8. データ出力処理
したがって、入力ファイルのレコード再編成処理によりフィールドの位置が変わると、以降に指定するフィールドの位置は、入力レコー
ド内のフィールドと異なったものになります。
フィールドの位置は、以下の規則にしたがって指定してください。
- 315 -
入力選択フィールド
常に入力レコードをもとにフィールドを指定します。
入力再編成フィールド
常に入力レコードをもとにフィールドを指定します。
キーフィールド
通常は入力レコードをもとに指定しますが、入力ファイルのレコード再編成機能を使用する場合は、再編成後のレコードをもとにフィー
ルドを指定します。
集約フィールド
通常は入力レコードをもとに指定しますが、入力ファイルのレコード再編成機能を使用する場合は、再編成後のレコードをもとにフィー
ルドを指定します。
出力選択フィールド
通常は入力レコードをもとに指定しますが、入力ファイルのレコード再編成機能を使用する場合は、再編成後のレコードをもとにフィー
ルドを指定します。
出力再編成フィールド
通常は入力レコードをもとに指定しますが、入力ファイルのレコード再編成機能を使用する場合は、再編成後のレコードをもとにフィー
ルドを指定します。
B.4 英字と数字の連結データに関する留意事項
キーフィールドの操作にNを指定して、英字と数字の連結データを並べ換える場合、以下の注意が必要です。
キーフィールドの指定例1
キーフィールドの操作にNを指定して英字と数字の連結データを並べ換える場合、数字部分の並びは数値の大小だけを比較しま
す。
したがって、以下のようなデータでは出力される順序が特定できません。
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)の指定がない場合は、上記の出力結果のケース1、ケース2にあるように出力順は不定と
なります。
キーフィールドの指定例2
キーフィールドの指定例1に対して、数字部分の桁数も考慮して並べ換えたい場合は、以下のように指定します。
- 316 -
0.9ascaN0.9ascr
入力データ
出力結果
data001
data1
data2
data001
data1
data00001
data00001
data2
ポイント
以下の順で出力順が決まります。
1. 第1キー(0.9ascaN)の比較により、data001、data1、およびdata00001とdata2の順序が決まります。第1キーの比較によって大小関
係が確定したdata2については、以降の第2キーによる比較は行われません。
2. data001、data1、およびdata00001は、キーの値が等しいため、第2キー(0.9ascr)で比較します。
3. 第2キーは文字列として比較し、大きい順に並べます。この例では、dataの次の文字で最初の大小関係が決まります。したがっ
て、data1がdata001、およびdata00001よりも大きい値となり、最初に出力されます。同様にdata001とdata00001ではdata001の1の
部分がdata00001では0なので、data001が大きい値と判断され、2番目に出力されます。残ったdata00001と既に順序が決定したdata2
が順に出力され、上記の出力結果が得られます。
B.5 ASCIIコードをEBCDICコード順、EBCDICコードをASCIIコード順に並
べる方法について
PowerSORTは、ASCIIコードのフィールドをEBCDICコード順に並べる、またはEBCDICコードのフィールドをASCIIコード順に並べる
ことができます。
このような処理を行う場合の指定方法について説明します。
ASCIIコードのフィールドをEBCDICコード順に並べる場合
入力ファイルのコード系をASCIIコード系、キーフィールドのデータ形式をEBCDICコードと指定します。
また、ASCIIコードとEBCDICコード間の変換方式を扱うコードに合わせて指定します。
例
1) bsortコマンドを使用した場合
bsort -s -z 100 -20.8ebca -q au -Q 1 sortin -o sortout
-20.8ebca:キーフィールドのデータ形式にEBCDICコードを指定
-q au:
入力ファイルのコード系にASCIIコード系を指定
-Q 1:
ASCIIコードとEBCDICコード間の変換方式に、EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定
2) bsortexコマンドを使用した場合
bsortex -sort key=20.8ebca -input reclen=100 file=sortin -output file=sortout -option icode=au iconv=1
key=20.8ebca:キーフィールドのデータ形式にEBCDICコードを指定
icode=au:
入力ファイルのコード系にASCIIコード系を指定
iconv=1:
ASCIIコードとEBCDICコード間の変換方式に、EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定
- 317 -
EBCDICコードのフィールドをASCIIコード順に並べる場合
入力ファイルのコード系をEBCDICコード系、キーフィールドのデータ形式をASCIIコードと指定します。
また、ASCIIコードとEBCDICコード間の変換方式を扱うコードに合わせて指定します。
例
1) bsortコマンドを使用した場合
bsort -s -z 100 -20.8asca -q eb -Q 2 sortin -o sortout
-20.8asca:キーフィールドのデータ形式にASCIIコードを指定
-q eb:
入力ファイルのコード系にEBCDICコード系を指定
-Q 2:
ASCIIコードとEBCDICコード間の変換方式に、EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定
2) bsortexコマンドを使用した場合
bsortex -sort key=20.8ebca -input reclen=100 file=sortin -output file=sortout -option icode=au iconv=1
key=20.8asca:キーフィールドのデータ形式にASCIIコードを指定
icode=eb:
入力ファイルのコード系にEBCDICコード系を指定
iconv=2:
ASCIIコードとEBCDICコード間の変換方式に、EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定
注意
以下のような処理はできません。
・ シフトJISコードのフィールドをEBCDIC/JEFコード順に並べる。
・ EBCDIC/JEFコードのフィールドをシフトJISコード順に並べる。
・ Unicode(UCS-2形式、またはUTF-8形式)のフィールドをEBCDIC/JEFコード順に並べる。
・ EBCDIC/JEFコードのフィールドをUnicode(UCS-2形式、またはUTF-8形式)順に並べる。
B.6 ファイル種別に関する留意事項
ファイル種別に関しては、以下の点にご注意ください。
・ 実際のファイル種別と異なるファイル種別を指定すると誤動作の原因となります。
・ 入力ファイルと出力ファイルでファイル種別が異なる場合もレコード形式は入力ファイルと出力ファイルで同じレコード形式になりま
す。
・ 入力ファイルがテキストファイルの場合、入力ファイル中にEOF(End Of File)のコードが含まれると、そのEOFコード以降のデータ
は処理対象となりません。なお、bsortexコマンドでは、EOF以降のデータを処理対象とすることが可能です。詳細は、入力ファイル
情報オプション(-input)のeofオペランドを参照してください。
・ 入力ファイルがテキストファイルの場合、入力ファイル中にEOFコードが存在した場合は、出力ファイルの終わりにEOFコードが付
加されます。なお、bsortexコマンドでは、出力ファイルの終わりのEOFコードを削除することが可能です。詳細は、出力ファイル情
報オプション(-output)のremoveeofオペランドを参照してください。
・ 入力ファイルがテキストファイルの場合、入力ファイル中にEOFコードが存在しない場合は、出力ファイルの終わりにもEOFコード
は付加されません。
・ 入力ファイルがテキストファイルの場合、EOFコードが存在する入力ファイルが複数ある場合でも、出力ファイル1つに対して付加される
EOFコードは1つです。
・ 出力ファイルがBtrieveファイルの場合、既存のファイルに上書きすることはできません。新規のファイル名を指定してください。
- 318 -
B.7 富士通COBOLファイルシステムに関する留意事項
PowerSORTでは、富士通のNetCOBOLシリーズ、PowerCOBOL97シリーズ等でサポートしているCOBOLファイルを富士通COBOL
ファイルという名称でマニュアルに記述しています。
ここでは、富士通COBOLファイルを処理する場合の留意事項について説明します。
・ 富士通COBOL行順ファイルに関する留意事項
・ 富士通COBOLファイルシステム(BSAM対応順ファイル)に関する留意事項
富士通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プロパティ
富士通COBOLファイルシステム(BSAM対応順ファイル)に関する留意事項
PowerSORTはBSAMに対応した富士通COBOL順ファイルを処理することが可能です。
BSAMに対応した富士通COBOL順編成ファイルを処理する場合の留意事項を以下に説明します。
・ BSAMに対応した富士通COBOL順ファイルを処理する場合は、入出力ファイルのファイルシステムに"富士通COBOLファイルシステム
(BSAM対応順ファイル)"を指定してください。
・ "富士通COBOLファイルシステム(順ファイル)"で扱える最大ファイルサイズは1ギガバイトです。"富士通COBOLファイルシステム
(BSAM対応順ファイル)"では、ファイルサイズが1GBを超えるファイルを扱うことができます。扱うことのできる最大ファイルサイズに
ついては、お使いの富士通COBOLファイルシステムのマニュアルを参照してください。
・ 入出力ファイルのファイルシステムに"富士通COBOLファイルシステム(BSAM対応順ファイル)"を指定した場合、富士通COBOL
ファイルシステムの仕様によりレコード排他処理が行われません。
・ お使いの富士通COBOLファイルシステムがBSAMに対応しているかどうかの確認、およびBSAMについての詳細は、お使いの富士通
COBOLファイルシステムのマニュアルを参照してください。
・ お使いの富士通COBOLファイルシステムがBSAMに対応していない場合、入出力ファイルのファイルシステムに"富士通COBOL
ファイルシステム(BSAM対応順ファイル)"を指定しても"富士通COBOLファイルシステム(順ファイル)"として動作します。
- 319 -
B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関係
PowerSORTで扱うデータ形式とVisual Basicで扱うデータ型の対応を以下に示します。
データ型
データ形式
1996
意味
-1996
String
asc
3139393620
2D31393936
文字列型
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
-
-
-
バリアント型
データ型
バイト数
値の範囲
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 (負の値)
1.401298E-45 ~ 3.402823E38 (正の値)
Double
8バイト
-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プロパティで指定)
- 320 -
- ContainWideCharプロパティ(CollationOrderプロパティで指定)
- Actionプロパティ(Actionメソッドで指定)
・ 追加されたプロパティの一覧
- 6.3.6 CollationOrderプロパティ
- 6.3.9 DisposalNumberプロパティ
・ 追加されたメソッドの一覧
- 6.5.1 Actionメソッド
・ 値の指定方法が変更されたプロパティの一覧
- 6.3.11 FieldDefinitionプロパティ
- 6.3.36 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のプロパティ指定と同じように指定することが可能です。
記述例
例
1) DisposalNumberプロパティ、Actionメソッドについて
PowerSORTの実行部分において、PowerSORT VBXでは以下のようにしてPowerSORTを実行しました。
object.Action = 0
PowerSORT OCXでは以下のようにDisposalNumberプロパティでどの処理を行うかを指定した後、Actionメソッドを呼びます。
object.DisposalNumber = 0
object.Action
2) FieldDefinitionプロパティについて
PowerSORT VBXのFieldDefinitionプロパティは、設定値にFALSE、またはTRUEで指定しました。
object.FieldDefinition = TRUE
PowerSORT OCXでは0、または1を指定してください。
object.FieldDefinition = 1
3) CollationOrderプロパティについて
- 321 -
キーフィールドの照合順序の指定において、複数バイトが混在しても文字単位に比較する場合、PowerSORT VBXでは以下のように
ContainWideCharプロパティで指定していました。
object.ContainWideChar = TRUE
PowerSORT OCXでは、CollationOrderプロパティに1を設定します。
object.CollationOrder = 1
また、符号を含む数字を算術的に扱う場合、PowerSORT VBXでは以下のようにCompareAsNumberプロパティで指定していました。
object.CompareAsNumber = TRUE
PowerSORT OCXでは、CollationOrderプロパティに2を設定します。
object.CollationOrder = 2
この結果、PowerSORT VBXのContainWideCharプロパティとCompareAsNumberプロパティは、PowerSORT OCXでは同時に指定で
きなくなりました。
- 322 -
用語集
インコアソート
すべての入力レコードがメモリ内に入る場合の、一時ファイルを使用せずにメモリ内だけで行うソート処理です。
漢字ソートマージ機能
漢字コードで表現された文字(日本語)を含むレコードを、文字の持つ属性に従って並べる機能です。
並べ方には、基本方式と国語辞典方式の2つの方式があります。
漢字フィールド
漢字ソートマージ機能で使用する、レコード内の漢字コードで表現されたフィールドです。
キーフィールド
レコードの大小関係を決めるために使用するレコード内のフィールドです。
フィールドの位置、長さ、データ形式と操作方法の情報からなっています。
基本方式
漢字ソートマージ機能で実現している並べ方の1つで、文字の属性に従って並べます。
属性には、総画数、部首、音読み、訓読み、およびコードが指定できます。
固定フィールド
バイト位置によって区分されるフィールドです。
フィールドの位置は全レコードで共通です。
国語辞典方式
漢字ソートマージ機能で実現している並べ方の1つで、国語辞典に採用されている読み(清音読み)を基本とした並べ方です。
漢字コードで表現された文字に対応するふりがなのフィールドが必要となります。
コピー機能
入力ファイルを出力ファイルに複写する機能です。
入力ファイルを単純に連結する場合や、複写するレコードを選択する場合に利用できます。
再編成フィールド
レコード再編成機能で使用する入力レコード内のフィールドです。
再編成フィールドは、フィールドの位置と長さの情報からなっています。
先入力先出力(FIFO)機能
同値のキーフィールドを持つレコードが複数あるファイル、またはレコード群をソートする際、先に入力したレコードを先に出力する
機能です。
ソート機能と組み合わせて使います。
サプレス機能
同値のキーフィールドを持つレコードが複数あるファイル、またはレコード群をソート、またはマージする際、1つを残して他を削除
する機能です。
ソート、またはマージ機能と組み合わせて使います。
自己規定値
レコード選択機能とレコード再編成機能で使用する10進数、16進数の定数、または文字列定数です。
- 323 -
集約フィールド
レコード集約機能で使用する、数値を加算するためのフィールドです。
集約フィールドは、フィールドの位置、長さ、データ形式、および出力形式の情報からなっています。
処理定義ファイル
PowerSORT GUIのメニューやダイアログボックスで指定した内容を保存するファイルです。
処理定義ファイルを[ファイル]メニューの[実行]や[開く]コマンドで選択することにより、メニューの選択やダイアログボックスでの項
目設定を繰り返すことなく、実行や再利用が簡単にできるようになります。
ストリング
ソート済みのレコードの集まりです。
選択フィールド
レコード選択機能で使用する、処理の対象となるレコードを選択するためのフィールドです。
ソート機能
指定された1つ以上のキーフィールドにより昇順(0から9、AからZの順)、または降順(ZからA、9から0の順)にレコードを並べ替える
機能です。
通常、レコードをソートする場合、キーフィールドを指定します。PowerSORTは、指定されたキーフィールドをもとにレコードの並べ
替えを行います。
フィールド
PowerSORTを使用するためのフィールドの種類には、ソート、およびマージ機能で使用するキーフィールドと、レコード選択機能で
使用する選択フィールド、レコード再編成機能で使用する再編成フィールド、およびレコード集約機能で使用する集約フィールド
があります。
フィールド分離文字
テキストファイル浮動フィールド指定のときにフィールドを区分する文字列です。
省略時の値として、空白、またはタブをフィールド分離文字として扱います。この他に任意の文字列をフィールド分離文字として指
定することができます。ただし、レコード分離文字と同じ文字は指定できません。
浮動フィールド
フィールド分離文字によって区分されるフィールドです。
フィールドの位置を、フィールド分離文字によって区切られたフィールド番号によって指定します。フィールド分離文字の位置によっ
てフィールドの位置が決定されるため、レコードごとにフィールドの位置(カラム位置)が異なります。
ふりがなフィールド
漢字ソートマージ機能の国語辞典方式で使用する、漢字フィールドに対応する読みが入っているフィールドです。
ふりがなフィールドは、ひらがな文字、およびカタカナ文字で表現します。
マージ機能
ソート済みの複数ファイルを1つのファイルに併合する(まとめる)機能です。
ソート処理と同じキーフィールドでの並びを保証します。
レコード選択機能
処理の対象となるレコードの選択方法を指定して、必要なレコードだけを選択する機能です。
ソート機能、マージ機能、またはコピー機能と組み合わせて使います。レコード選択機能には、被比較フィールドと比較フィールド
を比較する方法、被比較フィールドと自己規定値を比較する方法があります。PowerSORTは、指定された2つのフィールドを比較
方法に従って比較し、レコードを選択します。
- 324 -
レコード再編成機能
フィールドの位置を変更したり、自己規定値をレコードに埋め込む機能です。
レコードを再編成する場合は、出力レコードの左端から順番に詰めるフィールドを指定します。入力レコードのフィールドを詰める
場合はその位置と長さを、自己規定値を詰める場合はその自己規定値を指定します。
レコード集約機能
同値のキーフィールドを持つレコードが複数あるファイル、またはレコード群をソート、またはマージする際、集約フィールドの値を
加算して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バイトまでをサポートしています。
- 325 -
索 引
[数字]
10進形式2桁年号....................................................................57
8086形式固定小数点2進数....................................................56
8086形式符号なし固定小数点2進数.....................................56
BSSUM構造体.......................................................................214
BtrieveFileInfoプロパティ......................................................147
BtrieveIndexKeyプロパティ....................................................148
BtrieveInfileOwnerNameプロパティ......................................149
Btrieveファイルに関するエラーコード...................................289
[A]
Actionメソッド..........................................................................180
ADJUSTに関するエラーコード.............................................289
AlphaNumOnlyプロパティ.....................................................145
AlternateModeプロパティ.......................................................146
ASCIIコード..............................................................................54
ASCIIコードをEBCDICコード順、EBCDICコードをASCIIコード
順に並べる方法について......................................................317
[C]
COBOLプログラムからPowerSORTを使用する....................182
CollationOrderプロパティ.......................................................149
CompareAsUpperCaseプロパティ..........................................150
C言語プログラムからPowerSORTを使用する.......................183
[D]
DispMessageプロパティ..........................................................151
DisposalNumberプロパティ....................................................152
[B]
Big endian...............................................................................325
BOM.......................................................................................325
BSCOL構造体.......................................................................205
BSFILE_BASE構造体...........................................................212
BSFILE_BTRV構造体..........................................................211
BSFILE_EXT構造体.............................................................210
BSFILE構造体.......................................................................207
BSFSYS構造体......................................................................207
BSIDXKEY構造体................................................................209
BSIDX構造体........................................................................208
BSKANJI構造体....................................................................203
BSKEY構造体.......................................................................201
bsortexコマンドオプション......................................................104
bsortexコマンドの形式...........................................................102
bsortexコマンドの使用例.......................................................301
BSORT関数一覧...................................................................183
BSORT関数で使用する構造体............................................192
BSORT関数とは.....................................................................183
BSORT関数のエラー詳細コード(errdetail).........................279
BSORT関数の使用例...........................................................311
BSORT関数の使い方............................................................183
bsortコマンドオプション............................................................73
bsortコマンドとbsortexコマンドの機能差について..................70
bsortコマンドの形式.................................................................72
bsortコマンドの使用例...........................................................299
BSRCON構造体....................................................................222
bsrt.h.......................................................................................325
BSRTFILE構造体..................................................................205
BSRTFUNC構造体................................................................225
bsrtget関数.............................................................................190
BSRTKEY構造体..................................................................200
bsrtmrge関数..........................................................................191
BSRTOPT構造体...................................................................213
BSRTPRIM構造体................................................................192
bsrtput関数.............................................................................189
BSRTRCON構造体...............................................................222
BSRTREC構造体..................................................................198
BSRTSELE構造体.................................................................217
BSRTSKIP構造体..................................................................224
BSRTSUM構造体..................................................................214
BSSELE構造体......................................................................218
[E]
EBCDICコード..........................................................................54
EnableOverwriteInputFileプロパティ.....................................153
ErrorCodeプロパティ..............................................................178
ErrorDetailプロパティ.............................................................179
[F]
FieldDefinitionプロパティ......................................................154
FieldDelimiterプロパティ........................................................154
FjcobAlternateKeyプロパティ................................................155
FjcobDataCompressionプロパティ.........................................157
FjcobKeyCompressionプロパティ..........................................157
FjcobPrimeKeyプロパティ......................................................158
[H]
HandlingSameKeyプロパティ.................................................159
[I]
ICONVに関するエラーコード................................................290
IEEE形式浮動小数点2進数....................................................56
IgnoreControlCodeプロパティ................................................160
InputDataCodeプロパティ.......................................................161
InputFilesSkiprecプロパティ...................................................164
InputFilesプロパティ...............................................................162
InputFileTypeプロパティ........................................................162
[J]
JEFコード..................................................................................55
[K]
KeyCmdStrプロパティ............................................................164
[L]
LineDelimiterプロパティ........................................................166
Little endian............................................................................325
[M]
MaxRecordLengthプロパティ.................................................167
MessageFileNameプロパティ.................................................167
MessageLevelプロパティ........................................................168
M形式浮動小数点2進数.........................................................56
- 326 -
漢字ソートマージオプション(-M)............................................88
漢字ソートマージ機能......................................................43,323
漢字ソートマージ機能の留意事項..........................................44
漢字フィールド.......................................................................323
関数の組合せ........................................................................183
基本方式...........................................................................43,323
キーフィールド...................................................................51,323
キーフィールドオプション(-key-def).......................................84
キーフィールドに指定可能なデータ形式...............................59
警告メッセージ.......................................................................229
降順オプション(-r)...................................................................96
後置オーバパンチ符号付数字...............................................58
後置別符号付数字..................................................................58
互換に関する情報.....................................................................4
国語辞典方式...................................................................44,323
固定小数点2進数....................................................................56
固定フィールド.......................................................................323
固定フィールド指定.................................................................52
コピーオプション(-c)................................................................96
コピーオプション(-copy)........................................................105
コピー機能.........................................................................40,323
コピー機能を使用する場合..............................................73,103
[O]
OCX使用時のエラー詳細コード...........................................290
OutputFileTypeプロパティ......................................................169
OutputFileプロパティ..............................................................168
[P]
PowerSORT OCXからPowerSORTを使用する....................140
PowerSORT OCXの使用例..................................................304
PowerSORT OCXのプロパティシート...................................140
PowerSORT OLEカスタムコントロールとは...........................140
PowerSORT VBXからの移行方法........................................320
PowerSORTのbsortexコマンドを使用する............................102
PowerSORTのbsortコマンドを使用する..................................72
PowerSORTの概要..................................................................40
PowerSORTの使い方..............................................................70
PowerSORTの入出力環境......................................................50
[R]
RconCmdStrプロパティ..........................................................170
Reverseプロパティ..................................................................172
[S]
SelCmdStrプロパティ..............................................................173
SkipLeadingBlankプロパティ.................................................175
SubErrorCodeプロパティ........................................................180
SumCmdStrプロパティ...........................................................176
[さ]
再編成フィールド..............................................................52,323
再編成フィールドオプション(-e).............................................74
再編成フィールドの自己規定値に指定可能なデータ形式.....
67
先入力先出力(FIFO)機能オプション(-f)..............................80
先入力先出力(FIFO)機能...............................................42,323
サプレスオプション(-u)............................................................98
サプレス機能.....................................................................42,323
自己規定値............................................................................323
システム依存形式固定小数点2進数......................................56
システム依存形式符号なし固定小数点2進数........................56
実行環境オプション(-option)................................................123
実行後に参照するプロパティ................................................178
実行前に設定するプロパティ................................................145
シフトJISコード..........................................................................55
集約フィールド..................................................................52,324
集約フィールドオプション(-g).................................................80
集約フィールドで指定可能なデータ形式...............................61
出力ファイルオプション(-o)....................................................90
出力ファイル情報オプション(-output)..................................127
主要機能..................................................................................40
照合順序変更..........................................................................55
照合順序変更オプション(-x)................................................100
使用するPowerSORTの機能と関連するBSORT関数一覧.....
183
情報メッセージ.......................................................................227
使用例....................................................................................299
処理定義ファイル...................................................................324
処理定義ファイルオプション(-P)............................................90
処理定義ファイルを使用する場合..........................................73
数字..........................................................................................57
数値..........................................................................................55
ストリング.................................................................................324
[T]
TempDirプロパティ................................................................177
[U]
UCS-2形式...............................................................................55
Unicode..............................................................................55,325
UsableMemorySizeプロパティ...............................................178
UTF-8形式...............................................................................55
[V]
Visual Basicのデータ型とPowerSORTのデータ形式の関係.....
320
[あ]
アプリケーションログへの出力メッセージ..............................278
アーギュメントファイルオプション(-a)...............................73,104
一時ファイルのフォルダ指定方法について..........................315
インコアソート..........................................................................323
インデックス作成方法オプション(-I).......................................84
インデックス指定オプション(-X).............................................99
英字と数字の連結データに関する留意事項.......................316
エラーコード...........................................................................278
エラーメッセージ....................................................................233
オプション機能.........................................................................40
オプション機能と主要機能の組合せ.......................................43
[か]
外部10進形式2桁年号............................................................57
外部10進数..............................................................................57
各フィールドで指定可能なデータ形式...................................59
環境設定..................................................................................68
環境変数..................................................................................45
- 327 -
選択フィールド..................................................................52,324
選択フィールドオプション(-p).................................................91
選択フィールドに指定可能なデータ形式...............................62
前置オーバパンチ符号付数字...............................................58
前置別符号付数字..................................................................58
ソートオプション(-s).................................................................96
ソートオプション(-sort)..........................................................134
ソート機能..........................................................................40,324
ソート機能を使用する場合...............................................72,102
マージオプション(-merge).....................................................119
マージ機能........................................................................40,324
マージ機能を使用する場合.............................................72,103
メソッド.....................................................................................180
メッセージ...............................................................................227
メッセージとエラーコード........................................................227
メッセージファイルオプション(-G)...........................................80
メッセージレベルオプション(-l)...............................................87
メモリサイズオプション(-y)....................................................100
メモリ不足への対処方法について........................................315
文字..........................................................................................54
文字形式2桁年号....................................................................55
文字コード系変換オプション(-Q)...........................................94
[た]
追加機能の概要........................................................................1
定義オプション(-define)........................................................105
テキストファイルオプション(-T)...............................................96
データ形式...............................................................................54
[や]
ユーザアプリケーション開発時の留意事項..........................186
[な]
内部10進形式2桁年号............................................................57
内部10進数..............................................................................56
入出力上書きオプション(-v)...................................................98
入出力ファイルシステムオプション(-F)..................................78
入力コード系オプション(-q)....................................................95
入力ファイルオプション(infile)...............................................84
入力ファイル情報オプション(-input)....................................106
入力レコード情報オプション(-record)..................................132
[ら]
留意事項................................................................................315
リリース情報................................................................................1
レコード形式オプション(-Z)..................................................101
レコード再編成機能..........................................................41,325
レコード集約オプション(-summary)......................................134
レコード集約機能..............................................................41,325
レコード選択機能..............................................................40,324
レコード長オプション(-z).......................................................101
レコード分離文字...................................................................325
レコード分離文字オプション(-L)............................................87
レコード読み飛ばしオプション(-R).........................................95
[は]
被比較フィールドと自己規定値に指定可能なデータ形式の組
合せ..........................................................................................66
被比較フィールドと比較フィールドに指定可能なデータ形式....
62
被比較フィールドと比較フィールドに指定可能なデータ形式の
組合せ......................................................................................63
標準出力オプション(-w).........................................................99
ファイル種別に関する留意事項............................................318
フィールド...............................................................................324
フィールドとデータ形式...........................................................51
フィールドの指定方法..............................................................52
フィールドの指定方法について............................................315
フィールドの種類......................................................................51
フィールド分離文字...............................................................324
フィールド分離文字オプション(-t)..........................................97
符号なし2進数.........................................................................56
符号なし外部10進数...............................................................57
符号なし固定小数点2進数.....................................................56
符号なし数字...........................................................................58
符号なし内部10進数...............................................................56
富士通COBOLファイルに関するエラーコード.....................289
富士通COBOLファイルシステムに関する留意事項............319
浮動フィールド.......................................................................324
浮動フィールド指定.................................................................52
ふりがなフィールド.................................................................324
ふりがなフィールドに含まれる特殊文字の扱い......................45
プログラム修正一覧.................................................................26
ヘルプオプション(-h).......................................................84,106
[ま]
マージオプション(-m).............................................................96
- 328 -