Comments
Description
Transcript
使用手引書 - ソフトウェア
B1WW-8781-01Z0(00) Microsoft® Windows® 2000 Microsoft® Windows Server™ 2003 PowerSORT Server V5.0 使用手引書 まえがき このたびは、PowerSORT Serverをお買い上げいただきまして、誠にありがとうございます。 PowerSORT Serverは、サーバ上で行う事務処理で使用可能な高性能ソートマージ製品です。 グローバルサーバ上で培ってきた高度なソート技法をシステムに合わせて最適化し、事務処理で取り 扱う少量のデータから大容量のデータまで、効率よくソート処理できます。 製品の呼び名について 本書に記載されている製品の名称を、以下のように略して表記します。 ● 「Microsoft(R) Windows(R) 2000 Server operating system」 → 「Windows 2000 Server」 または「Windows 2000」 ● 「Microsoft(R) Windows(R) 2000 Advanced Server operating system」 → 「Windows 2000 Advanced Server」または「Windows 2000」 ● 「Microsoft(R) Windows Server(TM) 2003, Standard Edition」 → 「Windows Server 2003 SE」または「Windows Server 2003」 ● 「Microsoft(R) Windows Server(TM) 2003, Enterprise Edition」 → 「Windows Server 2003 EE」または「Windows Server 2003」 ● 「Microsoft(R) Windows Server(TM) 2003, Standard x64 Edition」 → 「Windows Server 2003 SE (x64)」または「Windows Server 2003」 ● 「Microsoft(R) Windows Server(TM) 2003, Enterprise x64 Edition」 → 「Windows Server 2003 EE (x64)」または「Windows Server 2003」 ● 以上を総称して「Windows」 ● 「PowerSORT Server」 → 「PowerSORT」 本書の目的 本書は、PowerSORTの使用方法について説明しています。 本書の対象読者 本書は、PowerSORTを使用する人を対象としています。 本書の構成 本書の構成と内容は、以下のとおりです。 第 1 章 PowerSORTの概要 PowerSORTの機能概要、PowerSORTの入出力環境およびオプション機能について説明しています。 第 2 章 PowerSORTの使い方 PowerSORTの実行方法について説明しています。 第 3 章 PowerSORTのbsortコマンドを使用する bsortコマンドの記述形式について説明しています。 第 4 章 PowerSORTのbsortexコマンドを使用する bsortexコマンドの記述形式について説明しています。 第 5 章 OCXを使用してPowerSORTを使用する プロパティの仕様について説明しています。 第 6 章 COBOLプログラムからPowerSORTを使用する COBOLプログラムからPowerSORTを使用する方法を説明しています。 第 7 章 C言語プログラムからPowerSORTを使用する BSORT関数の仕様について説明しています。 第 8 章 メッセージとエラーコード bsort、bsortexの各コマンドおよびBSORT関数が出力するメッセージと、PowerSORT OCXおよびBSORT 関数が返すエラー詳細コードについて説明しています。 付録 PowerSORTの使用例および使用時の留意事項について説明しています。 登録商標について 本書に記載されている登録商標を、以下に示します。 ● Microsoftは、米国Microsoft Corporationの米国およびその他の国における登録商標です。 ● Btrieveは、米国Pervasive Software Inc.の商標です。 ● Micro FocusおよびMicro Focus COBOLは、英国マイクロフォーカス社の商標です。 ● Netscape、Netscape NavigatorおよびNetscape Communicatorは、Netscape Communications Corporationの米国および諸外国における商標または登録商標です。 ● そのほか、本書に記載されている会社名および製品名は、それぞれ各社の商標または登録 商標です。 2006年 6月 初 版 All Rights Reserved, Copyright(C) 富士通株式会社 2000-2006 ii 目次 第1章 PowerSORTの概要 .............................................................................. 1 1.1 主要機能 ..................................................................................... 2 1.2 オプション機能 ............................................................................... 3 1.3 オプション機能と主要機能の組合せ ............................................................. 6 1.4 漢字ソートマージ機能 ......................................................................... 7 1.4.1 基本方式 ................................................................................. 7 1.4.2 国語辞典方式 ............................................................................. 7 1.4.3 漢字ソートマージ機能の留意事項 ........................................................... 8 1.5 環境変数 ..................................................................................... 9 1.6 PowerSORTの入出力環境 ....................................................................... 13 1.7 フィールドとデータ形式 ...................................................................... 15 1.7.1 フィールド .............................................................................. 15 1.7.2 データ形式 .............................................................................. 16 1.7.3 各フィールドで指定可能なデータ形式 ...................................................... 20 1.8 環境設定 .................................................................................... 29 第2章 PowerSORTの使い方 ........................................................................... 30 第3章 PowerSORTのbsortコマンドを使用する .......................................................... 32 3.1 bsortコマンドの形式 ......................................................................... 33 3.1.1 ソート機能を使用する場合 ................................................................ 33 3.1.2 マージ機能を使用する場合 ................................................................ 33 3.1.3 コピー機能を使用する場合 ................................................................ 34 3.1.4 処理定義ファイルを使用する場合 .......................................................... 34 3.2 bsortコマンドオプション ..................................................................... 35 3.2.1 アーギュメントファイルオプション(-a) .................................................. 35 3.2.2 再編成フィールドオプション(-e) ........................................................ 36 3.2.3 入出力ファイルシステムオプション(-F) .................................................. 38 3.2.4 先入力先出力(FIFO)機能オプション(-f) ................................................ 39 3.2.5 メッセージファイルオプション(-G) ...................................................... 39 3.2.6 集約フィールドオプション(-g) .......................................................... 40 3.2.7 ヘルプオプション(-h) .................................................................. 42 3.2.8 インデックス作成方法オプション(-I) .................................................... 42 3.2.9 入力ファイルオプション(infile) ........................................................ 43 3.2.10 キーフィールドオプション(-key-def) ................................................... 43 3.2.11 レコード分離文字オプション(-L) ....................................................... 45 3.2.12 メッセージレベルオプション(-l) ....................................................... 45 3.2.13 漢字ソートマージオプション(-M) ....................................................... 46 3.2.14 出力ファイルオプション(-o) ........................................................... 47 3.2.15 処理定義ファイルオプション(-P) ....................................................... 47 3.2.16 選択フィールドオプション(-p) ......................................................... 48 3.2.17 文字コード系変換オプション(-Q) ....................................................... 51 3.2.18 入力コード系オプション(-q) ........................................................... 51 3.2.19 レコード読み飛ばしオプション(-R) ..................................................... 52 3.2.20 降順オプション(-r) ................................................................... 52 3.2.21 処理(ソート、マージ、コピー)オプション(-s、-m、-c) ................................. 52 3.2.22 テキストファイルオプション(-T) ....................................................... 53 3.2.23 フィールド分離文字オプション(-t) ..................................................... 54 3.2.24 サプレスオプション(-u) ............................................................... 55 3.2.25 入出力上書きオプション(-v) ........................................................... 55 3.2.26 標準出力オプション(-w) ............................................................... 55 iii 3.2.27 インデックス指定オプション(-X) ....................................................... 55 3.2.28 照合順序変更オプション(-x) ........................................................... 56 3.2.29 メモリサイズオプション(-y) ........................................................... 57 3.2.30 レコード形式オプション(-Z) ........................................................... 57 3.2.31 レコード長オプション(-z) ............................................................. 57 第4章 PowerSORTのbsortexコマンドを使用する ........................................................ 59 4.1 bsortexコマンドの形式 ....................................................................... 60 4.1.1 ソート機能を使用する場合 ................................................................ 61 4.1.2 マージ機能を使用する場合 ................................................................ 62 4.1.3 コピー機能を使用する場合 ................................................................ 63 4.2 bsortexコマンドオプション ................................................................... 64 4.2.1 アーギュメントファイルオプション(-a) .................................................. 64 4.2.2 コピーオプション(-copy) ............................................................... 65 4.2.3 定義オプション(-define) ............................................................... 65 4.2.4 ヘルプオプション(-h) .................................................................. 66 4.2.5 入力ファイル情報オプション(-input) .................................................... 66 4.2.6 マージオプション(-merge) .............................................................. 76 4.2.7 実行環境オプション(-option) ........................................................... 79 4.2.8 出力ファイル情報オプション(-output) ................................................... 83 4.2.9 入力レコード情報オプション(-record) ................................................... 88 4.2.10 ソートオプション(-sort) .............................................................. 89 4.2.11 レコード集約オプション(-summary) ..................................................... 90 第5章 OCXを使用してPowerSORTを使用する ............................................................ 94 5.1 PowerSORT OLEカスタムコントロールとは ....................................................... 95 5.2 PowerSORT OCXのプロパティシート ............................................................. 96 5.2.1 「File」プロパティページ ................................................................ 96 5.2.2 「Disposal」プロパティページ ............................................................ 98 5.2.3 「KeyField」プロパティページ ............................................................ 98 5.2.4 「Record」プロパティページ .............................................................. 99 5.2.5 「Option」プロパティページ ............................................................. 100 5.2.6 「Environment」プロパティページ ........................................................ 100 5.3 実行前に設定するプロパティ ................................................................. 102 5.3.1 AlphaNumOnlyプロパティ ................................................................. 102 5.3.2 AlternateModeプロパティ ................................................................ 102 5.3.3 BtrieveFileInfoプロパティ .............................................................. 103 5.3.4 BtrieveIndexKeyプロパティ .............................................................. 104 5.3.5 BtrieveInfileOwnerNameプロパティ ....................................................... 105 5.3.6 CollationOrderプロパティ ............................................................... 106 5.3.7 CompareAsUpperCaseプロパティ ........................................................... 107 5.3.8 DispMessageプロパティ .................................................................. 108 5.3.9 DisposalNumberプロパティ ............................................................... 108 5.3.10 EnableOverwriteInputFileプロパティ .................................................... 109 5.3.11 FieldDefinitionプロパティ ............................................................. 110 5.3.12 FieldDelimiterプロパティ .............................................................. 110 5.3.13 FjcobAlternateKeyプロパティ ........................................................... 111 5.3.14 FjcobDataCompressionプロパティ ........................................................ 113 5.3.15 FjcobKeyCompressionプロパティ ......................................................... 113 5.3.16 FjcobPrimeKeyプロパティ ............................................................... 114 5.3.17 HandlingSameKeyプロパティ ............................................................. 115 5.3.18 IgnoreControlCodeプロパティ ........................................................... 116 5.3.19 InputDataCodeプロパティ ............................................................... 117 5.3.20 InputFilesプロパティ .................................................................. 117 iv 5.3.21 InputFileTypeプロパティ ............................................................... 118 5.3.22 InputFilesSkiprecプロパティ ........................................................... 120 5.3.23 KeyCmdStrプロパティ ................................................................... 120 5.3.24 LineDelimiterプロパティ ............................................................... 122 5.3.25 MaxRecordLengthプロパティ ............................................................. 122 5.3.26 MessageFileNameプロパティ ............................................................. 123 5.3.27 MessageLevelプロパティ ................................................................ 123 5.3.28 OutputFileプロパティ .................................................................. 124 5.3.29 OutputFileTypeプロパティ .............................................................. 125 5.3.30 RconCmdStrプロパティ .................................................................. 126 5.3.31 Reverseプロパティ ..................................................................... 128 5.3.32 SelCmdStrプロパティ ................................................................... 128 5.3.33 SkipLeadingBlankプロパティ ............................................................ 131 5.3.34 SumCmdStrプロパティ ................................................................... 131 5.3.35 TempDirプロパティ ..................................................................... 133 5.3.36 UsableMemorySizeプロパティ ............................................................ 133 5.4 実行後に参照するプロパティ ................................................................. 135 5.4.1 ErrorCodeプロパティ .................................................................... 135 5.4.2 ErrorDetailプロパティ .................................................................. 135 5.4.3 SubErrorCodeプロパティ ................................................................. 136 5.5 メソッド ................................................................................... 137 5.5.1 Actionメソッド ......................................................................... 137 第6章 COBOLプログラムからPowerSORTを使用する ..................................................... 138 第7章 C言語プログラムからPowerSORTを使用する ..................................................... 139 7.1 BSORT関数とは .............................................................................. 140 7.2 BSORT関数の使い方 .......................................................................... 141 7.2.1 ソート機能を使用する場合 ............................................................... 141 7.2.2 マージ機能を使用する場合 ............................................................... 142 7.2.3 コピー機能を使用する場合 ............................................................... 143 7.3 BSORT関数の種類 ............................................................................ 144 7.3.1 bsrtopen関数 ........................................................................... 144 7.3.2 bsrtclse関数 ........................................................................... 145 7.3.3 bsrtput関数 ............................................................................ 146 7.3.4 bsrtget関数 ............................................................................ 147 7.3.5 bsrtmrge関数 ........................................................................... 148 7.4 BSORT関数で使用する構造体 .................................................................. 150 7.4.1 BSRTPRIM構造体 ......................................................................... 150 7.4.2 BSRTREC構造体 .......................................................................... 156 7.4.3 BSRTKEY構造体 .......................................................................... 158 7.4.4 BSKEY構造体 ............................................................................ 158 7.4.5 BSKANJI構造体 .......................................................................... 161 7.4.6 BSCOL構造体 ............................................................................ 162 7.4.7 BSRTFILE構造体 ......................................................................... 162 7.4.8 BSFILE構造体 ........................................................................... 164 7.4.9 BSFSYS構造体 ........................................................................... 165 7.4.10 BSIDX構造体 ........................................................................... 166 7.4.11 BSIDXKEY構造体 ........................................................................ 166 7.4.12 BSFILE_EXT構造体 ...................................................................... 167 7.4.13 BSFILE_BTRV構造体 ..................................................................... 168 7.4.14 BSFILE_BASE構造体 ..................................................................... 170 7.4.15 BSRTOPT構造体 ......................................................................... 171 7.4.16 BSRTSUM構造体 ......................................................................... 172 v 7.4.17 BSSUM構造体 ........................................................................... 172 7.4.18 BSRTSELE構造体 ........................................................................ 174 7.4.19 BSSELE構造体 .......................................................................... 174 7.4.20 BSRTRCON構造体 ........................................................................ 178 7.4.21 BSRCON構造体 .......................................................................... 178 7.4.22 BSRTSKIP構造体 ........................................................................ 179 7.4.23 BSRTFUNC構造体 ........................................................................ 180 第8章 メッセージとエラーコード ................................................................... 181 8.1 メッセージ ................................................................................. 182 8.1.1 情報メッセージ ......................................................................... 182 8.1.2 エラーメッセージ ....................................................................... 183 8.1.3 アプリケーションログへの出力メッセージ ................................................. 226 8.2 エラーコード ............................................................................... 227 8.2.1 BSORT関数のエラー詳細コード(errdetail) ............................................... 227 8.2.2 富士通COBOLファイルに関するエラーコード ................................................ 238 8.2.3 Btrieveファイルに関するエラーコード .................................................... 238 8.2.4 ADJUSTに関するエラーコード ............................................................. 238 8.2.5 ICONVに関するエラーコード .............................................................. 238 8.2.6 OCX使用時のエラー詳細コード ............................................................ 239 付録A 使用例 ..................................................................................... 247 A.1 bsortコマンドの使用例 ...................................................................... 247 A.2 bsortexコマンドの使用例 .................................................................... 249 A.3 PowerSORT OCXの使用例 ...................................................................... 252 A.3.1 ソート処理(バイナリファイル)の例 ..................................................... 252 A.3.2 ソート処理(テキストファイル)の例 ..................................................... 252 A.3.3 マージ処理(バイナリファイル)の例 ..................................................... 253 A.3.4 マージ処理(テキストファイル)の例 ..................................................... 254 A.3.5 コピー処理(バイナリファイル)の例 ..................................................... 255 A.3.6 コピー処理(テキストファイル)の例 ..................................................... 255 A.3.7 レコード選択機能を使った例 ............................................................. 256 A.3.8 レコード再編成機能を使った例 ........................................................... 256 A.3.9 レコード集約機能を使った例 ............................................................. 257 A.3.10 レコード選択機能、レコード再編成機能、レコード集約機能を組み合わせた例 ................ 258 A.3.11 サプレス機能を使った例 ................................................................ 259 A.3.12 FIFO機能を使った例 .................................................................... 260 A.3.13 富士通COBOL索引ファイルのソート例 ..................................................... 260 A.4 BSORT関数の使用例 .......................................................................... 261 付録B 留意事項 ................................................................................... 265 B.1 メモリ不足への対処方法 ..................................................................... 265 B.2 一時ファイルのフォルダ指定方法 ............................................................. 265 B.3 レコード集約機能使用時の留意事項 ........................................................... 265 B.4 フィールド位置の指定方法 ................................................................... 266 B.5 文字/数字混在のデータの並びに関する留意事項 ................................................ 267 B.6 ファイル種別に関する留意事項 ............................................................... 267 B.7 富士通COBOLファイルシステムの行順ファイルに関する留意事項 .................................. 268 B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関係 ........................................ 269 B.9 PowerSORT VBXからの移行方法 ................................................................ 269 用語集 ........................................................................................... 272 索引 ............................................................................................. 275 vi 第1章 PowerSORTの概要 PowerSORTは、本格的な事務処理で使用できる高性能ソートマージ機能を実現するソフトウェアです。 PowerSORTには、ソート機能、マージ機能およびコピー機能の主要機能と各種オプション機能があり、 これらの機能を組み合わせることでさまざまな処理を同時に使用できます。 第1章 PowerSORTの概要 1.1 主要機能 PowerSORTの代表的な機能には、ソート機能、マージ機能およびコピー機能の3つがあります。 PowerSORTでは、これら3つの機能を特に主要機能と呼んでいます。 ● ソート機能 ● マージ機能 ● コピー機能 ソート機能 指定された1つ以上のキーフィールドにより昇順(0から9、AからZの順)または降順(ZからA、9から 0の順)にレコードを並び替える機能です。 マージ機能 ソート済みの複数のファイルを併合する(まとめる)機能です。 コピー機能 1つ以上の入力ファイルを出力ファイルに複写する機能です。 2 1.2 オプション機能 1.2 オプション機能 PowerSORTには、以下のオプション機能があります。オプション機能は、主要機能と同時に指定しま す。 ● レコード選択機能 ● ● ● ● レコード再編成機能 レコード集約機能 サプレス機能 先入力先出力(FIFO)機能 レコード選択機能 レコード選択機能とは、処理対象のレコードの選択方法を指定して、必要なレコードだけを選択する 機能です。主要機能と組み合わせて使用します。この機能を使用する場合は、被比較フィールドと比 較フィールドとの比較方法、または被比較フィールドと自己規定値との比較方法を指定します。また、 bsortexコマンドではレコード件数を選択条件とすることが可能です。 以下にレコード選択機能を使用した例を示します。 例) キーフィールド順にソートし、被比較フィールドと比較フィールドを比較します。被比較フィ ールドが比較フィールドより大きい値のレコードを選択します。 レコード再編成機能 レコード再編成機能とは、フィールドの位置を変更したり、自己規定値をレコードに埋め込む機能で す。主要機能と組み合わせて使用します。この機能を使用する場合は、出力レコードの左端から順番 にフィールドを指定します。入力レコードのフィールドの位置を変更する場合はその位置と長さを、 自己規定値を埋め込む場合はその自己規定値を指定します。 以下にレコード再編成機能を使用した例を示します。 例) キーフィールド順にソートし、再編成フィールド1、再編成フィールド2および再編成フィール ド3で再編成します。 3 第1章 PowerSORTの概要 レコード集約機能 レコード集約機能とは、同値のキーフィールドをもつレコードが複数あるファイルまたはレコード群 をソート処理またはマージ処理する際、集約フィールドの値を加算して1つのレコードにする機能で す。ソート機能またはマージ機能と組み合わせて使用します。サプレス機能および先入力先出力 (FIFO)機能とは、排他関係にあります。 以下にレコード集約機能を使用した例を示します。 例) キーフィールド順にソートし、同値のキーフィールドをもつレコードの集約フィールドを集約 します。 サプレス機能 サプレス機能とは、同値のキーフィールドをもつレコードが複数あるファイルまたはレコード群をソ ート処理またはマージ処理する際、1つを残して他を削除する機能です。ソート機能またはマージ機 能と組み合わせて使用します。レコード集約機能および先入力先出力(FIFO)機能とは、排他関係に あります。 以下にサプレス機能を使用した例を示します。 例) キーフィールド順にソートし、同値のキーフィールドをもつレコードは1つを残して他を削除し ます。 4 1.2 オプション機能 先入力先出力(FIFO)機能 先入力先出力(FIFO)機能とは、同値のキーフィールドをもつレコードが複数あるファイルまたはレ コード群をソート処理する際、先に入力したレコードを先に出力する機能です。ソート機能と組み合 わせて使用します。bsortexコマンドでは、マージ機能とも組み合わせて使用できます。レコード集 約機能およびサプレス機能とは、排他関係にあります。 以下に先入力先出力(FIFO)機能を使用した例を示します。 例) キーフィールド順にソートし、同値のキーフィールドをもつレコードは入力順に出力します。 5 第1章 PowerSORTの概要 1.3 オプション機能と主要機能の組合せ オプション機能と主要機能の組合せの可否を以下に示します。 オプション機能と主要機能の組合せの可否 オプション機能 主要機能 ソート機能 マージ機能 コピー機能 レコード選択機能 ○ ○ ○ レコード再編成機能 ○ ○ ○ レコード集約機能 ○ ○ × サプレス機能 ○ ○ × △ × 先入力先出力(FIFO)機能 ○ ○:組合せ可能 △:bsortexコマンド使用時に組合せ可能 ×:組合せ不可能 6 1.4 漢字ソートマージ機能 1.4 漢字ソートマージ機能 漢字ソートマージ機能は、漢字コードで表現された文字(日本語)を含むレコードを、文字の持つ属性 に従って並べる機能です。 一般に漢字の読みは一意に決まらず、文字の属性(音読みや訓読み)だけでは使用者の意図どおり並ば ないことがあります。このような場合、キーフィールドに対する読みがレコード内にあれば、それら を参照して並べることができます。漢字ソートマージ機能では、レコード内の漢字コードで表現され たフィールドのことを漢字フィールド、それに対応する読みが入っているフィールドをふりがなフィ ールドと呼びます。ふりがなフィールドは、ひらがな文字およびカタカナ文字で表現します。 漢字ソートマージ機能で実現している並べ方には、基本方式と国語辞典方式の2つの方式があります。 1.4.1 基本方式 基本方式は、文字の属性に従って並べます。 各属性は“JEF文字コード索引辞書”に従っています。必要に応じて“JEF文字コード索引辞書”を参 照してください。基本方式では、漢字フィールドだけで並べることができます。 照合順序 基本方式の照合順序は、以下の属性によって決まります。属性は最大4つまで指定でき、指定した順 序で並べます。 ● 総画数 総画数の小さいものから大きい順(またはその逆)に並べます。 ● 部首 部首の画数の小さいものから大きい順(またはその逆)に並べます。 ● 音読み 音読みの50音順(またはその逆)に並べます。 ● 訓読み 訓読みの50音順(またはその逆)に並べます。 ● コード 漢字コードの小さいものから大きい順(またはその逆)に並べます。 1.4.2 国語辞典方式 国語辞典方式は、国語辞典に採用されている読み(清音読み)を基本として並べます。 国語辞典方式では、漢字フィールドに加えてふりがなフィールドが必要となります。 照合順序 昇順に並べることを例に説明します。 1. ふりがなフィールドのかな文字を50音順に並べます。 例)あ→が→き→っ→ぱ→ゅ 2. ふりがなフィールドのかな文字を濁点や半濁点の付いていない文字、濁点の付いている文 字、半濁点の付いている文字の順に並べます。 例)は→ば→ぱ フ→ブ→プ 3. ふりがなフィールドのかな文字を直音で表す文字、その小文字の順に並べます。 例)や→ゃ ヨ→ョ 4. ふりがなフィールドのかな文字をひらがな、カタカナの順に並べます。 例)け→ケ ゅ→ュ 5. 漢字フィールドに対する文字の属性の指定があれば、基本方式と同様の照合順序で並べま す。 7 第1章 PowerSORTの概要 1.4.3 漢字ソートマージ機能の留意事項 漢字ソートマージ機能使用時の留意事項を以下に示します。 漢字フィールドに含まれる特殊文字の扱い ● 漢字フィールド中の繰返し記号(々)は直前の文字に置き換えます。ただし、漢字フィール ドの先頭に存在する場合は置き換えません。 ● 漢字フィールド内に1バイト系の文字が含まれていた場合には、その1バイト系の文字は無 いものとして扱い、漢字コードの後に1バイト系の文字が現れた場合はその後のコードを 無視します。 例)漢字フィールドが以下の文字列の場合、すべて“漢字”として処理します。 ― 漢字 ― abc漢字 ― 漢字abc ― 漢字abc日本def ― abc漢字def日本 ● 文字の属性を取り出すことができなかったコード(たとえば、拡張漢字など)は空白として 処理します。 ふりがなフィールドに含まれる特殊文字の扱い ● ふりがなフィールド内の繰返し記号(ヽ、ゝ、ヾ、ゞ)は直前の文字に置き換えます。濁点 付きの繰返し記号は直前の文字に濁点を付けて置き換えます。また、ひらがな繰返しは直 前の文字をひらがなとして置き換え、カタカナ繰返しは直前の文字をカタカナとして置き 換えます。 ● ふりがなフィールド内の長音記号(ー、―、-、-)は直前の文字の母音を表す文字に置き 換えます。 ● ふりがなフィールド内の濁点(゛)は直前の文字に濁点を付けます。また、半濁点(゜)は直 前の文字に半濁点を付けます。 ● 以上の文字は、直前の文字がない場合には空白に置き換えます。その他の文字(たとえば、 数字、特殊文字など)はすべて空白に置き換えます。 8 1.5 環境変数 1.5 環境変数 環境変数を設定することにより、PowerSORTの省略値や動作条件を設定することができます。 以下に、PowerSORTで設定可能な環境変数を示します。 なお、環境変数は実行時オプションの省略値または補助情報となります。PowerSORTの実行時に、対 応するオプションの指定がある場合は、指定したオプションの値が環境変数より優先されます。 環境変数 意味 BSORT_CHKLEVEL チェックレベルの指定 BSORT_COBFSYS_MODE 富士通COBOLファイルシステムオプションの指定 BSORT_EVENTLOG アプリケーションログへの出力指定 BSORT_MEMSIZE 作業域の大きさの指定 BSORT_MSGFILE メッセージ出力ファイル名の指定 BSORT_MSGLEVEL メッセージ出力レベルの指定 BSORT_MSGOUT 情報、エラーメッセージ出力先の指定 BSORT_RDM_EMPTY 0件のRDMファイルを入力した場合の処理方法 BSORT_SUMOVERCONT レコード集約処理実行中にオーバフローが発生した場合の、それ 以後のレコード集約処理を継続するか否かの指定 BSORT_TMPDIR 一時ファイルフォルダ名の指定 BSORT_TOPYY 2桁年号データの照合順序定義の指定 BSORT_UCS2TYPE Unicode UCS-2形式のバイトオーダの指定 BSORT_UNICODEBOM BOMの読み飛ばしの有無の指定 BSORT_CHKLEVEL={0 | 1} PowerSORTの内部のチェック機能を指定します。 指定値 意味 0 何もチェックしません。(省略値) 1 BSORT関数でインタフェースチェックをします。 BSORT_COBFSYS_MODE={NORMAL | BSAM} 入出力ファイルのファイルシステムに"富士通COBOLファイルシステム(順ファイル)"を指定した場合 に、動作させるファイルシステムを指定します。BSAM対応については富士通COBOLファイルシステム (BSAM対応順ファイル)についてを参照してください。 指定値 意味 NORMAL "富士通COBOLファイルシステム(順ファイル)"として動作します。(省略 値) BSAM "富士通COBOLファイルシステム(BSAM対応順ファイル)"として動作しま す。 ● この環境変数は、入出力ファイルのファイルシステムに"富士通COBOLファイルシステム (順ファイル)"を指定した場合に有効です。 ● BSAMを指定しても、使用する富士通COBOLファイルシステムがBSAMに対応していない場合 はNORMALで動作します。 BSORT_EVENTLOG={YES | NO} PowerSORTが検出した重大なエラー情報のアプリケーションログへの出力を指定します。 出力対象となるメッセージは、PowerSORTが動作するために必要なメモリサイズが不足した場合、フ ァイルシステムがI/Oエラーを検出した場合および漢字ソートマージ機能でエラーを検出した場合に 9 第1章 PowerSORTの概要 出力されるメッセージです。詳細はアプリケーションログへの出力メッセージを参照してください。 指定値 意味 YES エラー情報をアプリケーションログへ出力します。 NO エラー情報をアプリケーションログへ出力しません。(省略値) BSORT_MEMSIZE=n PowerSORTが使用する作業域の大きさ(メモリサイズ)をキロバイト数で指定します。 メモリサイズは32~2097151キロバイトの範囲で指定します。0を指定した場合、または環境変数 BSORT_MEMSIZEの指定を省略した場合は、メモリサイズは自動的に設定されます。2097152以上の値を 指定した場合は、2097151を指定したとみなされます。 メモリサイズは入力データ量の1/50以上とすることをお薦めします。ただし、入力データ量の1/50 が8192キロバイト未満の場合は、8192キロバイトとすることをお薦めします。 BSORT_MSGFILE=メッセージ出力ファイル名 PowerSORTが出力するメッセージを格納するファイルパス名を指定します。 ファイル名に空白を含む場合も、ファイル名をダブルクォーテーション( " )で囲む必要はありませ ん。 BSORT_MSGLEVEL={0 | 1 | 2} PowerSORTが出力するメッセージのレベルを指定します。 指定値 意味 0 何も出力しません。 1 エラーメッセージを出力します。(省略値) 2 エラーメッセージと情報メッセージを出力します。 BSORT_MSGOUT={STDOUT | STDERR} 情報メッセージ、エラーメッセージの出力先を指定します。 指定値 意味 STDOUT エラーメッセージを標準出力に出力します。情報メッセージは標準出力に 出力されません。 メッセージファイルの指定がある場合は、エラーメッセージを標準出力に 出力するとともに、情報メッセージおよびエラーメッセージをメッセージ ファイルに出力します。 STDERR 情報メッセージおよびエラーメッセージを標準エラー出力に出力します。 メッセージファイルの指定がある場合は、エラーメッセージを標準エラー 出力に出力するとともに、情報メッセージおよびエラーメッセージをメッ セージファイルに出力します。(省略値) 以下にPowerSORTの出力ファイルに標準出力を指定し、処理結果をリダイレクトして別ファイルに出 力した場合の例を示します。 例1) 環境変数BSORT_MSGOUTにSTDOUTを指定した場合のエラーメッセージ、情報メッセージおよび処 理結果の出力先は以下のようになります。 PowerSORTの動作 エラーメッセージ 情報メッセージ 処理結果 正常終了 異常終了 なし なし リダイレクトされた ファイル リダイレクトされた ファイル なし なし 例2) 環境変数BSORT_MSGOUTにSTDERRを指定した場合のエラーメッセージ、情報メッセージおよび処 理結果の出力先は以下のようになります。 10 1.5 環境変数 PowerSORTの動作 正常終了 異常終了 エラーメッセージ 情報メッセージ 処理結果 なし 画面(標準エラー出 力) リダイレクトされた ファイル 画面(標準エラー出 力) 画面(標準エラー出 力) なし BSORT_RDM_EMPTY={CONTINUE | ERROR} 0件のRDMファイルを入力した場合の処理方法を指定します。 指定値 意味 CONTINUE 格納レコード件数が0件のRDMファイルを入力した場合、0件のレコードを 入力したものとして処理を継続します。この場合、格納レコード0件の出 力ファイルが作成されます。 ERROR 格納レコード件数が件のRDMファイルを入力した場合、入力処理でエラー とします。この場合、出力ファイルは作成されません。(省略値) BSORT_SUMOVERCONT={ON | OFF} レコード集約処理でオーバフローが発生した場合に、それ以後のレコード集約処理の動作を指定しま す。 指定値 意味 ON オーバフローする直前まで集約されたレコードを出力し、それ以後の同値 のキーフィールドを持つレコードに対しては、別レコードとしてレコード 集約処理を継続します。以降、オーバフローするたびに同様の処理を行い ます。 OFF オーバフローする直前まで集約されたレコードを出力し、それ以後の同値 のキーフィールドを持つレコードに対しては、レコード集約処理を行いま せん。(省略値) BSORT_TMPDIR=一時ファイルフォルダ名[;一時ファイルフォルダ名...] PowerSORTのソート処理に必要となる一時ファイルを作成するフォルダ名を指定します。 メモリ内だけでは処理できない量のレコードをソート処理する場合、環境変数BSORT_TMPDIRで指定さ れたフォルダに一時ファイルを作成します。指定されたフォルダが存在しない場合は、エラーとなり ます。また、セミコロン( ; )で区切ることで複数のフォルダ名を指定できます。ドライブの異なる 複数のフォルダ名を指定すると、指定されたフォルダに一時ファイルが分散されるため、空きスペー ス不足によるエラーを回避できることがあります。フォルダ名を複数指定する場合は、セミコロン ( ; )の前後に空白などの不要な文字列を置かないようにしてください。 なお、PowerSORTは以下の優先順位に従って、一時ファイルを作成するフォルダを決定します。 1. BSORT 関 数 に お け る BSRTFILE 構 造 体 の tmpfile_tbl ま た は bsortex コ マ ン ド に お け る -optionオプションのtmpdirオペランドで指定されたフォルダ 2. 環境変数BSORT_TMPDIRで指定されたフォルダ 3. 環境変数TEMPで指定されたフォルダ 4. 環境変数TMPで指定されたフォルダ 5. Windowsシステムのフォルダ BSORT_TOPYY=yy 2桁年号データ形式を使ってソートマージ処理する場合に、並替えのしきい値を設定します。 ここで指定したyy年が最小値となります。たとえば、BSORT_TOPYY=60とした場合、最小値が60、最大 値が59となり、年号データを下2桁で並べた場合は、1960年から2059年の順に大小関係が決定します。 省略値は60です。キーフィールドおよび選択フィールドのデータ形式として2桁年号データ形式を指 定した場合に有効となります。 11 第1章 PowerSORTの概要 BSORT_UCS2TYPE={LITTLE_ENDIAN | BIG_ENDIAN} Unicode UCS-2形式のバイトオーダを指定します。 bsortexコマンドおよびbsortコマンドでUnicode UCS-2形式のデータ形式を指定した場合に有効です。 指定値 意味 LITTLE_ENDIAN Little endianとします。(省略値) BIG_ENDIAN Big endianとします。 BSORT_UNICODEBOM={ON | OFF} 入力ファイルがテキストファイルで、かつ入力ファイルのコード系がUnicode系(UCS-2形式または UTF-8形式)のとき、BOMの読み飛ばしの有無を指定します。 入力ファイルにBOMが存在し、BOMを読み飛ばした場合、出力ファイルにBOMを付加します。複数の入 力ファイルを指定している場合は、先頭に指定した入力ファイルにBOMが存在し、BOMを読み飛ばした 場合、出力ファイルにBOMを付加します。 指定値 意味 12 ON BOMを読み飛ばします。ただし、先頭がBOMでない場合は読み飛ばしません。 入力ファイルの先頭にBOMが存在する場合にレコードからBOMを除外する ことができます。(省略値) OFF BOMを読み飛ばしません。 1.6 PowerSORTの入出力環境 1.6 PowerSORTの入出力環境 PowerSORTの入出力の対象となるファイル種別について説明します。 対象となるファイル種別 PowerSORTでは、以下のファイルを使用できます。 テキストファイル 文字列データと改行コードおよびEOFコードで構成されたシステムの標準ファイルシステム上の文書 ファイルです。 バイナリファイル 文字列や16進データによる、長さが一定のレコード(固定長レコード形式)で構成されているシステム の標準ファイルシステム上のファイルです。 富士通COBOL順編成、索引、相対ファイル 富士通のNetCOBOL、PowerCOBOL97、COBOL97およびCOBOL85などでサポートしているファイル形式で、 それぞれに固定長レコード形式、可変長レコード形式があります。PowerSORTはBSAMに対応した富士 通COBOL順編成ファイルにも対応しています。BSAMに対応した富士通COBOL順編成ファイルについては 富士通COBOLファイルシステム(BSAM対応順ファイル)についてを参照してください。 Micro Focus COBOL順編成、索引、相対ファイル Micro Focus COBOLでサポートしているファイル形式で、それぞれに固定長レコード形式、可変長レ コード形式があります。 Btrieveファイル Btrieveで取り扱うファイルで、固定長レコード形式と可変長レコード形式があります。 RDMファイル PowerRW+でサポートしているファイル形式で、固定長レコード形式で構成されているファイルです。 入力と出力のファイル種別の組合せについて 入力と出力のファイル種別は、以下の組合せの範囲で異なるファイル種別を指定できます。 レコード形式は、入力ファイルのレコード形式が出力ファイルのレコード形式となり、変更すること はできません。 入力ファイル種別 出力ファイル種別 テキストファイル テキストファイル バイナリファイル バイナリファイル 富士通COBOL順編成、索引、相対ファイル Micro Focus COBOL順編成、相対ファイル Btrieveファイル RDMファイル 上記以外のファイル バイナリファイル(入力ファイルのレコード 形式が固定長レコード形式の場合のみ) 富士通COBOL順編成、索引、相対ファイル Micro Focus COBOL順編成、相対ファイル Btrieveファイル RDMファイル(入力ファイルのレコード形式 が固定長レコード形式の場合のみ) ● データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイル に指定することはできません。 13 第1章 PowerSORTの概要 ● 出力ファイルにMicro Focus COBOLファイルシステムの索引ファイルを指定することはで きません。 ● Btrieveファイルは、bsortコマンドおよびbsortexコマンドでは出力ファイルとして指定 することはできません。 富士通COBOLファイルシステム(BSAM対応順ファイル)について ● PowerSORTはBSAMに対応した富士通COBOL順ファイルを処理することが可能です。BSAMに対 応した富士通COBOL順ファイルを処理する場合は、入出力ファイルのファイルシステムに" 富士通COBOLファイルシステム(BSAM対応順ファイル)"を指定してください。 ● "富士通COBOLファイルシステム(順ファイル)"で扱える最大ファイルサイズは1ギガバイ トです。"富士通COBOLファイルシステム(BSAM対応順ファイル)"では、ファイルサイズが 1GBを超えるファイルを扱うことができます。扱うことのできる最大ファイルサイズにつ いては、お使いの富士通COBOLファイルシステムのマニュアルを参照してください。 ● 入出力ファイルのファイルシステムに"富士通COBOLファイルシステム(BSAM対応順ファイ ル)"を指定した場合、富士通COBOLファイルシステムの仕様によりレコード排他処理が行 われません。 ● お使いの富士通COBOLファイルシステムがBSAMに対応しているかの確認、およびBSAMにつ いての詳細は、お使いの富士通COBOLファイルシステムのマニュアルを参照してください。 ● お使いの富士通COBOLファイルシステムがBSAMに対応していない場合、入出力ファイルの ファイルシステムに"富士通COBOLファイルシステム(BSAM対応順ファイル)"を指定しても "富士通COBOLファイルシステム(順ファイル)"として動作します。 14 1.7 フィールドとデータ形式 1.7 フィールドとデータ形式 ここでは、PowerSORTを使用するためのフィールドの種類と、それぞれのフィールドに指定できるデ ータ形式について説明します。 1.7.1 フィールド フィールドには、ソート機能およびマージ機能で使用するキーフィールド、レコード集約機能で使用 する集約フィールド、レコード選択機能で使用する選択フィールド(被比較フィールドおよび比較フ ィールド)、およびレコード再編成機能で使用する再編成フィールドがあります。また、フィールド の指定方法には、固定フィールド指定と浮動フィールド指定があります。 固定フィールド指定とは、レコードの先頭からのバイト位置によって区分されるフィールドの指定方 法です。フィールドの位置は全レコードで共通です。 浮動フィールド指定とは、フィールド分離文字によって区分されるフィールドの指定方法です。フィ ールド分離文字の位置によってフィールドの位置が決定されるため、レコードごとにフィールドの位 置は異なります。浮動フィールド指定はテキストファイルのときに指定できます。 キーフィールド キーフィールドは、レコードの大小関係を決めるために使用するレコード中のフィールドです。フィ ールドの位置、長さ、データ形式と操作方法の情報からなっています。 集約フィールド 集約フィールドは、レコード集約機能で使用する、数値を加算するためのフィールドです。集約フィ ールドは、フィールドの位置、長さ、データ形式および出力形式の情報からなっています。 選択フィールド 選択フィールドは、レコード選択機能で使用するフィールドです。選択フィールドには、被比較フィ ールドおよび比較フィールドがあります。 レコード中の2つのフィールドを比較する場合は、先に指定したフィールドを被比較フィールド、後 に指定したフィールドを比較フィールドといいます。レコード中のフィールドと自己規定値を比較す る場合は、先に指定したフィールドを被比較フィールドといいます。 被比較フィールドは、レコード中のフィールドの位置、長さ、データ形式と操作方法の情報からなっ ています。比較フィールドは、レコード中のフィールドの位置、長さとデータ形式の情報からなって います。自己規定値は、10進数の定数または16進数や文字列で表される文字列定数です。 再編成フィールド 再編成フィールドは、レコード再編成機能で指定する入力または出力レコード中のフィールドです。 レコード中のフィールドの位置と長さの情報からなっています。 再編成フィールドには、レコード再編成機能で使用する10進数の定数または16進数や文字列で表され る文字列定数を自己規定値として指定できます。レコード再編成機能では、任意の数字や文字をレコ ードに埋め込むときに自己規定値を使用します。 浮動フィールド指定の注意事項 ● キーフィールド、集約フィールド、選択フィールドおよび再編成フィールドにフィールド 分離文字を含むことはできません。 ● フィールド分離文字の指定を省略した場合は、空白とタブがフィールド分離文字となりま す。フィールド分離文字の指定を省略し、空白が連続している場合は、最初の空白がフィ ールド分離文字となり、残りの空白はフィールドの一部とみなして動作します。 ● フィールド分離文字を指定した場合は、フィールド分離文字が連続すると空フィールドが 存在するとみなして処理します。 15 第1章 PowerSORTの概要 ● 自己規定値にフィールド分離文字およびレコード分離文字を含むことはできません。 1.7.2 データ形式 ここでは、データ形式の概要を示します。 データ形式には、以下の3つの種類があり、それぞれの種類ごとに型があります。 ● 文字 ● 数値 ● 数字 1.7.2.1 文字 文字の型には、以下の7つの型があります。 ● ASCIIコード ● EBCDICコード ● シフトJISコード ● JEFコード ● Unicode ● 文字形式2桁年号 ● 照合順序変更 ASCIIコード 文字を8ビット透過なコード順に比較します。 複数バイト文字が混在している場合は、オプションを指定することによって文字ごとに比較します。 ASCIIコード、シフトJISコードおよび8単位カナコードを処理できます。漢字ソートマージ機能の漢 字フィールドおよびふりがなフィールドとしても指定可能です。 入力ファイルのコード系がEBCDICコード系の場合、ASCIIコード順に並べます。 EBCDICコード EBCDIC文字を8ビット透過なコード順に比較します。 漢字ソートマージ機能のふりがなフィールドとしても指定可能です。 入力ファイルのコード系がASCIIコード系の場合、EBCDICコード順に並べます。 シフトJISコード シフトJISコードを文字ごとに比較します。 漢字ソートマージ機能の漢字フィールドおよびふりがなフィールドとしても指定可能です。 JEFコード 富士通の汎用計算機で用いられている日本語コードです。文字を16ビット透過なコード順に並べます。 漢字ソートマージ機能の漢字フィールドおよびふりがなフィールドとしても指定可能です。 Unicode 世界中の文字を統一的に記述できる国際的な文字コードです。PowerSORTでは、以下の2つの形式をサ ポートしています。 ● UCS-2形式 1文字を2バイトで表現する形式です。 ● UTF-8形式 1文字を1~6バイトの可変長のバイトで表現する形式です。 PowerSORTでは、1~3バイトまでをサポートしています。 16 1.7 フィールドとデータ形式 文字形式2桁年号 環境変数BSORT_TOPYYの指定値に従って、2桁の数字を2桁年号として比較します。 照合順序変更 与えられた照合順序の情報に従って、1バイトの文字を他の文字に置き換えて比較します。 1.7.2.2 数値 数値の型には、以下の16の型があります。 ● 符号なし2進数 ● 固定小数点2進数 ● 8086形式固定小数点2進数 ● システム依存形式固定小数点2進数 ● 符号なし固定小数点2進数 ● ● ● ● ● ● 8086形式符号なし固定小数点2進数 システム依存形式符号なし固定小数点2進数 IEEE形式浮動小数点2進数 M形式浮動小数点2進数 内部10進数 符号なし内部10進数 ● ● ● ● ● 外部10進数 符号なし外部10進数 外部10進形式2桁年号 内部10進形式2桁年号 10進形式2桁年号 符号なし2進数 1バイト中の任意のビットを取り出してキーフィールド、被比較フィールドまたは比較フィールドの 比較値として使用します。ビットの取り出しにはマスク値を使用します。マスク値とフィールドの値 の論理積を比較値にします。 固定小数点2進数 先頭1ビットを符号とした固定小数点2進数のフィールドです。固定小数点2進数の形式は、8086系MPU で使用されているLittle endianという形式と、Big endianの形式があります。単に固定小数点2進数 という場合、Big endianの形式です。 8086形式固定小数点2進数 8086系MPUで使用されている固定小数点2進数のフィールドです。この形式はLittle endianという呼 び名で知られています。 システム依存形式固定小数点2進数 システムの標準がBig endianの場合、固定小数点2進数を意味します。システムの標準がLittle endian の場合、8086形式固定小数点2進数を意味します。 符号なし固定小数点2進数 符号フラグをもたない固定小数点2進数です。8086系MPUで使用されているLittle endianという形式 と、Big endianの形式があります。単に符号なし固定小数点2進数という場合、Big endianの形式で す。 8086形式符号なし固定小数点2進数 8086系MPUで使用されている符号なし固定小数点2進数のフィールドです。この形式はLittle endian という呼び名で知られています。 17 第1章 PowerSORTの概要 システム依存形式符号なし固定小数点2進数 システムの標準がBig endianの場合、符号なし固定小数点2進数を意味します。システムの標準が Little endianの場合、8086形式符号なし固定小数点2進数を意味します。 IEEE形式浮動小数点2進数 指数部と仮数部で表現され、符号は指数部の先頭1ビットに設定される2進数の表現形式です。 M形式浮動小数点2進数 富士通の汎用計算機で用いられている浮動小数点2進数です。指数部と仮数部で表現され、符号は指 数部の先頭1ビットに設定される2進数の表現形式です。 内部10進数 1バイトに2桁の10進数を格納した10進数の表現形式です。 xx xx … xx xS x:0x0~0x9 S:[正の場合]0xa、0xc、0xe、0xf [負の場合]0xb、0xd(注) 注) 4ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号 として扱います。 符号なし内部10進数 PowerSORTでは、以下の2つの形式をサポートしています。 符号なし内部10進数(符号部あり) 1バイトに2桁の10進数を格納し、最終4ビットで符号なしを表した10進数の表現形式です。 xx xx … xx xS x:0x0~0x9 S:0xf(注) 注) 最終4ビットの値の正当性はチェックしません。 符号なし内部10進数(符号部なし) 1バイトに2桁の10進数を格納した符号部をもたない10進数の表現形式です。 xx xx … xx xx x:0x0~0x9 外部10進数 1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現形 式です。 3x 3x … 3x Sx 3:0x3 x:0x0~0x9 S:[正の場合]0x4 [負の場合]0x5(注) 注) 4ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号 として扱います。 符号なし外部10進数 1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した符号部をもたな い10進数の表現形式です。 18 1.7 フィールドとデータ形式 3x 3x … 3:0x3 x:0x0~0x9 3x 3x 外部10進形式2桁年号 環境変数BSORT_TOPYYの指定値に従って、2バイトの外部10進数を2桁年号として比較します。 内部10進形式2桁年号 環境変数BSORT_TOPYYの指定値に従って、2バイトの内部10進数を2桁年号として比較します。 10進形式2桁年号 環境変数BSORT_TOPYYの指定値に従って、1バイトの符号なし内部10進数を2桁年号として比較します。 ここで記述されているデータ形式の図は、入力ファイルのコード系がASCIIコード系(富士 通COBOL形式)の場合の形式です。 1.7.2.3 数字 数字の型には、以下の5つのデータ形式があります。 ● 符号なし数字 ● 前置別符号付数字 ● 後置別符号付数字 ● 前置オーバパンチ符号付数字 ● 後置オーバパンチ符号付数字 符号なし数字 符号なし外部10進数と同じ形式です。 前置別符号付数字 先頭の1バイトに符号部をもった、1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30 ~0x39)で格納した10進数の表現形式です。 SS 3x … 3x 3x 3:0x3 x:0x0~0x9 SS:[正の場合]0x2b [負の場合]0x2d(注) 注) 8ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号 として扱います。 後置別符号付数字 最後の1バイトに符号部をもった、1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30 ~0x39)で格納した10進数の表現形式です。 3x 3x … 3x SS 3:0x3 x:0x0~0x9 SS:[正の場合]0x2b [負の場合]0x2d(注) 注) 8ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号 として扱います。 19 第1章 PowerSORTの概要 前置オーバパンチ符号付数字 1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現形 式です。先頭の1バイトには、符号と数字を格納します。 Sx 3x … 3x 3x 3:0x3 x:0x0~0x9 S:[正の場合]0x4 [負の場合]0x5(注) 注) 4ビットで表す符号の位置に表中の正または負で記載した以外のコードが現れた場合、正の符号 として扱います。 後置オーバパンチ符号付数字 外部10進数と同じ形式です。 ここで記述されているデータ形式の図は、入力ファイルのコード系がASCIIコード系(富士 通COBOL形式)の場合の形式です。 1.7.3 各フィールドで指定可能なデータ形式 ここでは、各フィールドごとに指定できるデータ形式とその長さについて説明します。 ● キーフィールドに指定可能なデータ形式 ● 集約フィールドに指定可能なデータ形式 ● 選択フィールドに指定可能なデータ形式 ― 被比較フィールドと比較フィールドに指定可能なデータ形式 ― 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ ― 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ ● 再編成フィールドの自己規定値に指定可能なデータ形式 1.7.3.1 キーフィールドに指定可能なデータ形式 以下にキーフィールドで指定できるデータ形式とその長さについて示します。 表中のtypはbsortコマンド、bsortexコマンドおよびPowerSORT OCXで指定する場合に使用し、定義値 はBSORT関数で使用します。 バイナリファイルの場合 種類 文字 20 型 ASCIIコード typ 定義値 長さ(バイト) asc BSKEY_ASC 1~レコード長(注1) EBCDICコード(注2) ebc BSKEY_EBC 1~レコード長(注1) シフトJISコード(注3) sji BSKEY_SJI 1~レコード長(注1) JEFコード(注4) jef BSKEY_JEF 2~レコード長(注1) (2の倍数) Unicode UCS-2形式(注5) (システム標準のバイトオーダ) uc2 BSKEY_UCS2 2~レコード長(注1) (2の倍数) Big endian ― BSKEY_UCS2B 2~レコード長(注1) (2の倍数) Little endian ― BSKEY_UCS2L 2~レコード長(注1) (2の倍数) 1.7 フィールドとデータ形式 種類 数値 数字 typ 定義値 長さ(バイト) Unicode UTF-8形式(注5) 型 ut8 BSKEY_UTF8 1~レコード長(注1) 文字形式2桁年号(注6) yyc BSKEY_YYC 2または4(注7) 照合順序変更(注8) col BSKEY_COL 1~レコード長(注1) 符号なし2進数 bit BSKEY_BIT 1~8(ビット) 固定小数点2進数 fbi BSKEY_FBI 1~256 符号なし固定小数点2進数 ufb BSKEY_UFB 1~256 8086形式固定小数点2進数 fbl BSKEY_FBL86 1~256 8086形式符号なし固定小数点2進数 ufl BSKEY_UFB86 1~256 システム依存形式固定小数点2進数 fbm BSKEY_FBIM 1~256 システム依存形式符号なし固定小 数点2進数 ufm BSKEY_UFBM 1~256 IEEE形式浮動小数点2進数 ifl BSKEY_IFL 1~256 M形式浮動小数点2進数 mfl BSKEY_MFL 1~256 内部10進数 pdl BSKEY_PDL 1~256 符号なし内部10進数(符号部あり) (注8) pdf BSKEY_PDF 1~256 符号なし内部10進数(符号部なし) pdu BSKEY_PDU 1~256 外部10進数 zdl BSKEY_ZDL 1~256 符号なし外部10進数 zdu BSKEY_ZDU 1~256 外部10進形式2桁年号(注6) yyz BSKEY_YYZ 2 内部10進形式2桁年号(注6) yyp BSKEY_YYP 2 10進形式2桁年号(注6) yyd BSKEY_YYD 1 符号なし数字 azu BSKEY_AZU 1~256 前置別符号付数字 als BSKEY_ALS 2~256 後置別符号付数字 ats BSKEY_ATS 2~256 前置オーバパンチ符号付数字 alo BSKEY_ALO 1~256 後置オーバパンチ符号付数字 ato BSKEY_ATO 1~256 typ 定義値 長さ(バイト) ASCIIコード(注3) asc BSKEY_ASC 1~レコード長(注1) EBCDICコード(注3) ebc BSKEY_EBC 1~レコード長(注1) シフトJISコード(注3) sji BSKEY_SJI 1~レコード長(注1) Unicode UCS-2形式(注9) (システム標準のバイトオーダ) uc2 BSKEY_UCS2 2~レコード長(注1) (2の倍数) Big endian ― BSKEY_UCS2B 2~レコード長(注1) (2の倍数) Little endian ― BSKEY_UCS2L 2~レコード長(注1) (2の倍数) Unicode UTF-8形式(注10) ut8 BSKEY_UTF8 1~レコード長(注1) 文字形式2桁年号(注6) yyc BSKEY_YYC 2または4(注7) テキストファイルの場合 種類 文字 型 照合順序変更(注8) col BSKEY_COL 1~レコード長(注1) 注1) 入力ファイルのレコード再編成機能を指定した場合は、入力レコード再編成後のレコード長 まで指定できます。 注2) 入力ファイルのコード系がASCIIコード系またはEBCDICコード系の場合に指定できます。 注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。 注4) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。 注5) 入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。 注6) 環境変数BSORT_TOPYYで指定した値に従って年号処理を行います。 注7) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合、4バイトとなります。 21 第1章 PowerSORTの概要 注8) PowerSORT OCX使用時は指定できません。 注9) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。 注10) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。 1.7.3.2 集約フィールドに指定可能なデータ形式 以下に集約フィールドに指定可能なデータ形式とその長さについて示します。 表中のtypはbsortコマンド、bsortexコマンドおよびPowerSORT OCXで指定する場合に使用し、定義値 はBSORT関数で使用します。 バイナリファイルの場合 種類 数値 数字 (注2) typ 定義値 長さ(バイト) 固定小数点2進数 型 fbi BSKEY_FBI 1~8 符号なし固定小数点2進数 ufb BSKEY_UFB 1~8 8086形式固定小数点2進数 fbl BSKEY_FBI86 1~8 8086形式符号なし固定小数点2進数 ufl BSKEY_UFB86 1~8 システム依存形式固定小数点2進数 fbm BSKEY_FBIM 1~8 システム依存形式符号なし固定小 数点2進数 ufm BSKEY_UFBM 1~8 内部10進数 pdl BSKEY_PDL 1~16 符号なし内部10進数(符号部あり) (注1) pdf BSKEY_PDF 1~16 符号なし内部10進数(符号部なし) pdu BSKEY_PDU 1~16 外部10進数 zdl BSKEY_ZDL 1~18 符号なし外部10進数 zdu BSKEY_ZDU 1~18 符号なし数字 azu ― 1~18 前置別符号付数字 als ― 2~18 後置別符号付数字 ats ― 2~18 前置オーバパンチ符号付数字 alo ― 1~18 後置オーバパンチ符号付数字 ato ― 1~18 長さ(バイト) テキストファイルの場合 種類 文字 typ 定義値 ASCIIコード(注3) 型 asc BSKEY_ASC 1~(注4) Unicode UCS-2形式(注5) (システム標準のバイトオーダ) uc2 BSKEY_UCS2 2~(注4) (2の倍数) Big endian ― BSKEY_UCS2B 2~256 (2の倍数) Little endian ― BSKEY_UCS2L 2~256 (2の倍数) Unicode UTF-8形式(注6) ut8 BSKEY_UTF8 1~(注4) 注1) PowerSORT OCX使用時は指定できません。 注2) bsortexコマンド使用時に指定できます。 注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。 注4) bsortコマンド、PowerSORT OCXおよびBSORT関数使用時は256バイトまで、bsortexコマンド 使用時はレコード長まで指定できます。ただし、入力ファイルのレコード再編成機能を指定した 場合は、入力レコード再編成後のレコード長まで指定できます。 注5) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。 注6) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。 22 1.7 フィールドとデータ形式 1.7.3.3 選択フィールドに指定可能なデータ形式 レコード選択機能で指定する選択フィールドは、被比較フィールド、比較フィールドまたは自己規定 値、比較演算子の情報からなっています。 ここでは、被比較フィールド、比較フィールドおよび自己規定値に指定可能なデータ形式およびデー タ形式の組合せについて示します。 ● 被比較フィールドと比較フィールドに指定可能なデータ形式 ● 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ ● 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ 被比較フィールドと比較フィールドに指定可能なデータ形式 以下に被比較フィールドと比較フィールドに指定可能なデータ形式を示します。 表中のtypはbsortコマンド、bsortexコマンドおよびPowerSORT OCXで指定する場合に使用し、定義値 はBSORT関数で使用します。 バイナリファイルの場合 種類 文字 数値 数字 データ形式 typ 定義値 長さ(バイト) ASCIIコード(注1) asc BSKEY_ASC 1~256 EBCDICコード(注2) ebc BSKEY_EBC 1~256 シフトJISコード(注3) sji BSKEY_SJI 1~256 Unicode UCS-2形式(注1) (システム標準のバイトオーダ) uc2 BSKEY_UCS2 2~256 (2の倍数) Big endian ― BSKEY_UCS2B 2~256 (2の倍数) Little endian ― BSKEY_UCS2L 2~256 (2の倍数) Unicode UTF-8形式(注1) ut8 BSKEY_UTF8 1~256 文字形式2桁年号(注4) yyc ― 2または4(注5) 照合順序変更(注6) col BSKEY_COL 1~256 符号なし2進数 bit BSKEY_BIT 1~8(ビット) 固定小数点2進数 fbi BSKEY_FBI 1~256 符号なし固定小数点2進数 ufb BSKEY_UFB 1~256 8086形式固定小数点2進数 fbl BSKEY_FBI86 1~256 8086形式符号なし固定小数点2進数 ufl BSKEY_UFB86 1~256 システム依存形式固定小数点2進数 fbm BSKEY_FBIM 1~256 システム依存形式符号なし固定小 数点2進数 ufm BSKEY_UFBM 1~256 内部10進数 pdl BSKEY_PDL 1~256 符号なし内部10進数(符号部あり) (注6) pdf BSKEY_PDF 1~256 符号なし内部10進数(符号部なし) pdu BSKEY_PDU 1~256 外部10進数 zdl BSKEY_ZDL 1~256 符号なし外部10進数 zdu BSKEY_ZDU 1~256 内部10進形式2桁年号(注4) yyp ― 2 外部10進形式2桁年号(注4) yyz ― 2 10進形式2桁年号(注4) yyd ― 1 符号なし数字 azu BSKEY_AZU 1~256 前置別符号付数字 als BSKEY_ALS 2~256 後置別符号付数字 ats BSKEY_ATS 2~256 前置オーバパンチ符号付数字 alo BSKEY_ALO 1~256 後置オーバパンチ符号付数字 ato BSKEY_ATO 1~256 23 第1章 PowerSORTの概要 テキストファイルの場合 種類 文字 typ 定義値 長さ(バイト) ASCIIコード(注3) データ形式 asc BSKEY_ASC 1~256 シフトJISコード(注3) sji BSKEY_SJI 1~256 Unicode UCS-2形式(注7) (システム標準のバイトオーダ) uc2 BSKEY_UCS2 2~256 (2の倍数) Big endian ― BSKEY_UCS2B 2~256 (2の倍数) Little endian ― BSKEY_UCS2L 2~256 (2の倍数) Unicode UTF-8形式(注8) ut8 BSKEY_UTF8 1~256 文字形式2桁年号(注4) yyc ― 2または4(注5) 照合順序変更(注6) col BSKEY_COL 1~256 注1) 入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。 注2) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。 注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。 注4) bsortexコマンド使用時に指定できます。環境変数BSORT_TOPYYで指定した値に従って年号処 理を行います。 注5) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合、4バイトになります。 注6) PowerSORT OCX使用時は指定できません。 注7) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。 注8) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ 以下に被比較フィールドと比較フィールドに指定可能なデータ形式の組合せについて示します。 バイナリファイルの場合 種類 文字 数値 被比較フィールドのデータ形式 比較フィールドのデータ形式 ASCIIコード ASCIIコード EBCDICコード EBCDICコード シフトJISコード シフトJISコード Unicode UCS-2形式 (システム標準のバイトオーダ) Unicode UCS-2形式 (システム標準のバイトオーダ) Unicode UCS-2形式 (Big endian) Unicode UCS-2形式 (Big endian) Unicode UCS-2形式 (Little endian) Unicode UCS-2形式 (Little endian) Unicode UTF-8形式 Unicode UTF-8形式 文字形式2桁年号 文字形式2桁年号 内部10進形式2桁年号 外部10進形式2桁年号 10進形式2桁年号 照合順序変更 照合順序変更 符号なし2進数 符号なし2進数 固定小数点2進数 固定小数点2進数 8086形式固定小数点2進数 システム依存形式固定小数点2進数 24 1.7 フィールドとデータ形式 種類 被比較フィールドのデータ形式 比較フィールドのデータ形式 符号なし固定小数点2進数 符号なし固定小数点2進数 8086形式符号なし固定小数点2進数 システム依存形式符号なし固定小数点2 進数 8086形式固定小数点2進数 固定小数点2進数 8086形式固定小数点2進数 システム依存形式固定小数点2進数 8086形式符号なし固定小数点2進数 符号なし固定小数点2進数、 8086形式符号なし固定小数点2進数、 システム依存形式符号なし固定小数点2 進数 システム依存形式固定小数点2進数 固定小数点2進数 8086形式固定小数点2進数 システム依存形式固定小数点2進数 システム依存形式符号なし固定小数点2進 数 符号なし固定小数点2進数 8086形式符号なし固定小数点2進数 システム依存形式符号なし固定小数点2 進数 内部10進数 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) 外部10進数 符号なし外部10進数 符号なし内部10進数(符号部あり) 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) 外部10進数 符号なし外部10進数 符号なし内部10進数(符号部なし) 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) 外部10進数 符号なし外部10進数 外部10進数 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) 外部10進数 符号なし外部10進数 符号なし外部10進数 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) 外部10進数 符号なし外部10進数 内部10進形式2桁年号 文字形式2桁年号 内部10進形式2桁年号 外部10進形式2桁年号 10進形式2桁年号 25 第1章 PowerSORTの概要 種類 数字 被比較フィールドのデータ形式 比較フィールドのデータ形式 外部10進形式2桁年号 文字形式2桁年号 内部10進形式2桁年号 外部10進形式2桁年号 10進形式2桁年号 10進形式2桁年号 文字形式2桁年号 内部10進形式2桁年号 外部10進形式2桁年号 10進形式2桁年号 符号なし数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 前置別符号付数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 後置別符号付数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 前置オーバパンチ符号付数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 後置オーバパンチ符号付数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 テキストファイルの場合 種類 文字 26 被比較フィールドのデータ形式 比較フィールドのデータ形式 ASCIIコード ASCIIコード シフトJISコード シフトJISコード Unicode UCS-2形式 (システム標準のバイトオーダ) Unicode UCS-2形式 (システム標準のバイトオーダ) Unicode UCS-2形式 (Big endian) Unicode UCS-2形式 (Big endian) Unicode UCS-2形式 (Little endian) Unicode UCS-2形式 (Little endian) Unicode UTF-8形式 Unicode UTF-8形式 文字形式2桁年号 文字形式2桁年号 照合順序変更 照合順序変更 1.7 フィールドとデータ形式 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ 以下に被比較フィールドと自己規定値に指定可能なデータ形式の組合せについて示します。 バイナリファイルの場合 被比較フィールドのデータ形式 種類 文字 数値 数字 自己規定値 型 ASCIIコード 文字列、16進数 EBCDICコード 文字列、16進数 シフトJISコード 文字列 Unicode UCS-2形式 文字列、16進数 Unicode UTF-8形式 文字列、16進数 文字形式2桁年号 文字列、16進数、10進数 照合順序変更 文字列、16進数 符号なし2進数 10進数 固定小数点2進数 10進数 符号なし固定小数点2進数 10進数 8086形式固定小数点2進数 10進数 8086形式符号なし固定小数点2進数 10進数 システム依存形式固定小数点2進数 10進数 システム依存形式符号なし固定小数点2進数 10進数 内部10進数 10進数 符号なし内部10進数(符号部あり) 10進数 符号なし内部10進数(符号部なし) 10進数 外部10進数 10進数 符号なし外部10進数 10進数 内部10進形式2桁年号 10進数 外部10進形式2桁年号 10進数 10進形式2桁年号 10進数 符号なし数字 10進数 前置別符号付数字 10進数 後置別符号付数字 10進数 前置オーバパンチ符号付数字 10進数 後置オーバパンチ符号付数字 10進数 テキストファイルの場合 被比較フィールドのデータ形式 種類 文字 自己規定値 型 ASCIIコード 文字列、16進数 シフトJISコード 文字列 Unicode UCS-2形式 文字列、16進数 Unicode UTF-8形式 文字列、16進数 文字形式2桁年号 文字列、16進数、10進数 照合順序変更 文字列、16進数 1.7.3.4 再編成フィールドの自己規定値に指定可能なデータ形式 以下に再編成フィールドの自己規定値に指定可能なデータ形式とその長さを示します。 表中のtypはbsortコマンド、bsortexコマンドおよびPowerSORT OCXで指定する場合に使用します。 27 第1章 PowerSORTの概要 バイナリファイルの場合 自己規定値 文字列 16進数 10進数 typ 長さ(バイト) ASCIIコード(注1) 型 asc 1~256 EBCDICコード(注2) ebc 1~256 シフトJISコード(注3) sji 1~256 Unicode UCS-2形式(注1) uc2 2~256 (2の倍数) Unicode UTF-8形式(注1) ut8 1~256 ASCIIコード(注1) asc 1~256 EBCDICコード(注2) ebc 1~256 Unicode UCS-2形式(注1) uc2 2~256 (2の倍数) Unicode UTF-8形式(注1) ut8 1~256 固定小数点2進数 fbi 1~8 符号なし固定小数点2進数 ufb 1~8 8086形式固定小数点2進数 fbl 1~8 8086形式符号なし固定小数点2進数 ufl 1~8 システム依存形式固定小数点2進数 fbm 1~8 システム依存形式符号なし固定小数点2進数 ufm 1~8 内部10進数 pdl 1~16 符号なし内部10進数(符号部あり)(注4) pdf 1~16 符号なし内部10進数(符号部なし) pdu 1~16 外部10進数 zdl 1~18 符号なし外部10進数 zdu 1~18 符号なし数字 azu 1~18 前置別符号付数字 als 2~18 後置別符号付数字 ats 2~18 前置オーバパンチ符号付数字 alo 1~18 後置オーバパンチ符号付数字 ato 1~18 typ 長さ(バイト) ASCIIコード(注3) asc 1~256 シフトJISコード(注3) sji 1~256 Unicode UCS-2形式(注5) uc2 2~256 (2の倍数) Unicode UTF-8形式(注6) ut8 1~256 ASCIIコード(注3) asc 1~256 Unicode UCS-2形式(注5) uc2 2~256 (2の倍数) テキストファイルの場合 自己規定値 文字列 16進数 注1) 注2) 注3) 注4) 注5) 注6) 28 型 Unicode UTF-8形式(注6) ut8 入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。 入力ファイルのコード系がEBCDICコード系の場合に指定できます。 入力ファイルのコード系がASCIIコード系の場合に指定できます。 PowerSORT OCX使用時は指定できません。 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。 1~256 1.8 環境設定 1.8 環境設定 ここでは、PowerSORTが使用する作業域(メモリ)および一時ファイル量の見積もりについて説明しま す。 PowerSORTが使用する作業域(メモリ)の見積もり PowerSORTは、指定された範囲内の作業域を使用して処理を行ないます。指定が省略された場合は、 次のように作業域の大きさを決定します。 ● 入力がファイルの場合は、PowerSORTが適切な作業域を計算して使用します。 ● 入力がファイル以外の場合(標準入力を含む)は、8MBの作業域を使用します。 割り当てた作業域内にすべての入力レコードが読み込めた場合、一時ファイルを使用せずに作業域内 だけでソート処理を完了します(これをインコアソートといいます)。インコアソートは、一時ファイ ルへの入出力がないことなどから一般に処理時間が短くなります。このため、入力レコードの量に合 わせて適切な作業域の大きさを指定することで、処理時間の短縮が可能です。ただし、作業域の大き さの指定には次のような注意が必要です。 ● インコアソートを行うためには、入力レコードの全体量に対して少し多めの作業域(1.3 倍程度。ただし、キーの種類、使用する機能などにより大きくなる場合があります)を指 定します。 ● 使用可能な物理メモリ量を超えて作業域を指定すると、性能が悪化することがあるため、 使用可能な物理メモリ量を超えないように指定します。 [参照] ● 環境変数BSORT_MEMSIZE ● メモリサイズオプション(-y) ● 実行環境オプション(-option)のmemsizeオペランド ● bsrtopen関数におけるBSRTPRIM構造体のmemory_size PowerSORTが使用する一時ファイル量の見積もり PowerSORTは、ソート処理を行う際に一時ファイルを作成します。作成する一時ファイル量の概算式 を以下に示します。なお、PowerSORTの作業域が入力データ量に対して充分与えられなかった場合、 オプション機能を使用している場合または漢字ソートマージ機能を使用している場合には、以下の概 算式を超えることがあるため、一時ファイルを作成するフォルダには、充分な空きスペースのあるド ライブおよびフォルダを指定してください。 一時ファイル量=(管理領域+キー長+レコード長)×レコード件数 ● ● ● ● 管理領域:PowerSORTの管理領域。固定値12。 レコード長:指定したレコード長を4の倍数に調整した値。 レコード件数:入力レコード件数。 キー長:指定した各キーフィールドの長さを4の倍数に調整した値の総計。 [参照] ● 環境変数BSORT_TMPDIR ● 実行環境オプション(-option)のtmpdirオペランド ● bsrtopen関数におけるBSRTFILE構造体のtmpfile_tbl 29 第2章 PowerSORTの使い方 ここでは、PowerSORTの実行方法について説明します。 PowerSORTの実行方法には、以下の方法があります。 ● コマンド(bsortコマンド、bsortexコマンド)を使用する方法 ● OCXを使用してPowerSORTを使用する方法 ● COBOLプログラムから使用する方法 ● C言語プログラムから使用する方法 コマンド(bsortコマンド、bsortexコマンド)を使用する方法 サーバで行うバッチ処理などにコマンドを組み込んで、PowerSORTを使用することができます。 コマンドには、bsortコマンドとbsortコマンドを拡張したbsortexコマンドがあります。 bsortコマンドとbsortexコマンドの機能差について bsortexコマンドは、bsortコマンドの機能を拡張したコマンドです。bsortexコマンドだけで可能な 機能は以下のとおりです。ただし、処理定義ファイルオプション(-P)は、bsortコマンドだけで使用 できる機能です。この機能を使用する場合は、bsortコマンドを使用してください。 ● ファイルの分割出力機能(-outputオプションのmaxfilesizeオペランド、maxrecnumオペ ランド) 出力するデータを複数のファイルへ分割して出力できます。ひとつのファイルに出力する 大きさは、ファイルサイズやレコード件数で指定できます。 ● 出力ファイルに対する選択機能(-outputオプションのincludeオペランド、omitオペラン ド、caseオペランド) 出力ファイルごとに出力するレコードの条件を指定して、条件別にファイルを分けて出力 できます。 ● 出力ファイルに対する再編成機能(-outputオプションのreconstオペランド) 入力時点のレコード再編成に加えて、出力ファイルへレコードを書き込む直前にもレコー ド再編成ができます。 ● レコード集約機能およびサプレス機能における特定レコード出力機能(-summaryオプシ ョン) レコード集約機能およびサプレス機能では、キー値の等しい複数レコードの先頭レコード または最終レコードに結果を残すことができます。 ● EOF制御文字をファイルの最後と認識する機能(-inputオプションのeofオペランド) 入力ファイルがテキストファイルの場合、EOF制御文字をファイルの最後と認識するか否 かを指定することができます。 OCXを使用してPowerSORTを使用する方法 PowerSORTのOCXをフォームに配置して、必要なプロパティを設定することにより、PowerSORTを使用 することができます。 なお、PowerSORTのOCXを使ってソートマージ処理を行うには、PowerSORTがインストールされている 必要があります。PowerSORTのOCXは、デザイン時にはフォーム上に表示され、実行時には非表示とな ります。 詳細はOCXを使用してPowerSORTを使用するを参照してください。 COBOLプログラムから使用する方法 富士通のNetCOBOL、PowerCOBOL97、COBOL97およびCOBOL85などで作成したCOBOLプログラムから PowerSORTを使用することができます。 詳細はCOBOLプログラムからPowerSORTを使用するを参照してください。 C言語プログラムから使用する方法 C言語プログラムにBSORT関数を組み込んでPowerSORTを使用することができます。BSORT関数には、5 つの関数があり、それらの関数を組み合わせて、PowerSORTの各機能を実行します。 詳細はC言語プログラムからPowerSORTを使用するを参照してください。 31 第3章 PowerSORTのbsortコマンドを使用する ここでは、bsortコマンドについて説明します。 bsortコマンドをバッチ処理などに組み込むことで、大量データの高速ソートマージ処理を実現でき ます。 3.1 bsortコマンドの形式 3.1 bsortコマンドの形式 bsortコマンドは、テキストファイルおよびバイナリファイルのデータに対して、ソート処理、マー ジ処理またはコピー処理を行います。指定された処理が正常に終了した場合は、0の終了コードを返 します。エラーが発生した場合は、0以外の終了コードを返します。 bsortコマンドには、使用する機能により4つの記述形式があります。それぞれ、指定できるオプショ ンに違いがありますので、使用する機能に合わせて適切なオプションを指定してください。 bsortコマンド記述上の注意事項 ● ● ● ● ● 角括弧( [ ] )で囲まれた字句は省略可能です。 中括弧( { } )は棒線( | )で区切られた字句の選択を示します。 斜体は、必要に応じて利用者が値を設定します。 ...は繰り返し指定できることを示します。 オプション引数をもたないオプション( -s、-m、-c、-h、-f、-u、-w、-v、-r)は、連続 して指定できます。 例) -sf ● コンマ( , )で区切って指定するオプション引数は、オプション引数全体をダブルクォー テーション( " )で囲み、コンマ( , )の代わりに空白で区切っても指定できます。 例) -p "sel-def sel-def..." 3.1.1 ソート機能を使用する場合 以下にソート機能を使用する場合のコマンド形式を示します。 bsort [ [ { [ [ [ [ [ [ { [ { [ [ [ [ -s ] [ -h ] [ -v ] -z recsize [ -Z recform ] -l msglevel ] [ -y memsize ] [ -G msgfile ] [ -key-def [ ,key-def...] ] | [ -r ] } -M kanji-def [ ,kanji-def...] ] -T { flt | fix }[ ,{ n | w | N } bdij ] ] -t chars ] [ -L line-delimiter ] -R skiprec-no [ ,skiprec-no...] ] -p sel-def [ ,sel-def...] ] -e recon-def [ ,recon-def...] ] [ -f ] | [ -u ] | [ -g sum-def [ ,sum-def...] ] } -a argfile ] -w | -o outfile [ -o outfile...] } -F ofs,ifs [ /ownername ] [ ,ifs [ /ownername ]...] ] -I flg ] [ -X index-def [ ,index-def...] ] infile [ infile...] ] [ -q cdmode ] [ -Q altmode ] -x col-def [ ,col-def...] ] 3.1.2 マージ機能を使用する場合 以下にマージ機能を使用する場合のコマンド形式を示します。 33 第3章 PowerSORTのbsortコマンドを使用する bsort -m [ -h ] -z recsize [ -Z recform ] [ -l msglevel ] [ -y memsize ] [ -G msgfile ] { [ -key-def [ ,key-def...] ] | [ -r ] } [ -M kanji-def [ ,kanji-def...] ] [ -T { flt | fix }[ ,{ n | w | N } bdij ] ] [ -t chars ] [ -L line-delimiter ] [ -R skiprec-no [ ,skiprec-no...] ] [ -p sel-def [ ,sel-def...] ] [ -e recon-def [ ,recon-def...] ] { [ -u ] | [ -g sum-def [ ,sum-def...] ] } [ -a argfile ] { -w | -o outfile [ -o outfile...] } [ -F ofs,ifs [ /ownername ] [ ,ifs [ /ownername ]...] ] [ -I flg ] [ -X index-def [ ,index-def...] ] infile [ infile...] [ -q cdmode ] [ -Q altmode ] [ -x col-def [ ,col-def...] ] 3.1.3 コピー機能を使用する場合 以下にコピー機能を使用する場合のコマンド形式を示します。 bsort -c [ -h ] -z recsize [ -Z recform ] [ -l msglevel ] [ -y memsize ] [ -G msgfile ] [ -T { flt | fix } ] [ -t chars ] [ -L line-delimiter ] [ -R skiprec-no [ ,skiprec-no...] ] [ -p sel-def [ ,sel-def...] ] [ -e recon-def [ ,recon-def...] ] [ -a argfile ] { -w | -o outfile [ -o outfile...] } [ -F ofs,ifs [ /ownername ] [ ,ifs [ /ownername ]...] ] [ -I flg ] [ -X index-def [ ,index-def...] ] [ infile [ infile...] ] [ -x col-def [ ,col-def...] ] 3.1.4 処理定義ファイルを使用する場合 以下に処理定義ファイルを使用する場合のコマンド形式を示します。 bsort 34 -P ProcDef-file 3.2 bsortコマンドオプション 3.2 bsortコマンドオプション ここでは、bsortコマンドの各オプションについて説明します。 3.2.1 アーギュメントファイルオプション(-a) アーギュメントファイルを指定します。 アーギュメントファイルは、bsortコマンドの各種オプション引数を記述したテキストファイルです。 アーギュメントファイルは、固定のオプション引数を別途指定しておきたい場合や、コマンドのオプ ション引数が長くなる場合などで使用します。 記述形式 -a argfile argfile アーギュメントファイルを指定します。 他のオプション引数とアーギュメントファイルオプションを同時に指定した場合、アーギュメントフ ァイルオプションを指定した位置に、アーギュメントファイルで記述したオプション引数が展開され ます。アーギュメントファイルオプションは複数指定できます。 アーギュメントファイルには、オプション引数を複数の行に記述できます。ただし、各オプション引 数の途中で改行することはできません。 アーギュメントファイルにアーギュメントファイルオプションは指定できません。アーギュメントフ ァイルには、bsortコマンドのオプション引数だけを記述します。 アーギュメントファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテー ション( " )で囲みます。 記述例 以下にアーギュメントファイルの記述例を示します。 -s -z200 -32.12pdla,25.4fbia↓ -p 25.4fbi.ge.d35↓ -o bsortout↓ sortin↓(注) 注)↓印は復帰改行コード<CR><LF>を示しています。 argfile の展開例 アーギュメントファイル(argfile)には、以下の内容が記述されているものとします。 -s –z100 例1) bsort infile1 -a argfile –ooutfile1 と指定した場合、以下の指定と同じです。 bsort infile1 -s -z100 -ooutfile1 例2) bsort infile2 -z70 -a argfile -ooutfile2 と指定した場合、以下の指定と同じです。 bsort infile2 -z70 -s -z100 –ooutfile2 この場合、重複指定不可の-zオプションが2つ指定されているため、エラーになります。 35 第3章 PowerSORTのbsortコマンドを使用する 3.2.2 再編成フィールドオプション(-e) レコード再編成機能を使用する場合に再編成フィールドを指定します。 再編成フィールドに指定したフィールドは、出力レコードの先頭から順に詰めて出力します。レコー ド再編成機能を使用する場合、キーフィールドと集約フィールドにはレコード再編成後のフィールド 位置を指定します。 記述形式 -e recon-def [ ,recon-def ...] recon-def の記述形式 recon-def の記述形式には、以下の3つの形式があります。 recon-def の記述形式1 pos.len 記述形式1では、入力レコードのフィールドを指定します。 指定したフィールドが入力のレコードに存在しない場合は、エラーになります。 recon-def の記述形式2 self.len typ 記述形式2では、自己規定値を指定します。 recon-def の記述形式3 pos.END 記述形式3では、入力レコードの指定位置から終端までを再編成フィールドに指定します。 指定したフィールドが入力のレコードに存在しない場合は、エラーになります。 pos 再編成フィールドの位置をバイト数で指定します。 バイナリファイルと、テキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバ イト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番 号を指定します。 len 再編成フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた ときは、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 記述形式1の指定では、長さの制限はありません。記述形式2で指定可能なデータ形式ごとの長さにつ いては、再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。 self 自己規定値を指定します。 self の記述形式を以下に示します。自己規定値の注意事項については、recon-def 記述上の注意事 項を参照してください。 self の記述形式1 '文字列 ' self の記述形式2 x16進数 36 3.2 bsortコマンドオプション self の記述形式3 d10進数 typ 自己規定値のデータ形式を指定します。 指定可能なデータ形式については、再編成フィールドの自己規定値に指定可能なデータ形式を参照し てください。 END 'END'の固定文字列を指定します。 recon-def 記述上の注意事項 ● オプション引数で自己規定値の文字列を指定する場合は、オプション引数全体をダブルク ォーテーション( " )で囲みます。 ● オプション引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する 場合は、ダブルクォーテーション( " )の前に円記号( \ )を指定します。 ● オプション引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、 クォーテーション( ' )を2つ続けて指定します。 ● 自己規定値の10進数を指定する場合は、符号を指定できます。 ● ASCIIコードおよびシフトJISコードは、バイナリファイルの場合、入力コード系オプショ ン(-q)がEBCDICコード系以外の場合に指定できます。テキストファイルの場合、入力コー ド系オプション(-q)がASCIIコード系の場合に指定できます。 ● EBCDICコードは、入力コード系オプション(-q)がEBCDICコード系の場合に指定できます。 ● Unicode UCS-2形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDIC コード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション (-q)がUnicode系(UCS-2形式)の場合に指定できます。 ● Unicode UTF-8形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDIC コード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション (-q)がUnicode系(UTF-8形式)の場合に指定できます。 ● テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むこ とはできません。 ● テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列また はレコード分離文字を含むことはできません。 ● 自己規定値で指定した値とlen で指定した長さが異なるときは、以下に示すように処理し ます。 ― 自己規定値が文字列の場合 — 自己規定値で指定した文字列の長さがlen で指定した長さより短い場合は、 自己規定値を左詰めにして右余白に空白を詰めます。 — 自己規定値で指定した文字列の長さがlen で指定した長さより長い場合は、 エラーとなります。 ― 自己規定値が数字または数値の場合 — 自己規定値で指定した値を typ と len で指定したデータ形式と長さに変換 して埋め込みます。 — 変換結果がlen を超える場合は、エラーとなります。 ● 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号 なし固定小数点2進数、システム依存形式固定小数点2進数、システム依存形式符号なしの 自己規定値を10進数で指定する場合、その値は以下の範囲になります。 37 第3章 PowerSORTのbsortコマンドを使用する 長さ 符号ありのデータ形式 符号なしのデータ形式 1バイト -128~127 0~255 2バイト -32768~32767 0~65535 3バイト -8388608~8388607 0~16777215 -2147483648~2147483647 0~4294967295 4バイト以上 記述例 例1) 入力レコードの5バイトめから10バイトのフィールドを再編成する場合は、次のように指定し ます。 -e 4.10 例2) 自己規定値の文字列(abc)を指定する場合は、以下のように指定します。 -e "'abc'.3asc" 例3) 入力レコードの5バイトめからレコードの最後までを再編成する場合は、以下のように指定し ます。 -e 4.END 3.2.3 入出力ファイルシステムオプション(-F) 入力ファイルと出力ファイルのファイルシステムを指定します。 記述形式 -F ofs,ifs [/ownername] [ ,ifs [/ownername] ...] ofs 出力ファイルのファイルシステムを指定します。 ファイルシステムは識別子で指定します。詳細は指定可能なファイルシステムを参照してください。 ifs 入力ファイルのファイルシステムを指定します。 ファイルシステムは識別子で指定します。詳細は指定可能なファイルシステムを参照してください。 入力ファイルのファイルシステムは、入力ファイルごとに指定できます。 複数のファイルシステムを指定する場合は、コンマ( , )で区切って入力ファイルの指定順に指定し ます。入力ファイルの数がファイルシステムで指定した数より多い場合、ファイルシステムに指定し た最後のファイルシステムが残りの入力ファイルに適用されます。入力ファイルの数がファイルシス テムで指定した数より少ない場合、余分に指定したファイルシステムは無視されます。 ownername Btrieveファイルで必要な場合には、ownernameに最大8文字までのオーナーネームを指定します。オ ーナーネームでは、大文字と小文字が区別されます。 指定可能なファイルシステム 指定可能なファイルシステムを以下に示します。 38 3.2 bsortコマンドオプション 識別子 ファイルシステムの説明 dos システムの標準ファイルシステム(省略値) cobseq 富士通COBOLファイルシステム(順ファイル) cobs64 富士通COBOLファイルシステム(BSAM対応順ファイル) cobrel 富士通COBOLファイルシステム(相対ファイル) cobidx 富士通COBOLファイルシステム(索引ファイル) mfcseq Micro Focus COBOLファイルシステム(順ファイル) mfcrel Micro Focus COBOLファイルシステム(相対ファイル) mfcidx Micro Focus COBOLファイルシステム(索引ファイル) btrv Btrieveファイルシステム rdm RDMファイルシステム 指定可能なファイルシステムに関する注意事項 ● PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、ア クセスすることができません。また、富士通COBOLファイルシステム(索引ファイル)を指 定した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもアクセ スすることができません。共用モード、排他モードについては、お使いの富士通COBOLフ ァイルシステムのマニュアルを参照してください。 ● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定しても、使用する富士通COBOL ファイルシステムが対応していない場合は富士通COBOLファイルシステム(順ファイル)と して動作します。BSAM対応については、お使いの富士通COBOLファイルシステムのマニュ アルを参照してください。 ● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定した場合は、富士通COBOLファ イルシステムの仕様によりレコード排他処理が行われません。 ● Micro Focus COBOLファイルシステム(索引ファイル)およびBtrieveファイルシステムは、 入力ファイルのファイルシステムとしてのみ指定可能です。 ● データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイル に指定することはできません。 3.2.4 先入力先出力(FIFO)機能オプション(-f) 先入力先出力(FIFO)機能を指定します。 指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。この機能はソ ート機能のときに有効です。この機能を指定していない場合、キーフィールドの値が同一なレコード の出力順序は不定です。先入力先出力(FIFO)機能は、サプレス機能(-u)とレコード集約機能(-g)とは 排他関係にあります。 記述形式 -f 3.2.5 メッセージファイルオプション(-G) メッセージを出力するファイルパス名を指定します。 記述形式 -G msgfile 39 第3章 PowerSORTのbsortコマンドを使用する msgfile メッセージを出力するファイルパス名を指定します。 メッセージファイルオプションを省略した場合は、環境変数BSORT_MSGFILEを指定していればそのフ ァイルに出力します。メッセージファイル以外へのメッセージの出力は環境変数BSORT_MSGOUTの指定 に従います。メッセージファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルク ォーテーション( " )で囲みます。 メッセージファイルオプション(-G)は、環境変数BSORT_MSGFILEの指定より優先されます。 3.2.6 集約フィールドオプション(-g) レコード集約機能を使用する場合に集約フィールドを指定します。 指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1つのレコードにします。 集約対象となったレコードのうち、どのレコードが出力されるかは不定です。テキストファイルの場 合は、ASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式で記述された数字(半角)だけを処 理の対象とします。 この機能はソート機能とマージ機能の場合に有効です。レコード集約機能は、先入力先出力(FIFO) 機能(-f)とサプレス機能(-u)とは排他関係にあります。 記述形式 -g sum-def [ ,sum-def ...] sum-defの記述形式 pos.len typ [opt ] pos 集約フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号 を指定します。 len 集約フィールドの長さをバイト数で指定します。 詳細は集約フィールドに指定可能なデータ形式を参照してください。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた ときは、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、指定したフィールド長に拡張して処理します。 typ 集約フィールドのデータ形式を指定します。 詳細は集約フィールドに指定可能なデータ形式を参照してください。 opt テキストファイルの場合に集約フィールドの出力形式を指定します。バイナリファイルの場合に指定 するとエラーとなります。 指定可能な出力形式を以下に示します。 40 3.2 bsortコマンドオプション opt i 意味 集約フィールドの値に符号をつけます。uとは排他関係にあります。 u 集約フィールドの値が負の値の場合だけ符号(-)をつけます。iとは排他関 係にあります。 z 集約フィールドの値がフィールド長に満たない場合、左余白に'0'を詰め ます。例えば、集約フィールドの値が1234という4桁の数字であり、集約 フィールド長が6バイトの場合、001234という数字にします。b、dとは排 他関係にあります。 b 集約フィールドの値がフィールド長に満たない場合、左余白に空白を詰め ます。例えば、集約フィールドの値が1234という4桁の数字であり、集約 フィールド長が6バイトの場合、__1234(_は空白を表わす)という数字にし ます。z、dとは排他関係にあります。 d 集約フィールドの先頭から空白、タブおよび'0'を削除します。集約フィ ールドの先頭に空白、タブおよび'0'がある場合、左から評価し、'0'以外 の数字が出現するまでの空白、タブおよび'0'を削除します。例えば、 '00123'の場合、'123'という数字にします。ただし、集約フィールドが0(0、 0000、+000など)の場合、最後の'0'は削除されません。テキストファイル 浮動フィールド指定の場合に指定可能です。z、bとは排他関係にあります。 記述例 入力レコードの7バイトめから8バイトの内部10進数のフィールドを集約フィールドに指定する場合 は、次のように指定します。 -g 6.8pdl 集約フィールド指定時の注意事項 ● 集約処理対象となったレコードのうち、どのレコードが集約結果と共に出力されるレコー ドとなるかは不定です。 ● 集約フィールドは、キーフィールドおよび他の集約フィールドと重ならないように指定し ます。また集約フィールドは、レコード内に完全に含まれている必要があります。 ● レコード集約機能を使用する場合、キーフィールドの指定は省略できません。 ● 集約フィールドの加算処理中にオーバフローが生じた場合の動作は、環境変数 BSORT_SUMOVERCONTの指定によります。 ● 小数点を含む数字の集約はできません。 テキストファイルについての注意事項 ● テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式 で記述された数字(半角)だけを処理の対象とします。 ● テキストファイル浮動フィールド指定の場合、集約結果は指定されたフィールド長で処理 されます。指定したフィールド長よりフィールドが長い場合、数字の左から指定フィール ド長分が有効となります。逆に指定したフィールド長よりフィールドが短い場合、指定し たフィールド長に拡張して処理します。 ● テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現 れたことにより集約フィールドの位置が変わる場合は、正しく動作しません。 ● optのdは、テキストファイル浮動フィールド指定の場合に指定可能です。テキストファイ ル固定フィールド指定の場合はエラーになります。 ● optのiを指定し、集約した値が0になった場合は符号(+)を付けます。 ● optのbを指定し、符号がつく場合、符号は数字部の直前に付加されます。 ● optのiおよびuを省略した場合は、以下のように処理します。 41 第3章 PowerSORTのbsortコマンドを使用する ― 集約結果が負の値の場合は、集約結果に符号(-)をつけます。 ― 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を つけません。 ― 符号なしデータ同士を集約した場合は、集約結果に符号をつけません。 ― 符号なしデータと符号付きデータを集約して、結果が0の場合は、符号をつけませ ん。 ― 符号付きデータ同士を集約した場合は集約結果に符号をつけます。集約した結果が 0の場合は、符号(+)を付けます。 ● 集約フィールドの値に符号をつける場合、集約フィールドの値が集約フィールド長を満た しており、符号が付けられないときはオーバフローとなります。 ● optのzおよびbを省略した場合は、以下のように処理します。 ― 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果 が満たない場合は、集約フィールドの左余白に'0'を詰めます。 — 左余白に'0'が詰められているデータ同士のとき — 左余白に'0'が詰められているデータと左余白に空白が詰められているデー タのとき — 左余白に'0'が詰められているデータと左余白にタブが詰められているデー タのとき ― 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果 が満たない場合は、集約フィールドの左余白に空白を詰めます。 — 左余白に空白が詰められているデータ同士のとき — 左余白にタブが詰められているデータ同士のとき — 左余白に空白が詰められているデータと左余白にタブが詰められているデ ータのとき ● 集約対象でないレコード(キーフィールドの値が同一である他のレコードが存在しないレ コード)の集約フィールドは、以下のように処理します。 ― optの指定がある場合は、optで指定された形式で出力します。 ― optの指定がない場合は、入力されたままの形式で出力されます。 3.2.7 ヘルプオプション(-h) bsortコマンドのコマンド形式の一覧を表示します。 他のオプションと共に指定された場合は、指定されたオプションのチェックを行い、エラーがあった 場合はエラーメッセージを出力します。 このオプションが指定されている場合は、PowerSORTの処理は行われません。 記述形式 -h 3.2.8 インデックス作成方法オプション(-I) 富士通COBOLファイルシステムの索引ファイルにおける、インデックスの作成方法を指定します。 記述形式 -I flg flg 次のものから選択して指定します。複数指定する場合は、続けて指定します。 42 3.2 bsortコマンドオプション flg 意味 c インデックスに圧縮キー指定を示します。 r レコードのデータ圧縮指定を示します。 3.2.9 入力ファイルオプション(infile) 入力ファイルパス名を指定します。 記述形式 infile [ infile ...] infile 入力ファイルのファイルパス名を指定します。 入力ファイルは複数指定できます。入力ファイルを複数指定する場合は、入力ファイルオプションを 複数指定します。入力ファイルパス名に半角空白が含まれる場合は、入力ファイルパス名をダブルク ォーテーション( " )で囲みます。入力ファイルオプションが省略された場合は、標準入力からレコ ードを読み込みます。ただし、マージ機能では標準入力からレコードを読み込むことはできません。 記述例 半角空白を含む入力ファイルパス名は、次のように記述します。 "c:\in files\sortin01" 3.2.10 キーフィールドオプション(-key-def) キーフィールドを指定します。 1つのキーフィールドは、位置、長さ、データ形式および操作で構成されます。 複数のキーフィールドを指定した場合、指定した順に比較が行われます。複数のキーフィールドを指 定する場合は、キーフィールドをコンマ( , )で区切って指定します(-key-def,key-def)。また、1 つ前のキーフィールドの指定に続けて指定(-key-def key-def)したり、キーフィールドオプションを 複数指定することもできます(-key-def -key-def)。 キーフィールドの指定を省略すると、レコード全体をキーフィールドとみなしてコードの昇順に並べ ます。キーフィールドを省略して降順に並べる場合は、降順オプション(-r)を使用します。 記述形式 -key-def [ ,key-def ...] key-def の記述形式 pos.len typ opt pos キーフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号 を指定します。 len キーフィールドの長さをピリオド( . )に続けて指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも実際のフィールドが長い ときは、ここで指定した長さで処理します。指定したフィールド長よりも実際のフィールドが短い場 43 第3章 PowerSORTのbsortコマンドを使用する 合は、実際のフィールド長で処理されます。 typ に符号なし2進数を指定する場合は、len にはマスク値を10進数で指定します。フィールド値と マスク値の論理積をキー値にします。例えば、符号なし2進数を指定する場合、フィールド値が0x8e、 マスク値が3(0x03)のとき、キー値は0x02になります。 指定可能なデータ形式ごとの長さについては、キーフィールドに指定可能なデータ形式を参照してく ださい。 typ キーフィールドのデータ形式をlenに続けて指定します。 指定可能なデータ形式については、キーフィールドに指定可能なデータ形式を参照してください。 opt キーフィールドの操作をtyp に続けて指定します。 複数の操作を指定する場合は、続けて記述します。バイナリファイルの場合は、a、m、rおよびwが指 定できます。テキストファイルの場合は、全てのキーフィールドの操作が指定できます。aとrを両方 とも省略した場合は、aを指定したものとして動作します。指定可能な操作を以下に示します。 キーフィールドの操作の種類 opt 意味 a 昇順に並べます。rとは排他関係にあります。 b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象とします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 m 漢字ソートマージ機能を使用します。 対応する漢字ソートマージオプション(-M)が必要となります。mを指定し た場合は、a、b、rの操作だけが有効となり、他の指定は無視します。漢 字ソートマージ機能で指定可能なデータ形式は、ASCIIコード、シフトJIS コードおよびJEFコードです。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。デー タ形式がASCIIコード、EBCDICコード、Unicode UCS-2形式またはUnicode UTF-8形式の場合に指定できます。 Nおよびwとは排他関係にあります。 N 英字と数字の連結データ(例えば、data123など)を英字と数値に分けて評 価し並べます。 英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比 較します。指定フィールドの左から評価し、有効データ後に出現したデー タは無視します。データ形式がASCIIコード、EBCDICコード、Unicode UCS-2 形式またはUnicode UTF-8形式の場合に指定できます。 nおよびwとは排他関係にあります。 r 降順に並べます。aとは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較して並べます。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式または Unicode UTF-8形式で、入力コード系オプション(-q)がEBCDICコード系以 外の場合に指定できます。 nおよびNとは排他関係にあります。 キーフィールドのデータ形式に照合順序変更を指定した場合、キーフィールドの操作にa 44 3.2 bsortコマンドオプション またはr以外を指定することはできません。 記述例 レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる場合は、次のように指定し ます。 -0.10asca 3.2.11 レコード分離文字オプション(-L) テキストファイル内の各レコードの分離文字列を指定します。 テキストファイルのときに有効です。 記述形式 -L line-delimiter line-delimiter テキストファイル内のレコード分離文字列を指定します。 指定可能なレコード分離文字列を以下に示します。 line-delimiter 意味 cl CRLFをレコードの分離文字として扱います。(省略値) cr CRをレコードの分離文字として扱います。 lf LFをレコードの分離文字として扱います。 3.2.12 メッセージレベルオプション(-l) どのようなメッセージを出力するかを指定します。 記述形式 -l msglevel msglevel 出力するメッセージのレベルを指定します。 メッセージの出力先は、環境変数BSORT_MSGOUT、環境変数BSORT_MSGFILEおよびメッセージファイル オプション(-G)の指定により決まります。 指定可能なメッセージのレベルを以下に示します。 msglevel 意味 0 何も出力しません。 1 エラーメッセージを出力します。(省略値) 2 エラーメッセージと情報メッセージを出力します。 ● 何も出力しないと指定した場合でも、コマンドシンタックスのエラーとコマンドヘルプは 標準エラー出力に出力します。 ● メッセージレベルオプション(-l)は、環境変数BSORT_MSGLEVELの指定より優先されます。 45 第3章 PowerSORTのbsortコマンドを使用する 3.2.13 漢字ソートマージオプション(-M) 漢字ソートマージ機能を使用する場合に、漢字フィールドおよびふりがなフィールドを指定します。 記述形式 -M kanji-def [ ,kanji-def ...] kanji-def の記述形式 form [odr][ pos.len typ ] form 漢字ソートマージ機能の方式を指定します。指定可能な方式を以下に示します。 form 意味 std 基本方式(漢字属性の順)に並べます。ふりがなフィールドの指定は必要あ りません。 dic 国語辞典方式(ふりがなの順)に並べます。ふりがなフィールドの指定が必 要となります。 odr 漢字フィールドの漢字属性を指定します。 漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで続け て指定できます。 指定可能な漢字属性を以下に示します。 odr 意味 B 部首コード順に並べます。 S 総画数順に並べます。 O 音読み順に並べます。 K 訓読み順に並べます。 C 漢字コード順に並べます。 pos ふりがなフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号 を指定します。 len ふりがなフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 typ ふりがなフィールドのデータ形式をlen に続けて指定します。 指定可能なデータ形式を以下に示します。 46 3.2 bsortコマンドオプション バイナリファイルの場合 種類 文字 データ形式 typ 長さ(バイト) ASCIIコード asc 1~レコード長(注1) EBCDICコード(注2) ebc 1~レコード長(注1) シフトJISコード sji 1~レコード長(注1) JEFコード(注2) jef 2~レコード長(2の倍数) (注1) テキストファイルの場合 種類 文字 データ形式 ASCIIコード typ asc 長さ(バイト) 1~レコード長(注1) シフトJISコード sji 1~レコード長(注1) 注1) レコード再編成機能を指定した場合は、レコード再編成後のレコード長まで指定できます。レ コード再編成機能については、再編成フィールドオプション(-e)を参照してください。 注2) 入力コード系オプション(-q)の指定がEBCDICコード系の場合に指定できます。 3.2.14 出力ファイルオプション(-o) 出力ファイルのファイルパス名を指定します。 記述形式 -o outfile [ -o outfile ...] outfile 出力ファイルのファイルパス名を指定します。 標準出力オプション(-w)と同時に指定された場合は、出力ファイルオプション(-o)が優先されます。 出力ファイルパス名に半角空白が含まれる場合は、出力ファイルパス名をダブルクォーテーション ( " )で囲みます。 出力ファイルオプション(-o)を複数指定することで、出力ファイルが許容量を超えた場合にリカバリ 処理として複数のファイルに分割して出力できます。そのため、複数のファイルを指定する場合は、 別ドライブに配置するようにしてください。この複数ファイルへの出力は以下のファイルを処理する 場合に指定できます。 ● システム標準のファイル(テキストファイル、バイナリファイル) 記述例 半角空白を含む出力ファイルパス名の記述例を示します。 -o "c:\out files\sortout" 3.2.15 処理定義ファイルオプション(-P) 処理定義ファイルを指定します。 PowerSORT V2.0以前およびPowerSORT Workstation等の製品に付属されているPowerSORT GUIでは、指 定したオプション情報を処理定義ファイルに保存できます。この処理定義ファイルのオプション情報 に従ってbsortコマンドを実行できます。 記述形式 -P ProcDef-file ProcDef-file 処理定義ファイルを指定します。 47 第3章 PowerSORTのbsortコマンドを使用する 処理定義ファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション ( " )で囲みます。 記述例 処理定義ファイルオプションは、他のオプションと同時に指定できません。コマンドの記述形式は常 に以下のようになります。 bsort -P ProcDef-file ● 処理定義ファイル内の一時ファイルフォルダ(TEMP_DIR)の指定は無効となります。bsort コマンド実行前に、環境変数BSORT_TMPDIRで設定してください。 ● 処理定義ファイルオプションを指定してbsortコマンドを実行する場合、PowerSORT GUI の仕様によりメッセージが出力されません。処理が正常に終了したかどうかは、bsortコ マンドの復帰値で判断してください。 ● 処理定義ファイルは、エディタ等を利用して作成および変更をしないでください。 3.2.16 選択フィールドオプション(-p) レコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 複数の選択フィールドを指定することもできます。コンマ( , )で区切って複数の選択フィールドを 指定した場合は、選択条件の論理積となります。複数の選択フィールドオプションを指定した場合は、 選択条件の論理和となります。 記述形式 -p sel-def [ ,sel-def ...] sel-def の記述形式 sel-def の記述形式には以下の2種類があります。 sel-def の記述形式1 pos.len typ opt.cmp.pos.len typ cmp の左辺は被比較フィールドを、右辺は比較フィールドを示します。 sel-def の記述形式2 pos.len typ opt.cmp.self cmp の左辺は被比較フィールドを、右辺は自己規定値を示します。 pos 被比較フィールドまたは比較フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号 を指定します。 len 被比較フィールドまたは比較フィールドの長さをバイト数で指定します。 詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 48 3.2 bsortコマンドオプション データ形式に符号なし2進数を指定する場合は、マスク値を指定します。フィールド値とマスク値の 論理積を比較します。マスク値は、被比較フィールドと比較フィールドに同じ値を指定します。 self 自己規定値を指定します。self の記述形式を以下に示します。なお、自己規定値の指定時にはsel-def 記述上の注意事項を参照してください。 self の記述形式1 '文字列 ' self の記述形式2 x16進数 self の記述形式3 d10進数 typ 被比較フィールドと比較フィールドのデータ形式を指定します。 詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 opt 被比較フィールドの操作を指定します。 複数の操作を指定する場合は続けて記述します。指定可能な操作を以下に示します。b、d、i、jおよ びnは、テキストファイルを処理する場合に指定できます。 opt 意味 b フィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象とします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。デー タ形式がASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式の場 合に指定できます。 wとは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較します。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式または Unicode UTF-8形式で、入力コード系オプション(-q)がEBCDICコード系以 外の場合に指定できます。 nとは排他関係にあります。 cmp 比較演算子を指定します。 以下に比較演算子とその意味を示します。 49 第3章 PowerSORTのbsortコマンドを使用する 比較演算子とその意味 比較演算子 意味(真の条件) eq 被比較フィールド = 比較フィールドまたは自己規定値 ne 被比較フィールド ≠ 比較フィールドまたは自己規定値 gt 被比較フィールド > 比較フィールドまたは自己規定値 ge 被比較フィールド ≧ 比較フィールドまたは自己規定値 lt 被比較フィールド < 比較フィールドまたは自己規定値 le 被比較フィールド ≦ 比較フィールドまたは自己規定値 sel-def 記述上の注意事項 ● オプション引数で自己規定値の文字列を指定する場合は、オプション引数全体をダブルク ォーテーション( " )で囲みます。 ● オプション引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する 場合は、ダブルクォーテーション( " )の前に円記号( \ )を指定します。 ● オプション引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、 クォーテーション( ' )を2つ続けて指定します。 ● 自己規定値の10進数を指定する場合は、符号を指定できます。 ● 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデ ータ形式に合わせてから比較します。 ● 自己規定値は、被比較フィールドのデータ形式に合わせてから比較します。 ● 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールド の短い方の長さで比較します。 ● 比較フィールドのデータ形式の種類が数値または数字の場合、被比較フィールドと比較フ ィールドの短い方を長い方の長さに合わせて比較します。 ● ASCIIコードおよびシフトJISコードは、バイナリファイルの場合、入力コード系オプショ ン(-q)がEBCDICコード系以外の場合に指定できます。テキストファイルの場合、入力コー ド系オプション(-q)がASCIIコード系の場合に指定できます。 ● EBCDICコードは、入力コード系オプション(-q)がEBCDICコード系の場合に指定できます。 ● Unicode UCS-2形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDIC コード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション (-q)がUnicode系(UCS-2形式)の場合に指定できます。 ● Unicode UTF-8形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDIC コード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション (-q)がUnicode系(UTF-8形式)の場合に指定できます。 ● テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むこ とはできません。 ● テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列また はレコード分離文字を含むことはできません。 ● 被比較フィールドおよび比較フィールドのデータ形式に照合順序変更を指定した場合、 opt にフィールドの操作を指定できません。 ● 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号 なし固定小数点2進数、システム依存形式固定小数点2進数、システム依存形式符号なしの 自己規定値を10進数で指定する場合、その値は以下の範囲になります。 データ形式 指定可能な値 符号ありのデータ形式 -2147483648 ~ 2147483647 符号なしのデータ形式 0 ~ 4294967295 記述例 例1) 12バイトめの位置から4バイトの固定小数点2進数のフィールドが30以上のレコードを選択する 50 3.2 bsortコマンドオプション 場合は、次のように指定します。 -p 11.4fbi.ge.d30 例2) 10バイトめの位置から5バイトのASCIIコードのフィールドに文字列abcdeがあるレコードを選 択する場合は、次のように指定します。 -p "9.5asc.eq.'abcde'" 例3) 10バイトめの位置から5バイトのASCIIコードのフィールドに文字列"abcdがあるレコードを選 択する場合は、次のように指定します。 -p "9.5asc.eq.'\"abcd'" 例4) 10バイトめの位置から5バイトのASCIIコードのフィールドに文字列abc'dがあるレコードを選 択する場合は、次のように指定します。 -p "9.5asc.eq.'abc''d'" 例5) 4バイトめの位置から3バイトのASCIIコードのフィールドに文字列abcがある、かつ10バイトめ の位置から3バイトのASCIIコードのフィールドに文字列abcがあるレコード、または4バイトめの位置 から5バイトのASCIIコードのフィールドに文字列abcdeがあるレコードを選択する場合は、次のよう に指定します。 -p "3.3asc.eq.'abc'","9.3asc.eq.'abc'" -p "3.5asc.eq.'abcde'" 3.2.17 文字コード系変換オプション(-Q) ASCIIコードとEBCDICコード間の変換方式を指定します。 記述形式 -Q altmode altmode ASCIIコードとEBCDICコード間の変換方式を指定します。 以下の場合にASCIIコードとEBCDICコード間の変換が行われます。 ● 入力ファイルのコード系(入力コード系オプション(-q))がASCIIコード系でキーフィール ドのデータ形式がEBCDICコードの場合におけるキーフィールドの比較 ● 入力ファイルのコード系(入力コード系オプション(-q))がEBCDICコード系でキーフィー ルドのデータ形式がASCIIコードの場合におけるキーフィールドの比較 ● 選択フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己 規定値の変換 ● 再編成フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自 己規定値の変換 次から1つを選択して指定します。 altmode 意味 0 EBCDICコードとUS ASCIIコード間のコード変換をします。(省略値) 1 EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。 2 EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をします。 3.2.18 入力コード系オプション(-q) 入力ファイルのコード系を指定します。 記述形式 -q cdmode 51 第3章 PowerSORTのbsortコマンドを使用する cdmode 入力ファイルのコード系を指定します。 次から1つを選択して指定します。 cdmode 意味 au ASCIIコード系 (富士通COBOL形式) (省略値) ac ASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式) eb EBCDICコード系 (注) u2 Unicode系 (UCS-2形式) u8 Unicode系 (UTF-8形式) 注) EBCDICコード系はバイナリファイルの場合に指定可能です。 3.2.19 レコード読み飛ばしオプション(-R) 入力ファイルの先頭から処理対象としないレコードを件数で指定します。 ファイルの先頭にヘッダ情報など処理の対象としないデータがある場合に使用します。 記述形式 -R skiprec-no [ ,skiprec-no ...] skiprec-no 処理対象としないレコードを件数で指定します。 省略した場合は全レコードが処理対象となります。入力ファイルが複数ある場合は、ファイルの指定 順に合わせてコンマ( , )で区切って件数を指定します。 記述例 例1) 最初の入力ファイルの先頭から10件、2番めの入力ファイルの先頭から20件のレコードを読み飛 ばします。 -R 10,20 例2) 入力ファイルが3つある場合、3番めの入力ファイルの先頭から100件のレコードを読み飛ばし ます。 -R ,,100 例3) 入力ファイルが3つある場合、最初の入力ファイルの先頭から100件のレコードを読み飛ばしま す。2番め、3番めの入力ファイルのレコードの読み飛ばしは行われません。 -R 100 3.2.20 降順オプション(-r) 降順に並べて出力することを指定します。 キーフィールドの指定を省略したときに有効なオプションです。 記述形式 -r 3.2.21 処理(ソート、マージ、コピー)オプション(-s、-m、-c) 入力ファイルに対して行う処理を指定します。 52 3.2 bsortコマンドオプション 記述形式 [ -s ] | -m | -c 以下に処理オプションと意味を示します。各処理オプションは互いに排他関係にあります。 処理オプション 意味 -s ソート機能 (省略値) -m マージ機能 -c コピー機能 3.2.22 テキストファイルオプション(-T) 入力ファイルがテキストファイルであることを指定し、同時にフィールドの指定方法を指定します。 記述形式 -T { flt | fix } [ ,{ n | w | N } b d i j ] fltとfixは、キーフィールド、選択フィールド、再編成フィールドおよび集約フィールドの指定方法 を表します。 続くn、w、N、b、d、i、j は、キーフィールドの指定を省略し、レコード全体をキーフィールドとす る場合のキーフィールドの操作を表します。複数の操作を指定する場合は、続けて記述します。 flt テキストファイル浮動フィールド指定を示します。フィールド分離文字列で区切られた、フィールド の番号で指定する形式です。フィールド分離文字列については、フィールド分離文字オプション(-t) を参照してください。 fixオプション引数とは排他関係にあります。 fix テキストファイル固定フィールド指定を示します。先頭からのバイト位置で指定する形式です。 fltオプション引数とは排他関係にあります。 n 符号を含んだ数字の文字列を算術的な値によって比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。 wオプション引数およびNオプション引数とは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較して並べます。 nオプション引数およびNオプション引数とは排他関係にあります。 N 英字と数字の連結データ(例えば、data123など)を英字と数値に分けて評価し並べます。 英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。 指定フィールドの左から評価し、有効データ後に出現したデータは無視します。 nオプション引数およびwオプション引数とは排他関係にあります。 b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象にします。 53 第3章 PowerSORTのbsortコマンドを使用する i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 ● 入力ファイルがテキストファイルの場合は、テキストファイルオプション(-T)は必ず指定 します。 ● テキストファイルオプション(-T)を省略した場合は、バイナリファイルとして処理します。 3.2.23 フィールド分離文字オプション(-t) テキストファイル浮動フィールド指定のときの、フィールド分離文字列を指定します。 記述形式 -t chars chars テキストファイル浮動フィールド指定のときの、フィールド分離文字列を指定します。 省略時は、タブまたは空白をフィールドの分離文字として扱います。 フィールド分離文字列に空白を含む場合は、フィールド分離文字列をダブルクォーテーション( " ) で囲みます。フィールド分離文字列にダブルクォーテーション( " )を指定する場合は、ダブルクォ ーテーション( " )の前に円記号( \ )を指定します。 記述例 例1) フィールド分離文字列として、文字列(SEPARATE)を指定します。 -t SEPARATE 例2) フィールド分離文字列として、文字列(F S)を指定します。 -t "F S" 例3) フィールド分離文字列として、文字(')を指定します。 -t ' 例4) フィールド分離文字列として、文字(")を指定します。 -t \" 例5) フィールド分離文字列として、文字(\)を指定します。 -t \ 例6) フィールド分離文字列として、文字列(**)を指定します。 -t ** 例7) フィールド分離文字列として、文字列(* *)を指定します。 -t "* *" 54 3.2 bsortコマンドオプション フィールド分離文字列には、レコード分離文字列(レコード分離文字オプション(-L))と同 じ文字を指定できません。 3.2.24 サプレスオプション(-u) サプレス機能を指定します。 指定したキーフィールドの値が同一のとき、1つのレコードを残して他を削除します。このとき削除 されるレコードは不定です。 サプレス機能はソート機能とマージ機能のときに有効です。また、先入力先出力(FIFO)機能(-f)とレ コード集約機能(-g)とは排他関係にあります。 記述形式 -u 3.2.25 入出力上書きオプション(-v) 入力ファイルの1つが出力ファイルと同じ場合に、処理を継続することを指定します。 入出力上書きオプション(-v)を指定すると、入力ファイルに処理結果が上書きされるため、ディスク スペースを節約できます。このオプションを省略して、入力ファイルの1つに出力ファイルと同じフ ァイルを指定した場合は、エラーとなります。 入出力上書きオプション(-v)は、ソート機能のときに有効です。 記述形式 -v 入力ファイルの1つが出力ファイルと同じ場合、ソート処理中に異常が発生すると、入力 ファイルのデータは保証されない場合がありますので、注意してください。 3.2.26 標準出力オプション(-w) 出力ファイルの指定がない場合に処理結果を標準出力に出力することを指定します。 出力ファイルオプション(-o)と同時に指定されたときは、出力ファイルオプション(-o)が優先されま す。 記述形式 -w 3.2.27 インデックス指定オプション(-X) 出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを 指定します。 富士通COBOLファイルシステムの索引ファイルの場合は、インデックス指定オプション(-X)を省略で きません。 55 第3章 PowerSORTのbsortコマンドを使用する 記述形式 -X index-def [ ,index-def ...] index-def インデックスフィールドを指定します。 はじめに主キーを指定し、その後に副キーを指定します。 index-def の記述形式 pos.len typ opt pos インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。 len インデックスフィールドの長さをバイト数で指定します。 typ インデックスフィールドのデータ形式をlen に続けて指定します。 以下に、インデックスフィールドのデータ形式と長さを示します。 長さ 種類 データ形式 typ (バイト) 文字 意味 ASCIIコード asc 1~254 富士通COBOLのCHARTYPE Unicode UCS-2形式(注) uc2 2~254 (2の倍数) 富士通COBOLのCHARTYPE Unicode UTF-8形式 ut8 1~254 富士通COBOLのCHARTYPE 注) Unicode UCS-2形式のバイトオーダはLittle endianとなります。 opt インデックスフィールドの操作をtyp に続けて指定します。指定可能な操作を以下に示します。 最終セグメントには、必ずeを指定します。 opt 意味 a 昇順に並べます。 d インデックスに重複キー指定を示します。 e セグメントの終りを示します。 3.2.28 照合順序変更オプション(-x) 照合順序を変更するための情報を指定します。 記述形式 -x col-def [ ,col-def ...] col-def 照合順序を変更するための情報を指定します。 ccttの形式で記述します。照合順序変更機能では、フィールド中に16進数'cc'と等しいバイトがあれ ば、そのバイトを16進数'tt'として比較します。コンマ( , )で区切って複数の照合順序を変更する ための情報を指定できます。'cc'で指定されていない16進数は、置き換えられずにそのまま比較しま す。 56 3.2 bsortコマンドオプション 照合順序変更機能は、キーフィールドのデータ形式、選択フィールドの被比較フィールドおよび比較 フィールドのデータ形式にcolが指定されている場合に、照合順序変更オプション(-x)で指定した照 合順序で比較します。 記述例 例1) 16進数0x20を、16進数0x23として比較する場合は、次のように指定します。 -x 2023 例2) 同じ16進数に対して複数の照合順序変更を指定した場合は、最後に指定した照合順序の変更が 有効になります。以下の例では、16進数0x20は16進数0x3Aとして比較します。 -x 2023,6141,203A 3.2.29 メモリサイズオプション(-y) PowerSORTが使用する作業域の大きさ(メモリサイズ)を指定します。 記述形式 -y memsize memsize PowerSORTが使用する作業域の大きさをキロバイト数で指定します。32~2097151キロバイトの範囲で 指定します。 メモリサイズオプション(-y)を省略した場合または0を指定した場合、環境変数BSORT_MEMSIZEの指定 があれば、その大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。 2097152以上の値を指定した場合は、2097151を指定したとみなされます。 3.2.30 レコード形式オプション(-Z) バイナリファイルの場合にレコード形式を指定します。 テキストファイルの場合は指定できません。 システムの標準ファイルシステムのファイルの場合は省略可能です。指定する場合は、固定長レコー ド形式を指定します。富士通COBOLファイルシステム、Micro Focus COBOLファイルシステム、Btrieve ファイルシステムおよびRDMファイルシステムのファイルの場合は指定が必要です。指定可能なレコ ード形式については、PowerSORTの入出力環境を参照してください。 記述形式 -Z recform recform 以下から選択して指定します。 recform 意味 f 固定長レコード形式を示します。 v 可変長レコード形式を示します。 3.2.31 レコード長オプション(-z) 入力レコードのレコード長または最大レコード長を指定します。 57 第3章 PowerSORTのbsortコマンドを使用する 記述形式 -z recsize recsize レコード長をバイト数で指定します。 バイナリファイルの場合、レコード形式が固定長レコード形式のときは、レコード長を指定します。 また、レコード形式が可変長レコード形式のときは、ファイル内の最大レコード長を指定します。 テキストファイルの場合は、改行コードを含む最大レコード長を指定します。 58 第4章 PowerSORTのbsortexコマンドを使用する ここでは、bsortexコマンドについて説明します。 bsortexコマンドをバッチ処理などに組み込むことで、大量データの高速ソートマージ処理を実現で きます。 第4章 PowerSORTのbsortexコマンドを使用する 4.1 bsortexコマンドの形式 bsortexコマンドは、テキストファイルおよびバイナリファイルのデータに対して、ソート処理、マ ージ処理またはコピー処理を行います。指定された処理が正常に終了した場合は、0の終了コードを 返します。エラーが発生した場合は、0以外の終了コードを返します。 bsortexコマンドには、使用する機能により3つの記述形式があります。それぞれ、指定できるオプシ ョンに違いがありますので、使用する機能に合わせて適切なオプションを指定してください。 bsortexコマンド記述上の注意事項 ● ハイフン(-)が付いたものをオプションと呼び、オプションの後に続けて指定するものを オペランドと呼びます。 例) -sortオプションのkeyオペランド ● 角括弧( [ ] )で囲まれた字句は省略可能です。 ● 中括弧( { } )は棒線( | )で区切られた字句の選択を示します。 ● 斜体は、必要に応じて利用者が値を設定します。 ● ...は繰り返し指定できることを示します。 ● イコール(=)で値を指定するオペランドの場合、イコール(=)の前後には空白を入れずに続 けて指定します。 60 4.1 bsortexコマンドの形式 4.1.1 ソート機能を使用する場合 以下にソート機能を使用する場合のコマンド形式を示します。 bsortex [ -h ] [ -a argument-file ] [ -define keyword=word-definition [ keyword=word-definition...] [ -define...] ] [ -sort [ key=key-definition [ ,key-definition...] [ key=...] ] [ jef=jef-definition [ ,jef-definition...] [ jef=...] ] ] [ -record [ recform=record-format ] [ fldsep=field-separate ] ] -input reclen=record-length [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system [ /owner-name [ ,owner-name...] ] ] ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ eof= { effect | ignore } ] [ overwrite ] [ -summary { field=summary-definition [ ,summary-definition...] [ field=...] | suppress } [ { first | last } ] ] [ -output [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system ] ] [ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] | case= { condition-expression [ ,condition-expression ] | other } [ case=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ idxflag=index-flag ] [ idxkey=index-key [ ,index-key...] [ idxkey=...] ] [ linedlmt=line-delimiter ] [ removeeof ] [ -output...] ] [ -option [ colseq=col-def [ ,col-def...] [ colseq=...] ] [ fifo ] [ icode=input-code ] [ iconv=input-conversion ] [ memsize=memory-size ] [ msgfile=message-file ] [ msglevel=message-level ] [ tmpdir=temp-directory [ ,temp-directory...] [ tmpdir=...] ] ] 61 第4章 PowerSORTのbsortexコマンドを使用する 4.1.2 マージ機能を使用する場合 以下にマージ機能を使用する場合のコマンド形式を示します。 bsortex 62 [ -h ] [ -a argument-file ] [ -define keyword=word-definition [ keyword=word-definition...] [ -define...] ] -merge [ key=key-definition [ ,key-definition...] [ key=...] ] [ jef=jef-definition [ ,jef-definition...] [ jef=...] ] [ -record [ recform=record-format ] [ fldsep=field-separate ] ] -input reclen=record-length [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system [ /owner-name [ ,owner-name...] ] ] ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ eof= { effect | ignore } ] [ -summary { field=summary-definition [ ,summary-definition...] [ field=...] | suppress } [ { first | last } ] ] [ -output [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system ] ] [ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] | case= { condition-expression [ ,condition-expression ] | other } [ case=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ idxflag=index-flag ] [ idxkey=index-key [ ,index-key...] [ idxkey=...] ] [ linedlmt=line-delimiter ] [ removeeof ] [ -output...] ] [ -option [ colseq=col-def [ ,col-def...] [ colseq=...] ] [ fifo ] [ icode=input-code ] [ iconv=input-conversion ] [ memsize=memory-size ] [ msgfile=message-file ] [ msglevel=message-level ] ] 4.1 bsortexコマンドの形式 4.1.3 コピー機能を使用する場合 以下にコピー機能を使用する場合のコマンド形式を示します。 bsortex [ -h ] [ -a argument-file ] [ -define keyword=word-definition [ keyword=word-definition...] [ -define...] ] -copy [ -record [ recform=record-format ] [ fldsep=field-separate ] ] -input reclen=record-length [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system [ /owner-name [ ,owner-name...] ] ] ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ eof= { effect | ignore } ] [ -output [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system ] ] [ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] | case= { condition-expression [ ,condition-expression ] | other } [ case=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ idxflag=index-flag ] [ idxkey=index-key [ ,index-key...] [ idxkey=...] ] [ linedlmt=line-delimiter ] [ removeeof ] [ -output...] ] [ -option [ colseq=col-def [ ,col-def...] [ colseq=...] ] [ icode=input-code ] [ iconv=input-conversion ] [ memsize=memory-size ] [ msgfile=message-file ] [ msglevel=message-level ] ] 63 第4章 PowerSORTのbsortexコマンドを使用する 4.2 bsortexコマンドオプション ここでは、bsortexコマンドの各オプションについて説明します。 4.2.1 アーギュメントファイルオプション(-a) アーギュメントファイルを指定します。 アーギュメントファイルは、bsortexコマンドの各種オプション引数を記述したテキストファイルで す。アーギュメントファイルは、固定のオプション引数を別途指定しておきたい場合や、コマンドの オプション引数が長くなる場合などで使用します。 記述形式 -a argument-file argument-file アーギュメントファイルを指定します。 他のオプション引数とアーギュメントファイルオプションを同時に指定した場合、アーギュメントフ ァイルオプションを指定した位置に、アーギュメントファイルで記述したオプション引数が展開され ます。アーギュメントファイルオプションは複数指定できます。 アーギュメントファイルには、オプション引数を複数の行に記述できます。ただし、オペランドの途 中で改行することはできません。 アーギュメントファイルにアーギュメントファイルオプションは指定できません。アーギュメントフ ァイルには、bsortexコマンドのオプション引数だけを記述します。 アーギュメントファイル名に空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテ ーション( " )で囲みます。 記述例 以下にargument-file の記述例を示します。 -sort key=32.12pdla,25.4fbia↓ -input reclen=200↓ file=master.db↓ include=25.4fbi.ge.d35↓ -output file=bsortout↓(注) 注)↓印は改行コード<CR><LF>を示しています。 argument-file 記述上の注意事項 以下に誤ったargument-file の記述例を示します。 keyオペランドの途中で改行できません。 -sort key=32.12pdla,↓ 25.4fbia↓ -input reclen=200↓ file=master.db↓ include=25.4fbi.ge.d35↓ -output file=bsortout↓ 注)↓印は改行コード<CR><LF>を示しています。 argument-file の展開例 argument-fileには、以下の内容が記述されているものとします。 -sort key=0.10asca 64 4.2 bsortexコマンドオプション 例1) bsortex –a argument-file -input reclen=100 file=infile1 と指定した場合、以下の指定と同じです。 bsortex -sort key=0.10asca -input reclen=100 file=infile1 例2) bsortex -sort -a argument-file -input reclen=100 file=infile1 と指定した場合、以下の指定と同じです。 bsortex -sort -sort key=0.10asca -input reclen=100 file=infile1 この場合、重複指定不可の -sortオプションが2つ指定されているため、エラーになります。 4.2.2 コピーオプション(-copy) コピー機能を指定します。 コピーオプション(-copy)にはオペランドはありません。 コピーオプション(-copy)、ソートオプション(-sort)およびマージオプション(-merge)は互いに排他 関係にあります。 記述形式 -copy 4.2.3 定義オプション(-define) フィールド定義やファイルパス名に対して任意の簡略名を定義します。 ここで定義した任意の簡略名を他のオプションで使用することができます。 記述形式 -define keyword=word-definition [ keyword=word-definition ...][ -define ...] keyword=word-definition keyword は先頭文字に@を付けた英数字で示します。 ● オプション名(例えば、-sort)およびイコール(=)で値を指定するオペランドの左辺部(例 えば、key)をword-definition に指定できません。 ● 簡略名を複数定義した場合は、指定順に置き換えられます。このため、ある簡略名を含む、 他の簡略名を定義する場合には、簡略名の指定順により結果が変わりますので、注意が必 要です。 置換え前1 -define @HOK=hoken\hoken1.dat @HOKEN2=hoken\hoken2.dat -sort file=@HOKEN2 置換え後1 -sort file=hoken\hoken1.datEN2 65 第4章 PowerSORTのbsortexコマンドを使用する 置換え前2 -define @HOKEN2=hoken\hoken2.dat @HOK=hoken\hoken1.dat -sort file=@HOKEN2 置換え後2 -sort file=hoken\hoken2.dat 記述例 -define @HOKEN1=hoken\hoken1.dat @HOKEN2=hoken\hoken2.dat @HOKEN34=hoken\hoken3.dat,hoken\hoken4.dat @NAME=12.8asc @AGE=20.2fbi -sort key=@AGEr,@NAMEa -input file=@HOKEN1,@HOKEN2 [email protected] 4.2.4 ヘルプオプション(-h) bsortexコマンドのコマンド形式の一覧を表示します。 他のオプションと共に指定された場合は、指定されたオプションのチェックを行い、エラーがあった 場合はエラーメッセージを出力します。 このオプションが指定されている場合は、PowerSORTの処理は行われません。 記述形式 -h 4.2.5 入力ファイル情報オプション(-input) 入力ファイル情報を指定します。 標準入力から入力する場合は、fileオペランドおよびfilesysオペランドを省略します。 記述形式 -input reclen=record-length [ file=file-name [ ,file-name ...] [ file= ...] [ filesys=file-system [ /owner-name [ ,owner-name ...] ] ] ] [ { include=condition-expression [ ,condition-expression ] [ include= ...] | omit=condition-expression [ ,condition-expression ] [ omit= ...] } ] [ reconst=reconst-definition [ ,reconst-definition ...] [ reconst= ...] ] [ eof= { effect | ignore } ] [ overwrite ] 4.2.5.1 reclenオペランド 入力レコードのレコード長または最大レコード長を指定します。 記述形式 reclen=record-length 66 4.2 bsortexコマンドオプション record-length 入力レコードのレコード長または最大レコード長をバイト数で指定します。 テキストファイルの場合は、改行コードを含む最大レコード長を指定します。 4.2.5.2 fileオペランド 入力ファイルパス名を指定します。 記述形式 file=file-name file-name 入力ファイルパス名を指定します。 コンマ( , )で区切って複数の入力ファイルを指定できます。 fileオペランド記述上の注意事項 ● オペランド引数でコンマ( , )を含んだファイルパス名を指定する場合は、file-name 全 体をクォーテーション( ' )で囲み、さらにダブルクォーテーション( " )で囲みます。 ● オペランド引数でクォーテーション( ' )を含んだファイルパス名を指定する場合は、ク ォーテーション( ' )を2つ続けて指定し、file-name 全体をダブルクォーテーション( " ) で囲みます。 ● オペランド引数で空白を含んだファイルパス名を指定する場合は、file-name 全体をダブ ルクォーテーション( " )で囲みます。 記述例 例1) コンマ( , )を含んだファイルパス名を指定する例を示します。 file="'abc,def'" 例2) クォーテーション( ' )を含んだファイルパス名を指定する例を示します。 file="abc''def" 例3) 空白を含んだファイルパス名を指定する例を示します。 file="abc def" 例4) 複数の入力ファイルを指定する例を示します。 file=sortin1,sortin2 4.2.5.3 filesysオペランド fileオペランドで指定した入力ファイルのファイルシステムを指定します。 記述形式 filesys=file-system [ /owner-name [ ,owner-name ...] ] file-system 入力ファイルのファイルシステムを指定します。 ファイルシステムは識別子で指定します。指定可能なファイルシステムを以下に示します。 67 第4章 PowerSORTのbsortexコマンドを使用する 識別子 ファイルシステムの説明 dos システムの標準ファイルシステム(省略値) cobseq 富士通COBOLファイルシステム(順ファイル) cobs64 富士通COBOLファイルシステム(BSAM対応順ファイル) cobrel 富士通COBOLファイルシステム(相対ファイル) cobidx 富士通COBOLファイルシステム(索引ファイル) mfcseq Micro Focus COBOLファイルシステム(順ファイル) mfcrel Micro Focus COBOLファイルシステム(相対ファイル) mfcidx Micro Focus COBOLファイルシステム(索引ファイル) btrv Btrieveファイルシステム rdm RDMファイルシステム owner-name Btrieveファイルシステムで必要な場合には、owner-name に最大8文字までのオーナーネームを指定 します。 オーナーネームでは、大文字と小文字が区別されます。また、入力ファイルの指定順にコンマ( , ) で区切って複数のオーナーネームを指定できます。入力ファイルの数がオーナーネームの数より多い 場合、残りの入力ファイルに対するオーナーネームは省略されたとみなします。入力ファイルの数が オーナーネームの数より少ない場合、余分に指定したオーナーネームは無視されます。 記述例 例1) 最初の入力ファイルのオーナーネームにowner1、2番めの入力ファイルのオーナーネームに owner2を指定する場合、以下のように指定します。 filesys=btrv/owner1,owner2 例2) 入力ファイルが2つある場合、2番めの入力ファイルのオーナーネームにowner2を指定する場合、 以下のように指定します。 filesys=btrv/,owner2 指定可能なファイルシステムに関する注意事項 ● PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、ア クセスすることができません。また、富士通COBOLファイルシステム(索引ファイル)を指 定した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもアクセ スすることができません。共用モード、排他モードについては、お使いの富士通COBOLフ ァイルシステムのマニュアルを参照してください。 ● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定しても、使用する富士通COBOL ファイルシステムが対応していない場合は富士通COBOLファイルシステム(順ファイル)と して動作します。BSAM対応については、お使いの富士通COBOLファイルシステムのマニュ アルを参照してください。 ● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定した場合は、富士通COBOLファ イルシステムの仕様によりレコード排他処理が行われません。 ● Micro Focus COBOLファイルシステム(索引ファイル)およびBtrieveファイルシステムは、 入力ファイルのファイルシステムとしてのみ指定可能です。 ● データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイル に指定することはできません。 4.2.5.4 includeオペランド 入力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 68 4.2 bsortexコマンドオプション 条件が成立したレコードを処理の対象とします。 includeオペランドは、omitオペランドとは排他関係にあります。 記述形式 include=condition-expression condition-expression 選択フィールド(選択条件)を指定します。 コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となりま す。複数のincludeオペランドを指定した場合は、選択条件の論理和となります。 condition-expression の記述形式 condition-definition [ { .and. | .or. } [ ( ]condition-expression [ ) ] ] and 選択条件の論理積を示します。コンマ( , )で区切って複数指定した場合と同等です。 or 選択条件の論理和を示します。includeオペランドを複数指定した場合と同等です。 condition-definition 一つの選択フィールド(選択条件)を指定します。 condition-definition の記述形式 以下にcondition-definition の記述形式を示します。 condition-definition の記述形式1 pos.len typ [ opt ].cmp.pos.len typ 記述形式1は2つの選択フィールドを比較します。cmp の左辺は被比較フィールドを、右辺は比較フィ ールドを示します。 condition-definition の記述形式2 pos.len typ [ opt ].cmp.self-def 記述形式2は選択フィールドと自己規定値を比較します。cmp の左辺は被比較フィールドを、右辺は 自己規定値を示します。 condition-definition の記述形式3 RECNUM.cmp.num 記述形式3はレコード件数に従って選択します。 pos 被比較フィールドまたは比較フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 len 被比較フィールドまたは比較フィールドの長さをバイト数で指定します。 詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 69 第4章 PowerSORTのbsortexコマンドを使用する 場合は、実際のフィールド長で処理します。 データ形式に符号なし2進数を指定する場合は、マスク値を指定します。フィールド値とマスク値の 論理積を比較します。マスク値は、被比較フィールドと比較フィールドに同じ値を指定します。 typ 被比較フィールドと比較フィールドのデータ形式を指定します。 詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 opt 被比較フィールドの操作を指定します。 複数の操作を指定する場合は続けて記述します。指定可能な操作を以下に示します。b、d、i、jおよ びnは、テキストファイルを処理する場合に指定できます。 opt 意味 b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象とします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。 データ形式がASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式 の場合に指定できます。 wとは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較します。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式または Unicode UTF-8形式で、入力ファイルのコード系(実行環境オプション (-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できま す。 nとは排他関係にあります。 self-def 自己規定値を指定します。self-def の記述形式を以下に示します。 self-def の記述形式1 '文字列 ' self-def の記述形式2 x16進数 self-def の記述形式3 d10進数 cmp 比較演算子を指定します。 以下に比較演算子とその意味を示します。 70 4.2 bsortexコマンドオプション 比較演算子 意味 eq 被比較フィールド=比較フィールドまたは自己規定値 ne 被比較フィールド≠比較フィールドまたは自己規定値 gt 被比較フィールド>比較フィールドまたは自己規定値 ge 被比較フィールド≧比較フィールドまたは自己規定値 lt 被比較フィールド<比較フィールドまたは自己規定値 le 被比較フィールド≦比較フィールドまたは自己規定値 RECNUM レコード件数で選択することを指定します。 num レコード件数を指定します。 入力の場合、入力ファイルの先頭レコードを1件めとして指定します。複数の入力ファイルを指定し た場合、ファイルごとの先頭レコードを1件めとして選択します。出力の場合、集約またはサプレス 後に出力する最初のレコードを1件めとして指定します。 condition-definition 記述上の注意事項 ● オペランド引数で自己規定値の文字列を指定する場合は、オペランド引数全体をダブルク ォーテーション( " )で囲みます。 ● オペランド引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する 場合は、ダブルクォーテーション( " )の前に円記号( \ )を指定します。 ● オペランド引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、 クォーテーション( ' )を2つ続けて指定します。 ● 自己規定値の10進数を指定する場合は、符号を指定できます。 ● 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデ ータ形式に合わせてから比較します。 ● 自己規定値は、被比較フィールドのデータ形式に合わせてから比較します。 ● 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールド の短い方の長さで比較します。 ● 比較フィールドのデータ形式の種類が数値または数字の場合、被比較フィールドと比較フ ィールドの短い方を長い方の長さに合わせて比較します。 ● ASCIIコードおよびシフトJISコードは、バイナリファイルの場合、入力ファイルのコード 系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指 定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション (-option)のicodeオペランド)がASCIIコード系の場合に指定できます。 ● EBCDICコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペラ ンド)がEBCDICコード系の場合に指定できます。 ● Unicode UCS-2形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプ ション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できます。テキ ストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオ ペランド)がUnicode系(UCS-2形式)の場合に指定できます。 ● Unicode UTF-8形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプ ション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できます。テキ ストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオ ペランド)がUnicode系(UTF-8形式)の場合に指定できます。 ● テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むこ とはできません。 ● テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列また 71 第4章 PowerSORTのbsortexコマンドを使用する はレコード分離文字を含むことはできません。 ● 被比較フィールドおよび比較フィールドのデータ形式に照合順序変更を指定した場合、 optにフィールドの操作を指定できません。 ● 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号 なし固定小数点2進数、システム依存形式固定小数点2進数、システム依存形式符号なしの 自己規定値を10進数で指定する場合、その値は以下の範囲になります。 データ形式 指定可能な値 符号ありのデータ形式 -2147483648 ~ 2147483647 符号なしのデータ形式 0 ~ 4294967295 記述例 例1) 12バイトめの位置から4バイトの外部10進数のフィールドと32バイトめの位置から4バイトの内 部10進数のフィールドが等しいレコードを処理の対象とする場合は、次のように指定します。 include=11.4zdl.eq.31.4pdl 例2) 12バイトめの位置から4バイトの固定小数点2進数のフィールドが30以上のレコードを処理の対 象とする場合は、次のように指定します。 include=11.4fbi.ge.d30 例3) ファイルの先頭から50件めまでのレコードを処理の対象とする場合は、次のように指定します。 include=RECNUM.le.50 例4) 自己規定値の文字列を指定する場合は、次のように指定します。 include="10.5asc.eq.'abcde'" 例5) ダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、次のように指定 します。 include="10.5asc.eq.'ab\"cd'" 例6) クォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、次のように指定します。 include="10.5asc.eq.'abc''d'" 例7) 自己規定値で10進数の指定をする場合は、次のように指定します。 include=10.4zdl.eq.d-1000 4.2.5.5 omitオペランド 入力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 条件が成立したレコードを処理の対象から除外します。 omitオペランドは、includeオペランドとは排他関係にあります。 記述形式 omit=condition-expression condition-expression 選択フィールド(選択条件)を指定します。 condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペ ランド(condition-expression の記述形式)を参照してください。 4.2.5.6 reconstオペランド 入力ファイルのレコード再編成機能を使用する場合に再編成フィールドを指定します。 入力ファイルのレコード再編成機能を使用する場合、キーフィールド、集約フィールド、出力の選択 72 4.2 bsortexコマンドオプション フィールドおよび出力の再編成フィールドは、入力レコード再編成後のフィールド位置を指定します。 記述形式 reconst=reconst-definition reconst-definition 再編成フィールドを指定します。コンマ( , )で区切って複数のreconst-definition を指定できます。 reconst-definition の記述形式 以下にreconst-definition の記述形式を示します。 reconst-definition の記述形式1 pos.len 記述形式1はレコードに存在するフィールドの指定を示します。 指定したフィールドが入力レコードに存在しない場合は、エラーになります。 reconst-definition の記述形式2 self-def.len typ 記述形式2は自己規定値の指定を示します。 reconst-definition の記述形式3 pos.END 記述形式3は入力レコードの指定位置から終端までを再編成フィールドとする場合の指定を示します。 長さの指定は不要です。 指定したフィールドが入力レコードに存在しない場合は、エラーになります。 pos 再編成フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 len 再編成フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 バイナリファイルおよびテキストファイル固定フィールド指定の場合、レコード長を超えるフィール ドを指定するとエラーになります。 self-def 自己規定値を指定します。 self-def の記述形式を以下に示します。 self-def の記述形式1 '文字列 ' self-def の記述形式2 x16進数 73 第4章 PowerSORTのbsortexコマンドを使用する self-def の記述形式3 d10進数 typ 自己規定値のデータ形式を指定します。 文字列、16進数 と10進数 のそれぞれで指定可能なデータ形式については、再編成フィールドの自己 規定値に指定可能なデータ形式を参照してください。 END 'END'の固定文字列を指定します。 reconst-definition 記述上の注意事項 ● オペランド引数で自己規定値の文字列を指定する場合は、オペランド引数全体をダブルク ォーテーション( " )で囲みます。 ● オペランド引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する 場合は、ダブルクォーテーション( " )の前に円記号( \ )を指定します。 ● オペランド引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、 クォーテーション( ' )を2つ続けて指定します。 ● 自己規定値の10進数を指定する場合は、符号を指定できます。 ● ASCIIコードおよびシフトJISコードは、バイナリファイルの場合、入力ファイルのコード 系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指 定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション (-option)のicodeオペランド)がASCIIコード系の場合に指定できます。 ● EBCDICコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペラ ンド)がEBCDICコード系の場合に指定できます。 ● Unicode UCS-2形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプ ション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できます。テキ ストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオ ペランド)がUnicode系(UCS-2形式)の場合に指定できます。 ● Unicode UTF-8形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプ ション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できます。テキ ストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオ ペランド)がUnicode系(UTF-8形式)の場合に指定できます。 ● テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むこ とはできません。 ● テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列また はレコード分離文字を含むことはできません。 ● 自己規定値で指定した値とlen で指定した長さが異なるときは、以下に示すように処理し ます。 ― 自己規定値が文字列の場合 — 自己規定値で指定した文字列の長さがlen で指定した長さより短い場合は、 自己規定値を左詰めにして右余白に空白を詰めます。 — 自己規定値で指定した文字列の長さがlen で指定した長さより長い場合は、 エラーとなります。 ― 自己規定値が数字または数値の場合 — 自己規定値で指定した値を typ と len で指定したデータ形式と長さに変換 して埋め込みます。 — 変換結果がlen を超える場合は、エラーとなります。 ● 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号 74 4.2 bsortexコマンドオプション なし固定小数点2進数、システム依存形式固定小数点2進数、システム依存形式符号なしの 自己規定値を10進数で指定する場合、その値は以下の範囲になります。 長さ 符号ありのデータ形式 符号なしのデータ形式 1バイト -128~127 0~255 2バイト -32768~32767 0~65535 3バイト -8388608~8388607 0~16777215 -2147483648~2147483647 0~4294967295 4バイト以上 記述例 例1) 入力レコードの5バイトめから10バイトのフィールドを再編成する場合は、次のように指定し ます。 reconst=4.10 例2) 自己規定値の文字列(abc)を指定する場合は、以下のように指定します。 reconst="'abc'.3asc" 例3) ダブルクォーテーション( ” )を含んだ自己規定値の文字列(ab”cd)を指定する場合は、以下 のように指定します。 reconst="'ab\"cd'.5asc" 例4) クォーテーション( ' )を含んだ自己規定値の文字列(abc’d)を指定する場合は、以下のよう に指定します。 reconst="'abc''d'.5asc" 例5) 入力レコードの5バイトめからレコードの最後までを再編成する場合は、以下のように指定し ます。 reconst=4.END 4.2.5.7 eofオペランド 入力ファイルがテキストファイルの場合に、EOF制御文字の扱いを指定します。 記述形式 eof={ effect | ignore } effect 最初のEOF制御文字をファイルの最後と認識して、最初のEOF制御文字までを入力します。 省略した場合、effectが指定されたものとします。 ignore EOF制御文字をファイルの最後と認識せず、EOF制御文字以降も入力します。 4.2.5.8 overwriteオペランド 入力ファイルの1つが出力ファイルと同じ場合に、処理を継続することを指定します。 overwriteオペランドを指定すると、入力ファイルに処理結果が上書きされるため、ディスクスペー スを節約できます。overwriteオペランドを省略して、入力ファイルの1つに出力ファイルと同じファ イルを指定した場合は、エラーとなります。 overwriteオペランドは、ソート機能のときに有効です。 記述形式 overwrite 75 第4章 PowerSORTのbsortexコマンドを使用する 入力ファイルの1つが出力ファイルと同じ場合、ソート処理中に異常が発生すると、入力 ファイルのデータは保証されない場合がありますので、注意してください。 4.2.6 マージオプション(-merge) マージ機能を指定します。 マージオプション(-merge)、ソートオプション(-sort)およびコピーオプション(-copy)は互いに排他 関係にあります。 記述形式 -merge [ key=key-definition [ ,key-definition ...] [ key= ...] ] [ jef=jef-definition [ ,jef-definition ...] [ jef= ...] ] 4.2.6.1 keyオペランド キーフィールドを指定します。 複数のキーフィールドを指定した場合、指定した順に比較が行われます。 keyオペランドを省略した場合、レコード全体をキーフィールドとみなし、コード順に並べます。 記述形式 key=key-definition [ ,key-definition ...] [ key= ...] key-definition の記述形式 以下にkey-definition の記述形式を示します。 key-definition の記述形式1 pos.len typ [ opt ] key-definition の記述形式2 ALL [ opt ] pos キーフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 len キーフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数で len に指定します。このとき、pos の位置にある1バイトのフィールド値とマスク値の論理積がキー 値になります。 指定可能なデータ形式ごとの長さについては、キーフィールドに指定可能なデータ形式を参照してく 76 4.2 bsortexコマンドオプション ださい。 typ キーフィールドのデータ形式をlen に続けて指定します。 指定可能なデータ形式については、キーフィールドに指定可能なデータ形式を参照してください。 opt キーフィールドの操作をtyp に続けて指定します。 複数の操作を指定する場合は、続けて記述します。バイナリファイルの場合は、a、m、rおよびwが指 定できます。テキストファイルの場合は、全てのキーフィールドの操作が指定できます。aとrを両方 とも省略した場合は、aを指定したものとして動作します。指定可能な操作を以下に示します。 キーフィールドの操作の種類 opt 意味 a 昇順に並べます。rとは排他関係にあります。 b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象とします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 m 漢字ソートマージ機能を使用します。 対応するソートオプション(-sort)またはマージオプション(-merge)の jefオペランドが必要となります。mを指定した場合は、a、b、rの操作だ けが有効となり、他の指定は無視します。漢字ソートマージ機能で指定可 能なデータ形式は、ASCIIコード、シフトJISコードおよびJEFコードです。 ALLとは同時に指定できません。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。デー タ形式がASCIIコード、EBCDICコード、Unicode UCS-2形式またはUnicode UTF-8形式の場合に指定できます。 Nおよびwとは排他関係にあります。 N 英字と数字の連結データ(例えば、data123など)を英字と数値に分けて評 価し並べます。 英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比 較します。指定フィールドの左から評価し、有効データ後に出現したデー タは無視します。データ形式がASCIIコード、EBCDICコード、Unicode UCS-2 形式またはUnicode UTF-8形式の場合に指定できます。 nおよびwとは排他関係にあります。 r 降順に並べます。aとは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較して並べます。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式または Unicode UTF-8形式で、入力ファイルのコード系(実行環境オプション (-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できま す。 nおよびNとは排他関係にあります。 キーフィールドのデータ形式に照合順序変更を指定した場合、キーフィールドの操作にa またはr以外を指定することはできません。 77 第4章 PowerSORTのbsortexコマンドを使用する ALL レコード全体をキーフィールドとする場合に指定します。 続けて記述するキーフィールドの操作の指定がなければ、keyオペランドを省略できます。 記述例 例1) レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる場合は、次のように 指定します。 key=0.10asca 例2) レコード全体をキーとして降順に並べる場合は、次のように指定します。 key=ALLr 4.2.6.2 jefオペランド 漢字ソートマージ機能の方式およびふりがなフィールドを指定します。 jefオペランドは、keyオペランドの操作でmを指定したキーフィールドに対応します。このmを指定し たキーフィールドが漢字フィールドとなります。 記述形式 jef=jef-definition [ ,jef-definition ...] [ jef= ...] jef-definition の記述形式 form [ odr ] [ pos.len typ ] form 漢字ソートマージ機能の方式を指定します。指定可能な方式を以下に示します。 form 意味 std 基本方式(漢字属性の順)に並べます。ふりがなフィールドの指定は必要あ りません。 dic 国語辞典方式(ふりがなの順)に並べます。ふりがなフィールドの指定が必 要となります。 odr 漢字フィールドの漢字属性を指定します。 漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで続け て指定できます。 指定可能な漢字属性を以下に示します。 odr 意味 B 部首コード順に並べます。 S 総画数順に並べます。 O 音読み順に並べます。 K 訓読み順に並べます。 C 漢字コード順に並べます。 pos ふりがなフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定します。テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号 を指定します。 78 4.2 bsortexコマンドオプション len ふりがなフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 typ ふりがなフィールドのデータ形式をlen に続けて指定します。 指定可能なデータ形式を以下に示します。 バイナリファイルの場合 種類 文字 データ形式 typ 長さ(バイト) ASCIIコード asc 1~レコード長(注1) EBCDICコード(注2) ebc 1~レコード長(注1) シフトJISコード sji 1~レコード長(注1) JEFコード(注2) jef 2~レコード長(2の倍数) (注1) テキストファイルの場合 種類 文字 データ形式 ASCIIコード typ asc 長さ(バイト) 1~レコード長(注1) シフトJISコード sji 1~レコード長(注1) 注1) レコード再編成機能を指定した場合は、入力レコード再編成後のレコード長まで指定できます。 レコード再編成機能については、入力ファイル情報オプション(-input)のreconstオペランドを参照 してください。 注2) 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系 の場合に指定できます。 記述例 例1) レコードの10バイトめから長さ2バイトの漢字フィールド(シフトJISコード)を総画数順、音読 み順で昇順に並べる場合、次のように指定します。 key=9.2sjiam jef=stdSO 例2) レコードの10バイトめから長さ10バイトに漢字フィールド(シフトJISコード)があり、このフ ィールドに対するふりがなフィールド(シフトJISコード)がレコードの50バイトめから長さ20バイト に存在するとき、このレコードを国語辞典の並びで昇順に並べる場合、次のように指定します。 key=9.10sjiam jef=dic49.20sji 4.2.7 実行環境オプション(-option) 各種実行環境オプションを指定します。 記述形式 -option [ colseq=col-def [ ,col-def ...] [ colseq= ...] ] [ fifo ] [ icode=input-code ] [ iconv=input-conversion ] [ memsize=memory-size ] [ msgfile=message-file ] [ msglevel=message-level ] [ tmpdir=temp-directory [ ,temp-directory ...] [ tmpdir= ...] ] 79 第4章 PowerSORTのbsortexコマンドを使用する 4.2.7.1 colseqオペランド 照合順序を変更するための情報を指定します。 記述形式 colseq=col-def [ ,col-def ...] [ colseq= ...] col-def 照合順序を変更するための情報を指定します。 ccttの形式で記述します。照合順序変更機能では、フィールド中に16進数'cc'と等しいバイトがあれ ば、そのバイトを16進数'tt'と評価して比較します。コンマ( , )で区切って複数の照合順序を変更 するための情報を指定できます。'cc'で指定されていない16進数は、置き換えられずにそのまま比較 します。 照合順序変更機能は、キーフィールドのデータ形式、選択フィールドの被比較フィールドおよび比較 フィールドのデータ形式にcolを指定した場合に、-optionオプションのcolseqオペランドで指定した 照合順序で比較します。 記述例 例1) 16進数0x20を、16進数0x23として比較する場合は、次のように指定します。 colseq=2023 例2) 同じ16進数に対して複数の照合順序変更を指定した場合は、最後に指定した照合順序の変更が 有効になります。以下の例では、16進数0x20は16進数0x3Aとして比較します。 colseq=2023,6141,203A 4.2.7.2 fifoオペランド 先入力先出力(FIFO)機能を指定します。 指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。この機能を指 定していない場合、キーフィールドの値が同一なレコードの出力順序は不定です。 この機能はソート機能およびマージ機能の場合に有効です。先入力先出力(FIFO)機能は、サプレス機 能とレコード集約機能とは排他関係にあります。 記述形式 fifo 4.2.7.3 icodeオペランド 入力ファイルのコード系を指定します。 記述形式 icode=input-code input-code 入力ファイルのコード系を指定します。 input-code は、以下から1つを選択して指定します。 80 4.2 bsortexコマンドオプション input-code 注) 意味 au ASCIIコード系 (富士通COBOL形式) (省略値) ac ASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式) eb EBCDICコード系 (注) u2 Unicode系(UCS-2形式) u8 Unicode系(UTF-8形式) EBCDICコード系はバイナリファイルの場合に指定可能です。 4.2.7.4 iconvオペランド ASCIIコードとEBCDICコード間の変換方式を指定します。 記述形式 iconv=input-conversion input-conversion ASCIIコードとEBCDICコード間の変換方式を指定します。 以下の場合にASCIIコードとEBCDICコード間の変換が行われます。 ● 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がASCIIコー ド系でキーフィールドのデータ形式がEBCDICコードの場合におけるキーフィールドの比 較 ● 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコ ード系でキーフィールドのデータ形式がASCIIコードの場合におけるキーフィールドの比 較 ● 選択フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己 規定値の変換 ● 再編成フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自 己規定値の変換 input-conversion は、以下から1つを選択して指定します。 input-conversion 意味 0 EBCDICコードとUS ASCIIコード間のコード変換をします。(省略値) 1 EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。 2 EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をし ます。 4.2.7.5 memsizeオペランド PowerSORTが使用する作業域の大きさを指定します。 記述形式 memsize=memory-size memory-size PowerSORTが使用する作業域の大きさをキロバイト数で指定します。32~2097151キロバイトの範囲で 指定します。 memsizeオペランドを省略した場合または0を指定した場合、環境変数BSORT_MEMSIZEの指定があれば、 その大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。 2097152以上の値を指定した場合は、2097151を指定したとみなされます。 81 第4章 PowerSORTのbsortexコマンドを使用する memsizeオペランドは、環境変数BSORT_MEMSIZEの指定より優先されます。 4.2.7.6 msgfileオペランド メッセージを出力するファイルパス名を指定します。 記述形式 msgfile=message-file message-file メッセージを出力するファイルパス名を指定します。 msgfileオペランドを省略した場合、環境変数BSORT_MSGFILEの指定があればそのファイルにメッセー ジを出力します。メッセージファイル以外へのメッセージの出力は環境変数BSORT_MSGOUTの指定に従 います。 メッセージファイルパス名は複数指定できません。空白を含むファイル名を指定する場合は、全体を ダブルクォーテーション( " )で囲みます。 msgfileオペランドは、環境変数BSORT_MSGFILEの指定より優先されます。 4.2.7.7 msglevelオペランド 出力するメッセージのレベルを指定します。 記述形式 msglevel=message-level message-level 出力するメッセージのレベルを指定します。 msglevelオペランドを省略した場合は、環境変数BSORT_MSGLEVELの指定に従います。msglevelオペラ ンドも環境変数BSORT_MSGLEVELの指定も省略されている場合は、message-level に1(エラーメッセー ジを出力)を指定したとみなします。メッセージの出力先は、msgfileオペランド、環境変数 BSORT_MSGFILEおよび環境変数BSORT_MSGOUTにより決まります。 指定可能なメッセージのレベルを以下に示します。 message-level 意味 0 何も出力しません。 1 エラーメッセージを出力します。(省略値) 2 エラーメッセージと情報メッセージを出力します。 ● 何も出力しないと指定した場合でも、コマンドシンタックスのエラーとコマンドヘルプは 標準エラー出力に出力します。 ● msglevelオペランドは、環境変数BSORT_MSGLEVELの指定より優先されます。 82 4.2 bsortexコマンドオプション 4.2.7.8 tmpdirオペランド 一時ファイルを作成するフォルダ名を指定します。 記述形式 tmpdir=temp-directory temp-directory 一時ファイルを作成するフォルダ名を指定します。 コンマ( , )で区切って複数のフォルダ名を指定できます。フォルダ名に空白が含まれる場合は、フ ォルダ名をダブルクォーテーション( " )で囲みます。 ● 一時ファイルを作成するフォルダ指定の優先順位については、環境変数BSORT_TMPDIRを参 照してください。 ● 誤ったフォルダ名を指定すると意図しないファイルが削除される場合があります。 4.2.8 出力ファイル情報オプション(-output) 出力ファイル情報を指定します。 複数の出力ファイル情報オプション(-output)を指定できます。標準出力に出力する場合は、fileオ ペランドおよびfilesysオペランドを省略します。なお、標準出力に出力する場合は、複数の出力フ ァイル情報オプション(-output)を指定できません。 記述形式 -output [ file=file-name [ ,file-name ...] [ file= ...] [ filesys=file-system ] ] [ [ [ | | [ [ [ [ [ [ maxfilesize=max-filesize ] maxrecnum=max-recordnumber ] { include=condition-expression [ ,condition-expression ] [ include= ...] omit=condition-expression [ ,condition-expression ] [ omit= ...] case= { condition-expression [ ,condition-expression ] | other } [ case= ...] } ] reconst=reconst-definition [ ,reconst-definition ...] [ reconst= ...] ] idxflag=index-flag ] idxkey=index-key [ ,index-key ...] [ idxkey= ...] ] linedlmt=line-delimiter ] removeeof ] -output ...] 4.2.8.1 fileオペランド 出力ファイルパス名を指定します。 記述形式 file=file-name file-name 出力ファイルパス名を指定します。 コンマ( , )で区切って複数の出力ファイルを指定できます。 83 第4章 PowerSORTのbsortexコマンドを使用する 複数の出力ファイルを指定し、かつmaxfilesizeオペランドまたはmaxrecnumオペランドを指定した場 合、maxfilesizeオペランドまたはmaxrecnumオペランドの指定に従って複数のファイルに分割して出 力します。 複数の出力ファイルを指定し、かつmaxfilesizeオペランドおよびmaxrecnumオペランドを指定しなか った場合、出力ファイルがファイルシステムの許容量を超えたときのリカバリ処理として複数のファ イルに分割して出力します。このリカバリ処理は、以下のファイルを処理する場合に指定できます。 ● システム標準のファイル(テキストファイル、バイナリファイル) ● 指定した出力ファイルをすべて使用しても出力できないレコードが存在する場合は、エラ ーになります。 ● 指定した出力ファイルが1つの場合、maxfilesizeオペランドおよびmaxrecnumオペランド を指定できません。 ● その他のfile-name 記述上の注意事項については、入力ファイル情報オプション(-input) のfileオペランドを参照してください。 4.2.8.2 filesysオペランド fileオペランドで指定した出力ファイルのファイルシステムを指定します。 記述形式 filesys=file-system file-system 出力ファイルのファイルシステムを指定します。 省略時はシステムの標準ファイルシステムを指定したものとします。 指定可能なファイルシステムについては、入力ファイル情報オプション(-input)のfilesysオペラン ドを参照してください。 4.2.8.3 maxfilesizeオペランド 1つのファイルに出力可能な最大ファイルサイズを指定します。 記述形式 maxfilesize=max-filesize [ K | M | G ] max-filesize [ K | M | G ] 1つのファイルに出力可能な最大ファイルサイズを指定します。 ファイルサイズがmax-filesize を超える場合、fileオペランドで指定した次の出力ファイルに続き を出力します。K、M、Gは、max-filesize の単位です。Kはキロバイト単位、Mはメガバイト単位、G はギガバイト単位であることを示します。なお、K、MおよびGを指定しない場合、単位はバイトです。 maxrecnumオペランドと同時に指定した場合は、先に上限に達した時点で次の出力ファイルに出力し ます。また、指定した上限に達する前に出力ファイルがファイルシステムの許容量を超えた場合は、 許容量を超えた時点で次の出力ファイルに出力します。 maxfilesizeオペランドは、以下のファイルを処理する場合に指定できます。 ● システム標準のファイル(テキストファイル、バイナリファイル) fileオペランドで指定した出力ファイルが1つの場合、maxfilesizeオペランドは指定でき 84 4.2 bsortexコマンドオプション ません。 4.2.8.4 maxrecnumオペランド 1つのファイルに出力可能な最大レコード数を指定します。 記述形式 maxrecnum=max-recordnumber max-recordnumber 1つのファイルに出力可能な最大レコード数を指定します。 レコード数がmax-recordnumber を超える場合、fileオペランドで指定した次の出力ファイルに続き を出力します。 maxfilesizeオペランドと同時に指定した場合は、先に上限に達した時点で次の出力ファイルに出力 します。また、指定した上限に達する前に出力ファイルがファイルシステムの許容量を超えた場合は、 許容量を超えた時点で次の出力ファイルに出力します。 fileオペランドで指定した出力ファイルが1つの場合、maxrecnumオペランドは指定できま せん。 4.2.8.5 includeオペランド 出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 条件が成立したレコードを出力の対象とします。 includeオペランドは、omitオペランドおよびcaseオペランドとは排他関係にあります。 記述形式 include=condition-expression condition-expression 選択フィールド(選択条件)を指定します。 コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となりま す。複数のincludeオペランドを指定した場合は、選択条件の論理和となります。 condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペ ランド(condition-expression の記述形式)を参照してください。 4.2.8.6 omitオペランド 出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 条件が成立したレコードを処理の対象から除外します。 omitオペランドは、caseオペランドおよびincludeオペランドとは排他関係にあります。 記述形式 omit=condition-expression condition-expression 選択フィールド(選択条件)を指定します。 コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となりま す。複数のomitオペランドを指定した場合は、選択条件の論理和となります。 85 第4章 PowerSORTのbsortexコマンドを使用する condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペ ランド(condition-expression の記述形式)を参照してください。 4.2.8.7 caseオペランド 出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 条件が成立したレコードを出力の対象とします。 caseオペランドは、includeオペランドおよびomitオペランドとは排他関係にあります。 記述形式 case={ condition-expression | other } condition-expression 選択フィールド(選択条件)を指定します。 ただし、これより前に指定した出力ファイル情報オプション(-output)のcaseオペランドで出力され たレコードは出力の対象から除外されます。 コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となりま す。複数のcaseオペランドを指定した場合は、選択条件の論理和となります。 condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペ ランド(condition-expression の記述形式)を参照してください。 other 出力ファイル情報オプション(-output)のcaseオペランドで出力されなかったレコードを出力の対象 とします。 記述例 50バイトめから4バイトの内部10進数のフィールドが100以上のレコードをbsortout1に出力し、 bsortout1に出力されなかったレコードの内80バイトめから8バイトの外部10進数のフィールドが50 未満のレコードをbsortout2に出力し、bsortout1にもbsortout2にも出力されなかったレコードを bsortout3に出力する場合、以下のように指定します。 -output file=bsortout1 case=49.4pdl.ge.d100 -output file=bsortout2 case=79.8zdl.lt.d50 -output file=bsortout3 case=other 4.2.8.8 reconstオペランド 出力ファイルのレコード再編成機能を使用する場合に再編成フィールドを指定します。 記述形式 reconst=reconst-definition reconst-definition 再編成フィールドを指定します。 出力ファイルのレコード選択処理の後に、reconst-definitionで指定した再編成フィールドに従って レコードを再編成します。 reconst-definition の記述形式については、入力ファイル情報オプション(-input)のreconstオペラ ンド(reconst-definition の記述形式)を参照してください。 4.2.8.9 idxflagオペランド 富士通COBOLファイルシステムの索引ファイルにおける、インデックスの作成方法を指定します。 86 4.2 bsortexコマンドオプション 記述形式 idxflag=index-flag index-flag 次のものから選択して指定します。複数指定する場合は、続けて指定します。 index-flag 意味 c インデックスに圧縮キー指定を示します。 r レコードのデータ圧縮指定を示します。 4.2.8.10 idxkeyオペランド 出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを 指定します。 富士通COBOLファイルシステムの索引ファイルの場合は、idxkeyオペランドを省略できません。 記述形式 idxkey=index-key [ ,index-key ...] index-key インデックスフィールドを指定します。 はじめに主キーを指定し、その後に副キーを指定します。 index-key の記述形式 pos.len typ opt pos インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。 len インデックスフィールドの長さをバイト数で指定します。 typ インデックスフィールドのデータ形式をlen に続けて指定します。 指定可能なデータ形式と長さを以下に示します。 長さ 種類 データ形式 typ (バイト) 文字 ASCIIコード 意味 asc 1~254 富士通COBOLのCHARTYPE Unicode UCS-2形式(注) uc2 2~254 (2の倍数) 富士通COBOLのCHARTYPE Unicode UTF-8形式 ut8 1~254 富士通COBOLのCHARTYPE 注) Unicode UCS-2形式のバイトオーダはLittle endianとなります。 opt インデックスフィールドの操作をtyp に続けて指定します。指定可能な操作を以下に示します。 最終セグメントには、必ずeを指定します。 opt 意味 a 昇順に並べます。 d インデックスに重複キー指定を示します。 e セグメントの終りを示します。 87 第4章 PowerSORTのbsortexコマンドを使用する 4.2.8.11 linedlmtオペランド 出力ファイル内のレコード分離文字を指定します。 テキストファイルのときに有効です。 記述形式 linedlmt=line-delimiter line-delimiter 出力ファイル内のレコード分離文字を指定します。 指定可能なレコード分離文字を以下に示します。省略時は、入力ファイル(複数の入力ファイルを指 定した場合は先頭の入力ファイル)のレコード分離文字と同じになります。 line-delimiter 意味 lf LFをレコード分離文字として扱います。 cr CRをレコード分離文字として扱います。 crlf CRLFをレコード分離文字として扱います。 4.2.8.12 removeeofオペランド 出力ファイルがテキストファイルの場合に、EOF制御文字を取り除きます。 記述形式 removeeof 4.2.9 入力レコード情報オプション(-record) 入力レコード情報を指定します。 記述形式 -record [ recform=record-format ] [ fldsep=field-separate ] 4.2.9.1 recformオペランド レコード形式を指定します。 記述形式 recform=record-format record-format レコード形式を指定します。 システムの標準ファイルシステムのファイルを処理する場合にレコード形式の指定を省略すると、バ イナリファイル固定長レコード形式を指定したものとして動作します。システムの標準ファイルシス テム以外のファイルまたはテキストファイルを処理する場合は省略できません。指定可能なレコード 形式については、PowerSORTの入出力環境を参照してください。 次から1つを選択して指定します。 record-format 意味 88 fix バイナリファイル固定長レコード形式 var バイナリファイル可変長レコード形式 txtfix テキストファイル固定フィールド指定のレコード形式 txtflt テキストファイル浮動フィールド指定のレコード形式 4.2 bsortexコマンドオプション システムの標準ファイルシステムのファイルを処理する場合は、レコード形式にバイナリ ファイル可変長レコード形式を指定できません。 4.2.9.2 fldsepオペランド テキストファイル浮動フィールド指定のレコード形式の場合に、フィールド分離文字列を指定します。 記述形式 fldsep=field-separate field-separate テキストファイル浮動フィールド指定のレコード形式の場合に、フィールド分離文字列を指定します。 省略時は、タブまたは空白をフィールド分離文字として扱います。 フィールド分離文字列に空白を含む場合は、フィールド分離文字列をダブルクォーテーション( " ) で囲みます。フィールド分離文字列にダブルクォーテーション( " )を指定する場合は、ダブルクォ ーテーション( " )の前に円記号( \ )を指定します。 記述例 例1) フィールド分離文字列として、文字列(SEPARATE)を指定します。 fldsep=SEPARATE 例2) フィールド分離文字列として、文字列(F S)を指定します。 fldsep="F S" 例3) フィールド分離文字列として、文字(')を指定します。 fldsep=' 例4) フィールド分離文字列として、文字(")を指定します。 fldsep=\" 例5) フィールド分離文字列として、文字(\)を指定します。 fldsep=\ 例6) フィールド分離文字列として、文字列(**)を指定します。 fldsep=** 例7) フィールド分離文字列として、文字列(* *)を指定します。 fldsep="* *" 4.2.10 ソートオプション(-sort) ソート機能を指定します。 ソートオプション(-sort)、マージオプション(-merge)およびコピーオプション(-copy)は互いに排他 関係にあります。ソートオプション(-sort)、マージオプション(-merge)およびコピーオプション (-copy)を省略した場合は、レコード全体をキーとしたソート機能を指定したものとして処理します。 各オペランドの説明は、マージオプション(-merge)を参照してください。 89 第4章 PowerSORTのbsortexコマンドを使用する 記述形式 -sort [ key=key-definition [ ,key-definition ...][ key= ...] ] [ jef=jef-definition [ ,jef-definition ...] [ jef= ...] ] 4.2.11 レコード集約オプション(-summary) レコード集約機能またはサプレス機能を使用する場合に、集約フィールドまたはサプレス機能を指定 します。 レコード集約処理またはサプレス処理は、出力処理の前にすべての出力レコードに対して行います。 テキストファイルの場合、レコード集約処理は、ASCIIコード、Unicode UCS-2形式およびUnicode UTF-8 形式で記述された数字(半角)だけを処理の対象とします。 レコード集約オプション(-summary)はソート機能とマージ機能の場合に有効です。また、先入力先出 力(FIFO)機能(実行環境オプション(-option)のfifoオペランド)とは排他関係にあります。 記述形式 -summary { field=summary-definition [ ,summary-definition ...] [ field= ...] | suppress } [ { first | last } ] 4.2.11.1 fieldオペランド レコード集約機能を使用する場合に、集約フィールドを指定します。 レコード集約機能は、指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1 つのレコードにする機能です。suppressオペランドとは排他関係にあります。 記述形式 field=summary-definition summary-definition 集約フィールドを指定します。 summary-definition の記述形式 pos.len typ [ opt ] pos 集約フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 len 集約フィールドの長さをバイト数で指定します。 詳細は集約フィールドに指定可能なデータ形式を参照してください。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、指定したフィールド長に拡張して処理します。 typ 集約フィールドのデータ形式を指定します。 詳細は集約フィールドに指定可能なデータ形式を参照してください。 opt テキストファイルの場合に集約フィールドの出力形式を指定します。バイナリファイルの場合に指定 90 4.2 bsortexコマンドオプション するとエラーとなります。指定可能な出力形式を以下に示します。 opt 意味 i 集約フィールドの値に符号をつけます。uとは排他関係にあります。 u 集約フィールドの値が負の値の場合だけ符号(-)をつけます。iとは排他関 係にあります。 z 集約フィールドの値がフィールド長に満たない場合、左余白に'0'を詰め ます。例えば、集約フィールドの値が1234という4桁の数字であり、集約 フィールド長が6バイトの場合、001234という数字にします。b、dとは排 他関係にあります。 b 集約フィールドの値がフィールド長に満たない場合、左余白に空白を詰め ます。例えば、集約フィールドの値が1234という4桁の数字であり、集約 フィールド長が6バイトの場合、__1234 (_は空白を表わす)という数字に します。z、dとは排他関係にあります。 d 集約フィールドの先頭から空白、タブおよび'0'を削除します。集約フィ ールドの先頭に空白、タブおよび'0'がある場合、左から評価し、'0'以外 の数字が出現するまでの空白、タブおよび'0'を削除します。例えば、 '00123'の場合、'123'という数字にします。ただし、集約フィールドが0(0、 0000、+000など)の場合、最後の'0'は削除されません。テキストファイル 浮動フィールド指定の場合に指定可能です。z、bとは排他関係にあります。 集約フィールド指定時の注意事項 ● firstオペランドおよびlastオペランドのどちらも指定しなかった場合、集約処理対象と なったレコードのうち、どのレコードが出力されるかは不定です。 ● 集約フィールドは、キーフィールドおよび他の集約フィールドと重ならないように指定し ます。また、集約フィールドはレコード内に完全に含まれている必要があります。 ● レコード集約機能を使用する場合、キーフィールドの指定は省略できません。 ● 集約フィールドの加算処理中にオーバフローが生じた場合の動作は、環境変数 BSORT_SUMOVERCONTの指定によります。 ● 小数点を含む数字の集約はできません。 テキストファイルについての注意事項 ● テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式 で記述された数字(半角)だけを処理の対象とします。 ● テキストファイル浮動フィールド指定の場合、集約結果は指定されたフィールド長で処理 されます。指定したフィールド長よりフィールドが長い場合、数字の左から指定フィール ド長分が有効となります。逆に指定したフィールド長よりフィールドが短い場合、指定し たフィールド長に拡張して処理します。 ● テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現 れたことにより集約フィールドの位置が変わる場合は、正しく動作しません。 ● optのdは、テキストファイル浮動フィールド指定の場合に指定可能です。テキストファイ ル固定フィールド指定の場合はエラーになります。 ● optのiを指定し、集約した値が0になった場合は符号(+)を付けます。 ● optのbを指定し、符号がつく場合、符号は数字部の直前に付加されます。 ● optのiおよびuを省略した場合は、以下のように処理します。 ― 集約結果が負の値の場合は、集約結果に符号(-)をつけます。 ― 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を つけません。 ― 符号なしデータ同士を集約した場合は、集約結果に符号をつけません。 ― 符号なしデータと符号付きデータを集約して、結果が0の場合は、符号をつけませ 91 第4章 PowerSORTのbsortexコマンドを使用する ん。 ― 符号付きデータ同士を集約した場合は集約結果に符号をつけます。集約した結果が 0の場合は+ 符号を付けます。 ● 集約フィールドの値に符号をつける場合、集約フィールドの値が集約フィールド長を満た しており、符号が付けられないときはオーバフローとなります。 ● optのzおよびbを省略した場合は、以下のように処理します。 ― 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果 が満たない場合は、集約フィールドの左余白に'0'を詰めます。 — 左余白に'0'が詰められているデータ同士のとき — 左余白に'0'が詰められているデータと左余白に空白が詰められているデー タのとき — 左余白に'0'が詰められているデータと左余白にタブが詰められているデー タのとき ― 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果 が満たない場合は、集約フィールドの左余白に空白を詰めます。 — 左余白に空白が詰められているデータ同士のとき — 左余白にタブが詰められているデータ同士のとき — 左余白に空白が詰められているデータと左余白にタブが詰められているデ ータのとき ● 集約対象でないレコード(キーフィールドの値が同一である他のレコードが存在しないレ コード)の集約フィールドは、以下のように処理します。 ― optの指定がある場合は、optで指定された形式で出力します。 ― optの指定がない場合は、入力されたままの形式で出力されます。 記述例 レコード集約機能を使用し、入力レコードの7バイトめから8バイトの内部10進数のフィールドを集約 フィールドに指定する場合は、次のように指定します。 -summary field=6.8pdl 4.2.11.2 suppressオペランド サプレス機能を指定します。 サプレス機能は、指定したキーフィールドの値が同一のとき、1つのレコードを残して他を削除する 機能です。fieldオペランドとは排他関係にあります。 記述形式 suppress 記述例 サプレス機能を使用する場合は次のように指定します。 -summary suppress 4.2.11.3 firstオペランド 同一キーレコードの内、最初に入力したレコードを出力します。 lastオペランドとは排他関係にあります。どちらも指定しない場合、出力されるレコードは不定です。 記述形式 first 92 4.2 bsortexコマンドオプション 記述例 レコード集約機能を使用し、入力レコードの10バイトめから4バイトの外部10進数のフィールドを集 約フィールドに指定し、同一キーレコードの内、最初に入力したレコードを出力する場合は次のよう に指定します。 -summary field=9.4zdl first 4.2.11.4 lastオペランド 同一キーレコードの内、最後に入力したレコードを出力します。 firstオペランドとは排他関係にあります。どちらも指定しない場合、出力されるレコードは不定で す。 記述形式 last 記述例 サプレス機能を使用し、同一キーレコードの内、最後に入力したレコードを出力する場合は次のよう に指定します。 -summary suppress last 93 第5章 OCXを使用してPowerSORTを使用する ここではPowerSORT OCXについて説明します。 5.1 PowerSORT OLEカスタムコントロールとは 5.1 PowerSORT OLEカスタムコントロールとは PowerSORT OLEカスタムコントロール(以降、OCXと表記します)とは、PowerSORTをOLEコンテナアプリ ケーション上で簡単に呼び出すことができるコントロールです。OCXをサポートしているプログラミ ング言語で使用することができます。 PowerSORT OCXをフォームに配置して、必要なプロパティを設定することにより、少量のコードを作 成するだけで、大量データに対応したソート処理またはマージ処理をアプリケーションプログラムに 追加できます。なお、PowerSORT OCXは、デザイン時にはフォーム上に表示され、実行時には非表示 となります。 PowerSORT OCXは、Webページおよびインターネットでの動作についてはサポートしていま せん。 95 第5章 OCXを使用してPowerSORTを使用する 5.2 PowerSORT OCXのプロパティシート PowerSORT OCXをフォームに配置して、必要なプロパティを設定します。 プロパティシートはデザイン時に参照が可能で、作成アプリケーションにおけるPowerSORT OCXの初 期値を設定することができます。各プロパティについての詳細は各プロパティの説明を参照してくだ さい。 5.2.1 「File」プロパティページ 入出力ファイル、レコード長関連のプロパティを指定するページです。 書式など各プロパティの詳細は、各プロパティの説明を参照してください。 [参照] ● ● ● ● ● InputFilesプロパティ InputFileTypeプロパティ MaxRecordLengthプロパティ OutputFileプロパティ OutputFileTypeプロパティ ● EnableOverwriteFileプロパティ 96 5.2 PowerSORT OCXのプロパティシート Btrieve Informationダイアログボックス Btrieveファイルに関するプロパティを設定するダイアログボックスです。 このダイアログボックスは、「File」プロパティページのInputFileTypeプロパティまたは OutputFileTypeプロパティにBtrieveファイルを指定したときに「Btrieve Info」ボタンが有効とな り、出力ファイルに関する情報を入力できます。 InputFileTypeプロパティまたはOutputFileTypeプロパティにBtrieveファイルを指定していない場 合は、これらのプロパティは無視されます。 書式など各プロパティの詳細は、各プロパティの説明を参照してください。 [参照] ● BtrieveInfileOwnerNameプロパティ ● BtrieveIndexKeyプロパティ ● BtrieveFileInfoプロパティ Fujitsu COBOL85 Indexダイアログボックス COBOL索引ファイルに関するプロパティを設定するダイアログボックスです。 「File」プロパティページでOutputFileTypeプロパティに富士通COBOL索引ファイルを指定したとき に、 「Index Info」ボタンが有効となり、出力ファイルに関する追加情報を入力することができます。 OutputFileプロパティに富士通COBOL索引ファイルを指定していない場合は、このプロパティは無効 となります。 書式など各プロパティの詳細は、各プロパティの説明を参照してください。 [参照] ● FjcobKeyCompressionプロパティ 97 第5章 OCXを使用してPowerSORTを使用する ● FjcobDataCompressionプロパティ ● FjcobPrimeKeyプロパティ ● FjcobAlternateKeyプロパティ 5.2.2 「Disposal」プロパティページ 実行する処理を指定するページです。 書式など各プロパティの詳細は、各プロパティの説明を参照してください。 [参照] ● DisposalNumberプロパティ 5.2.3 「KeyField」プロパティページ キーフィールドまたはキーフィールドを省略した場合のキーフィールドの操作を指定するプロパテ ィページです。 書式など各プロパティの詳細は、各プロパティの説明を参照してください。 98 5.2 PowerSORT OCXのプロパティシート [参照] ● ● ● ● ● KeyCmdStrプロパティ CollationOrderプロパティ Reverseプロパティ IgnoreControlCodeプロパティ AlphaNumOnlyプロパティ ● SkipLeadingBlankプロパティ ● CompareAsUpperCaseプロパティ 5.2.4 「Record」プロパティページ フィールド分離文字またはレコード分離文字などのレコード情報を指定するプロパティページです。 書式など各プロパティの詳細は、各プロパティの説明を参照してください。 99 第5章 OCXを使用してPowerSORTを使用する [参照] ● LineDelimiterプロパティ ● FieldDefinitionプロパティ ● FieldDelimiterプロパティ 5.2.5 「Option」プロパティページ レコード単位の処理を指定するプロパティページです。 書式など各プロパティの詳細は、各プロパティの説明を参照してください。 [参照] ● RconCmdStrプロパティ ● SelCmdStrプロパティ ● HandlingSameKeyプロパティ ● SumCmdStrプロパティ ● InputFilesSkiprecプロパティ 5.2.6 「Environment」プロパティページ PowerSORTが使用するメモリ量、一時ファイルのフォルダ名など動作環境を設定するプロパティペー ジです。 書式など各プロパティの詳細は、各プロパティの説明を参照してください。 100 5.2 PowerSORT OCXのプロパティシート [参照] ● ● ● ● ● TempDirプロパティ UsableMemorySizeプロパティ MessageLevelプロパティ MessageFileNameプロパティ DispMessageプロパティ 101 第5章 OCXを使用してPowerSORTを使用する 5.3 実行前に設定するプロパティ ここでは、PowerSORT OCXのプロパティについて説明します。 各プロパティの説明中、設定値の個所はVisual Basicのデータ型を記述しています。Visual Basic のデータ型に関しては、Visual Basicのデータ型とPowerSORTのデータ形式の関係を参照してくださ い。 5.3.1 AlphaNumOnlyプロパティ キーフィールドとして比較する文字を空白、タブおよび英数字のみに設定します。 構文 object.AlphaNumOnly = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean キーフィールドとして比較する文字を空白および英数字のみとするかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 AlphaNumOnlyプロパティの設定値は次のとおりです。 設定値 意味 True 空白と英数字のみを比較の対象とします。 False すべての文字を比較の対象とします。(省略値) 解説 ● Trueを指定すると、空白および英数字のみを取り出して比較し、レコードの順序を決定し ます。 ● このプロパティで指定された値は、テキストファイルのソート処理(DisposalNumber = 0) またはマージ処理(DisposalNumber = 1)において、キーフィールドを省略した場合に有効 となります。 ● この指定を省略した場合、すべての文字を比較の対象とします。 [参照] ● ● ● ● ● CollationOrderプロパティ CompareAsUpperCaseプロパティ IgnoreControlCodeプロパティ Reverseプロパティ SkipLeadingBlankプロパティ 5.3.2 AlternateModeプロパティ EBCDICコードとASCIIコード間の変換方式を指定します。 102 5.3 実行前に設定するプロパティ 構文 object.AlternateMode = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer EBCDICコードとASCIIコード間の変換方式を設定します。 設定する値については、次の設定値を参照してください。 設定値 AlternateModeプロパティの設定値は次のとおりです。 設定値 意味 0 EBCDICコードとUS ASCIIコード間のコード変換をします。(省略値) 1 EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。 2 EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をします。 解説 ● 入力ファイルのコード系がASCIIコード系でデータ形式がEBCDICコードの場合、または入 力ファイルのコード系がEBCDICコード系でデータ形式がASCIIコードの場合におけるコー ドの変換方式を指定します。 ● この指定を省略した場合、EBCDICコードとUS ASCIIコード間のコード変換をします。 5.3.3 BtrieveFileInfoプロパティ Btrieveファイルを出力ファイルとする場合のファイル情報を指定します。 構文 object.BtrieveFileInfo = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string ファイル情報を記述形式に従って指定します。 stringの記述形式 L.S [opt] L 4から4096バイトの範囲でレコード長を指定します。 レコード長の指定は省略できません。 S 512から4096の範囲でページサイズを指定します。 ページサイズの指定は省略できません。 103 第5章 OCXを使用してPowerSORTを使用する opt 必要に応じて、以下のオプションを指定します。 オプションの指定は省略できます。また、複数のオプションを同時に指定できます。 ただし、f10、f20およびf30を複数指定した場合は、最後に指定したオプションが有効となります。 オプション 意味 注) d データ圧縮 v 可変長レコード b 後続ブランク除去 a プリアロケーション (注) f10 10%スペース確保 f20 20%スペース確保 f30 30%スペース確保 プリアロケーションを指定する場合は、aに続けて割当てページ数を指定します。 例) a10 解説 ● 出力ファイルにBtrieveファイル(OutputFileType = 8)を指定した場合に、ファイル作成 に必要な情報を指定します。 ● ファイル情報の詳細についてはBtrieveのマニュアルを参照ください。 Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。 5.3.4 BtrieveIndexKeyプロパティ Btrieveファイルを出力ファイルとする場合のインデックス情報を指定します。 構文 object.BtrieveIndexKey = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string インデックス情報を記述形式に従って指定します。 stringの記述形式 S.P.LType[opt] [S.P.LType[opt]] ... S 1から24の範囲でセグメントを指定します。 セグメントの指定は省略できません。 P インデックスの位置を指定します。 位置の指定は省略できません。 104 5.3 実行前に設定するプロパティ L インデックスの長さを指定します。 長さの指定は省略できません。 Type インデックスの形式を以下の中から1つ指定します。 形式の指定は省略できません。 形式 指定可能形式 標準キー形式 stg、bin 拡張キー形式 str、int、flo、dat、tim、dec、mon、log、num、btl、lst、zst、uns、 aut opt 必要に応じて、以下のオプションを指定します。 オプションの指定は省略できます。また、複数のオプションを同時に指定できます。 オプション 意味 d 重複キー m 変更可能キー n ヌルキー(注) r 降順キー u マニュアルキー(注) 注) ヌルキー、マニュアルキー指定時は、nおよびuの後に、00からFFの1バイトの16進コードを指 定します。 例) n00 解説 ● 出力ファイルにBtrieveファイル(OutputFileType = 8)を指定した場合に、ファイル作成 に必要な情報を指定します。複数のインデックスを指定する場合は、空白で区切ります。 ● インデックス情報の各指定値の詳細についてはBtrieveのマニュアルを参照ください。 Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。 [参照] ● BtrieveFileInfoプロパティ 5.3.5 BtrieveInfileOwnerNameプロパティ Btrieveファイルシステムで必要な場合に、入力ファイルに対してオーナーネームを指定します。 構文 object.BtrieveInfileOwnerName = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string オーナーネームを指定します。 105 第5章 OCXを使用してPowerSORTを使用する 解説 ● 入力ファイルにBtrieveファイルを指定した場合で、ファイルの入力にオーナーネームの 指定が必要な場合に、最大8文字までのオーナーネームを指定します。入力ファイルが複 数ある場合は、入力ファイルの指定順に合わせて、オーナーネームを空白で区切って指定 します。なお、オーナーネームでは、大文字と小文字が区別されます。 ● このプロパティで指定された値は、InputFileTypeプロパティでBtrieveファイルを設定し た場合に有効となります。この条件に該当しない場合、指定値は無効となります。 Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。 [参照] ● InputFilesプロパティ 5.3.6 CollationOrderプロパティ キーフィールドの照合順序を指定します。 照合順序とはレコードの大小関係を決めるための比較の方法です。 構文 object.CollationOrder = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer キーフィールドの照合順序を設定します。 設定する値については、次の設定値を参照してください。 設定値 CollationOrderプロパティの設定値は次のとおりです。 設定値 意味 0 指定なし(システムの照合順序)。(省略値) 1 複数バイトが混在しても文字単位に比較します。 2 符号(+、-)文字を含む数字を算術的に扱います。 3 文字列、数字列と続いたデータを文字部と数字部で分けて比較します。 解説 ● この指定を省略した場合、または0を設定した場合はシステムの照合順序で比較します。 レコードは文字コードの大小関係で並びが決定します。 ● 1を設定すると、複数バイトから成る文字が混在していても、文字ごとに比較して並べま す。 ● 2を設定すると、符号を含んだ数字の文字列を算術的な値で比較します。文字列中に数字 以外の文字が存在した場合の保証はされません。 ● 3を設定すると、英字と数字が連結されたデータを英字と数値に分けて比較します。英字 だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。指定フィ 106 5.3 実行前に設定するプロパティ ールドの左から評価し、有効データ後に出現したデータは無視します。 ● このプロパティで指定された値は、テキストファイルの処理でソート処理 (DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)において、キーフィールド を省略した場合に有効となります。 [参照] ● ● ● ● ● AlphaNumOnlyプロパティ CompareAsUpperCaseプロパティ IgnoreControlCodeプロパティ Reverseプロパティ SkipLeadingBlankプロパティ 5.3.7 CompareAsUpperCaseプロパティ 英小文字を英大文字として扱うように設定します。 構文 object.CompareAsUpperCase = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean 英小文字を英大文字として扱うかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 booleanの設定値は次のとおりです。 設定値 意味 True 英小文字を英大文字として扱います。 False 英小文字と英大文字は別々に扱います。(省略値) 解説 ● Trueを指定した場合は、英小文字は英大文字と等しいとみなします。これにより、 “a”と “A”は必ず“b”および“B”より小さい文字と評価され、同じ英字の文字列を集めるこ とができます。ただし、“a”と“A”の順序は不定になります。 ● この指定を省略した場合は、それぞれの文字コードで順序が決まります。 ● このプロパティで指定された値は、テキストファイルの処理でソート処理 (DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)のキーフィールドを省略し た場合に有効となります。 例) CompareAsUpperCaseプロパティの設定値による並びの違いを以下に示します。 Trueを指定した場合の並び A→a→b→B→…→y→Y→Z→z Falseを指定した場合の並び A→B→C→…→X→Y→Z→a→b→c→…→x→y→z [参照] ● AlphaNumOnlyプロパティ ● CollationOrderプロパティ ● IgnoreControlCodeプロパティ 107 第5章 OCXを使用してPowerSORTを使用する ● Reverseプロパティ ● SkipLeadingBlankプロパティ 5.3.8 DispMessageプロパティ PowerSORT OCXのメッセージダイアログボックス出力について指定します。 構文 object.DispMessage = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean メッセージダイアログボックスを表示するかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 DispMessageプロパティの設定値は次のとおりです。 設定値 意味 True メッセージダイアログボックスを表示します。 False メッセージダイアログボックスは表示しません。(省略値) 解説 ● Trueを指定すると、画面にメッセージダイアログボックスを表示します。 ● この指定を省略した場合、メッセージダイアログボックスは表示されません。 ● いずれの場合でもエラー情報はErrorCodeプロパティ、ErrorDetailプロパティおよび SubErrorCodeプロパティにエラーコードが設定されます。 [参照] ● エラー詳細コード(ErrorCodeが0,-1,-2のとき) ● エラー詳細コード(ErrorCodeが-3のとき) ● エラー詳細コード(ErrorCodeが-4のとき) ● 富士通COBOLファイルに関するエラーコード 5.3.9 DisposalNumberプロパティ 実行する主要機能を設定します。 構文 object.DisposalNumber = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer 実行する主要機能を設定します。 設定する値については、次の設定値を参照してください。 108 5.3 実行前に設定するプロパティ 設定値 DisposalNumberプロパティの設定値は次のとおりです。 設定値 意味 0 ソート機能を実行します。(省略値) 1 マージ機能を実行します。 2 コピー機能を実行します。 解説 ● この指定を省略した場合、ソート機能が実行されます。 [参照] ● 主要機能 ● オプション機能と主要機能の組合せ 5.3.10 EnableOverwriteInputFileプロパティ ソート処理の場合に、入力ファイルへの上書き処理について指定します。 構文 object.EnableOverwriteInputFile = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean 入力ファイルの上書きを許可するかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 EnableOverwriteInputFileプロパティの設定値は次のとおりです。 設定値 意味 True 入力ファイルの上書きを許可します。 False 入力ファイルの上書きは許可しません。(省略値) 解説 ● 入力ファイルの既存データをソート処理結果に書き換える、上書き許可を指定します。ソ ート処理(DisposalNumber = 0)のとき、OutputFileプロパティで設定した出力ファイル 名が、InputFilesプロパティで設定した入力ファイル名の1つと一致した場合に有効とな ります。 ● EnableOverwriteInputFileプロパティは、ファイルを保護する機能です。Falseを設定し た状態で、出力ファイル名を入力ファイル名の1つと同じ名前にした場合、処理開始前に エラー終了します。入力ファイル中のデータを書き換えてよい場合にのみTrueを設定して ください。 ● この指定を省略した場合、入力ファイルの上書きは許可しません。 109 第5章 OCXを使用してPowerSORTを使用する Trueを指定し、ソート処理中に異常が発生した場合、入力ファイルのデータは保証されな い場合がありますので、注意してください。 5.3.11 FieldDefinitionプロパティ テキストファイルを処理する場合のフィールドの指定方法を設定します。 構文 object.FieldDefinition = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer フィールドの指定方法を設定します。 設定する値については、次の設定値を参照してください。 設定値 FieldDefinitionプロパティの設定値は次のとおりです。 設定値 意味 0 浮動フィールドで指定します。(省略値) 1 固定フィールドで指定します。 解説 ● テキストファイルを処理する場合のフィールドの指定方法を設定します。 ● 浮動フィールドは、フィールドの位置をフィールド分離文字によって区切られたフィール ド番号によって指定します。フィールド分離文字の位置によりフィールドの位置が決まる ため、レコードごとにフィールドの位置(カラム位置)は異なります。フィールド分離文 字はFieldDelimiterプロパティで指定できます。 ● 固定フィールドは、フィールドの位置をレコードの先頭からのカラム位置で指定します。 ● この指定を省略した場合、フィールドの位置を浮動フィールドで指定します。 [参照] ● SelCmdStrプロパティ ● RconCmdStrプロパティ ● SumCmdStrプロパティ ● HandlingSameKeyプロパティ 5.3.12 FieldDelimiterプロパティ テキストファイル浮動フィールド指定の場合のフィールド分離文字を設定します。 構文 object.FieldDelimiter = string 110 5.3 実行前に設定するプロパティ object オブジェクトへの参照を表すオブジェクト式を指定します。 string フィールド分離文字を指定します。 解説 ● テキストファイル浮動フィールド指定の場合のフィールド分離文字を設定します。 ● 浮動フィールド形式で各種フィールドを指定する場合に、レコード内のフィールドの区切 りを示すフィールド分離文字を指定できます。この指定を省略した場合、空白およびタブ をフィールド分離文字とします。 ● フィールド分離文字は、文字列または16進数で指定します。 ● 文字列で指定する場合は、全体をクォーテーション( ' )で囲みます。クォーテーション ( ' )を分離文字とする場合は、クォーテーション( ' )の前に円記号( \ )を指定します。 また、円記号( \ )をフィールド分離文字とする場合は、円記号( \ )を2つ続けて指定し ます。 ● 16進数で指定する場合は、先頭にxを付け16進コードを続けて設定します。タブなど文字 として入力できないコードを指定できます。 ● レコード分離文字と同じ文字は指定できません。レコード分離文字は、LineDelimiterプ ロパティで指定します。 ● 浮動フィールドのフィールド番号は、先頭のフィールドが0となります。 ● フィールド分離文字の指定を省略した場合、レコードの先頭の空白またはタブは先頭のフ ィールドに含まれます。レコードの先頭以外の空白またはタブが連続している場合は、最 初の空白がフィールド分離文字となり、残りの空白はフィールドの一部となります。 ● フィールド分離文字を指定し、フィールド分離文字が連続して存在した場合、2つの分離 文字の間に空フィールドが存在するとみなします。フィールド分離文字はフィールドには 含まれません。 記述例 フィールド分離文字の指定例を示します。 文字列指定 1つの空白 ' ' 1つの円記号( \ ) '\\' 空白とクォーテーション( ' ) ' \'' 16進数指定 タブの指定 x09 [参照] ● FieldDefinitionプロパティ 5.3.13 FjcobAlternateKeyプロパティ 富士通COBOL索引ファイルの場合に、副キーを設定します。 111 第5章 OCXを使用してPowerSORTを使用する 構文 object.FjcobAlternateKey = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 富士通COBOL索引ファイルの副キーを記述形式に従って指定します。 stringの記述形式 [D] (pos,len [/pos,len] ...) [ [D] (pos,len [/pos,len] ...) ...] D 副キーとするデータ項目が、他のキーと重複する場合に指定します。 pos 富士通COBOL索引ファイルの副キーの位置を指定します。 位置はキーとするデータ項目のレコードの先頭からの相対位置(0バイトから始まるバイト数)を指定 します。 len 索引ファイルの副キーの長さを指定します。 posに続けてコンマ( , )で区切って指定します。なお、主キー(FjcobPrimeKeyプロパティ)と副キー (FjcobAlternateKeyプロパティ)すべての長さの合計は、254バイト以下になるように設定してくださ い。 / 1つのキーとして、非連続な複数のキーを指定する場合、「/」で区切ります。 解説 ● 富士通COBOL索引ファイル(OutputFileType = 3)の場合に、副キーを指定します。副キー は省略可能です。 ● 副キーのデータ形式はASCIIコードで、常に昇順で並べられます。 ● 富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。 ● ( )でくくられた指定をセグメントと呼びます。複数のセグメントを指定する場合は、セ グメントを続けて記述するか、空白またはタブで区切ります。例えば、 D(1,2/4,4)D(10,8/20,1) と記述します。 [参照] ● ● ● ● ● 112 OutputFileTypeプロパティ FjcobDataCompressionプロパティ FjcobKeyCompressionプロパティ SubErrorCodeプロパティ 富士通COBOLに関するエラーコード 5.3 実行前に設定するプロパティ 5.3.14 FjcobDataCompressionプロパティ 出力ファイルが富士通COBOL索引ファイルの場合に、レコードの圧縮を指定します。 構文 object.FjcobDataCompression = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean レコードを圧縮するかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 FjcobDataCompressionプロパティの設定値は次のとおりです。 設定値 意味 True レコードを圧縮します。(省略値) False レコードを圧縮しません。 解説 ● 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、レコードの圧 縮について設定します。 ● この指定を省略した場合、レコードを圧縮します。 富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。 [参照] ● OutputFileTypeプロパティ ● FjcobAlternateKeyプロパティ ● ● ● ● FjcobKeyCompressionプロパティ FjcobPrimeKeyプロパティ SubErrorCodeプロパティ 富士通COBOLに関するエラーコード 5.3.15 FjcobKeyCompressionプロパティ 出力ファイルが富士通COBOL索引ファイルの場合に、索引キーの圧縮を指定します。 構文 object.FjcobKeyCompression = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 113 第5章 OCXを使用してPowerSORTを使用する boolean 索引キーの圧縮をするかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 FjcobKeyCompressionプロパティの設定値は次のとおりです。 設定値 意味 True 索引キーを圧縮します。(省略値) False 索引キーを圧縮しません。 解説 ● 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、索引キーの圧 縮について設定します。 ● この指定を省略した場合、索引キーを圧縮します。 富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。 [参照] ● OutputFileTypeプロパティ ● FjcobAlternateKeyプロパティ ● FjcobDataCompressionプロパティ ● FjcobPrimeKeyプロパティ ● SubErrorCodeプロパティ ● 富士通COBOLに関するエラーコード 5.3.16 FjcobPrimeKeyプロパティ 出力ファイルが富士通COBOL索引ファイルの場合に、主キーを設定します。 構文 object.FjcobPrimeKey = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 富士通COBOL索引ファイルの主キーを記述形式に従って指定します。 stringの記述形式 [D] (pos.len [/pos.len] ...) D 主キーとするデータ項目が、他のキーと重複する場合に指定します。 pos 富士通COBOL索引ファイルの主キーの位置を指定します。 114 5.3 実行前に設定するプロパティ 位置はキーとするデータ項目のレコードの先頭からの相対位置(0バイトから始まるバイト数)を指定 します。 len 富士通COBOL索引ファイルの主キーの長さを指定します。 なお、主キー(FjcobPrimeKeyプロパティ)と副キー(FjcobAlternateKeyプロパティ)すべての長さの合 計は、254バイト以下になるように設定してください。 / 1つのキーとして、非連続な複数のキーを指定する場合、「/」で区切ります。 解説 ● 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、主キーを設定 します。主キーは省略できません。 ● 主キーのデータ形式はASCIIコードで、常に昇順で並べられます。 富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。 [参照] ● ● ● ● FjcobDataCompressionプロパティ FjcobKeyCompressionプロパティ SubErrorCodeプロパティ 富士通COBOLに関するエラーコード 5.3.17 HandlingSameKeyプロパティ キーフィールドが等しいレコードの処理方法を設定します。 構文 object.HandlingSameKey = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer キーフィールドが等しいレコードの処理方法を設定します。 設定する値については、次の設定値を参照してください。 設定値 HandlingSameKeyプロパティの設定値は次のとおりです。 設定値 意味 0 順不定で処理します。(省略値) 1 先入力先出力(FIFO)機能に従ってレコードの出力順序を決定します。 2 サプレス機能によりレコードを削除します。 3 レコード集約機能を使用します。 115 第5章 OCXを使用してPowerSORTを使用する 解説 ● キーフィールドが等しい複数のレコードがある場合の、レコードの出力方法を指定します。 ● 指定を省略した場合、または0を設定した場合は、キーフィールドが等しいレコードの出 力順序は不定になります。 ● 1を設定すると、キーフィールドが等しい複数のレコードを入力順に出力します。ソート 機能の場合に有効です。 ● 2を設定すると、キーフィールドが等しい複数のレコードから、1つのレコードだけ残して 他を削除します。出力されるレコードはすべてキーフィールドが異なることになります。 キーフィールドが等しい複数のレコードのうち、どのレコードが残るかは不定で、指定は できません。ソート処理またはマージ処理の場合に有効です。 ● 3を設定すると、キーフィールドが等しい複数のレコードの集約フィールドの値を加算し、 1つのレコードにします。この場合、SumCmdStrプロパティで、集約フィールドを指定する 必要があります。キーフィールドが等しい複数のレコードのうち、どのレコードが残るか は不定で、指定はできません。ソート処理またはマージ処理の場合に有効です。 Micro Focus COBOL索引ファイルで先入力先出力(FIFO)機能を指定した場合は、インデッ クス順ではなく物理順で優先順位が決定します。 [参照] ● オプション機能 ● オプション機能と主要機能の組合せ ● KeyCmdStrプロパティ 5.3.18 IgnoreControlCodeプロパティ 制御文字コードを無視するように設定します。 構文 object.IgnoreControlCode = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean 制御文字コードを無視するかどうかを指定します。 設定する値については、次の設定値を参照してください。 設定値 IgnoreControlCodeプロパティの設定値は次のとおりです。 設定値 意味 True 制御文字コードは無視します。 False 制御文字コードも処理します。(省略値) 解説 ● キーフィールドの比較対象として、制御文字コードを無視するかどうかを指定します。 ● Trueを指定すると、制御文字コードを除いて比較し、レコードの順序を決定します。ただ 116 5.3 実行前に設定するプロパティ し、空白とタブは文字として比較対象となります。 ● データ形式がUnicode UCS-2形式の場合は、無視されます。 ● この指定を省略した場合、制御文字コードも比較対象となります。 ● このプロパティで指定された値は、テキストファイルの処理でソート処理 (DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)のキーフィールドを省略し た場合に有効となります。 [参照] ● ● ● ● AlphaNumOnlyプロパティ CollationOrderプロパティ CompareAsUpperCaseプロパティ Reverseプロパティ ● SkipLeadingBlankプロパティ 5.3.19 InputDataCodeプロパティ 入力ファイルのコード系を指定します。 構文 object.InputDataCode = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer 入力ファイルのコード系を設定します。 設定する値については、次の設定値を参照してください。 設定値 InputDataCodeプロパティの設定値は次のとおりです。 設定値 意味 0 ASCIIコード系(富士通COBOL形式) (省略値) 1 ASCIIコード系(MF COBOL形式、COBOL/2形式) 2 EBCDICコード系 3 Unicode系(UCS-2形式) 4 Unicode系(UTF-8形式) 解説 ● テキストファイルのときは、InputDataCodeプロパティにEBCDICコード系を選択できませ ん。 ● この指定を省略した場合は、ASCIIコード系(富士通COBOL形式)となります。 5.3.20 InputFilesプロパティ ソート処理、マージ処理およびコピー処理の入力ファイルパス名を設定します。 構文 object.InputFiles = string 117 第5章 OCXを使用してPowerSORTを使用する object オブジェクトへの参照を表すオブジェクト式を指定します。 string 入力ファイルパス名を指定します。 解説 ● ソート処理、マージ処理およびコピー処理の入力ファイルパス名を設定します。入力ファ イルパス名は、省略できません。 ● 入力ファイルパス名には、ロングファイル名が指定できます。 ● 複数の入力ファイルパス名も設定可能です。複数のファイルパス名を指定する場合、ファ イル名は空白で区切ります。 ● 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション ( " )で囲みます。 ● 入力ファイルパス名を複数指定する場合は、同じファイル種別のファイルしか指定できま せん。 [参照] ● PowerSORTの入出力環境 ● EnableOverwriteInputFileプロパティ ● InputFileTypeプロパティ ● ● ● ● InputFilesSkiprecプロパティ MaxRecordLengthプロパティ OutputFileプロパティ OutputFileTypeプロパティ 5.3.21 InputFileTypeプロパティ ソート処理、マージ処理およびコピー処理の対象となる入力ファイルのファイル種別とレコード形式 を設定します。 構文 object.InputFileType = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer 入力ファイルのファイル種別を決定する数値を指定します。 設定する値については、次の設定値を参照してください。 設定値 InputFileTypeプロパティの設定値は次のとおりです。 118 5.3 実行前に設定するプロパティ 設定値 意味 0 テキストファイル (省略値) 1 バイナリ固定長ファイル 2 富士通COBOL順固定長ファイル 3 富士通COBOL順可変長ファイル 4 富士通COBOL索引固定長ファイル 5 富士通COBOL索引可変長ファイル 6 富士通COBOL相対固定長ファイル 7 富士通COBOL相対可変長ファイル 8 Micro Focus COBOL順固定長ファイル 9 Micro Focus COBOL順可変長ファイル 10 Micro Focus COBOL索引固定長ファイル 11 Micro Focus COBOL索引可変長ファイル 12 Micro Focus COBOL相対固定長ファイル 13 Micro Focus COBOL相対可変長ファイル 14 Btrieve固定長ファイル 15 Btrieve可変長ファイル 16 RDM固定長ファイル 解説 ● 入力ファイルのファイル種別を設定します。設定できるファイル種別は1種類です。 ● 複数の入力ファイルをInputFilesプロパティで指定する場合、すべて同じファイル種別の 入力ファイルを指定してください。 ● 入力ファイル種別として、富士通COBOLファイル(設定値:2~7)を設定する場合、富士通 COBOLファイルシステムが必要です。 ● データが圧縮されたMicro Focus COBOL索引ファイルを入力ファイルに指定することはで きません。 ● PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、ア クセスすることができません。また、入力ファイル種別として富士通COBOL索引固定長フ ァイル(設定値:4)または富士通COBOL索引可変長ファイル(設定値:5)を指定した場合は、 富士通COBOLファイルシステムが共用モードで開いていたとしてもアクセスすることがで きません。共用モード、排他モードについては、お使いの富士通COBOLファイルシステム のマニュアルを参照してください。 ● 入力ファイル種別として、Btrieveファイル(設定値:14、15)を設定する場合、Btrieve ファイルシステムが必要です。 ● 入力ファイル種別として、RDM固定長ファイル(設定値:16)を設定する場合、RDM運用環境 が必要です。 ● 富士通COBOL ファイルシステム(BSAM対 応順ファイル)を使用する場合は、環境変数 BSORT_COBFSYS_MODEにBSAMを指定した上で、富士通COBOL順固定長ファイル(設定値:2)、 または富士通COBOL順可変長ファイル(設定値:3)を設定してください。 [参照] ● PowerSORTの入出力環境 ● EnableOverwriteInputFileプロパティ ● MaxRecordLengthプロパティ 119 第5章 OCXを使用してPowerSORTを使用する ● OutputFileプロパティ ● OutputFileTypeプロパティ 5.3.22 InputFilesSkiprecプロパティ ソート処理、マージ処理およびコピー処理の対象となる入力ファイルから読み飛ばすレコード件数を 設定します。 構文 object.InputFilesSkiprec = string [ ,string... ] object オブジェクトへの参照を表すオブジェクト式を指定します。 string 入力ファイルの先頭から読み飛ばすレコード件数を設定します。 解説 ● 入力ファイルの先頭から読み飛ばすレコード数を設定します。読み飛ばしたレコードはソ ート処理、マージ処理またはコピー処理の対象にはなりません。 ● 読み飛ばすレコード件数は、入力ファイルごとに指定できます。InputFilesプロパティで 指定した入力ファイルの順序に対応して、コンマ( , )で区切って指定します。 ● 指定を省略するとすべてのレコードが処理対象となります。入力ファイル名の数より指定 が少ない場合は、指定のない入力ファイルのレコードはすべて処理対象となります。入力 ファイル名の数より指定が多い場合は、入力ファイルに対応しない指定は無効となります。 5.3.23 KeyCmdStrプロパティ ソート処理およびマージ処理のキーフィールドを設定します。 構文 object.KeyCmdStr = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string キーフィールドを記述形式に従って指定します。 stringの記述形式 pos.len typ opt [ M kanji-def ] [, pos.len typ opt [ M kanji-def ]...] pos キーフィールドの位置を指定します。レコードの先頭を0として計算します。入力がテキストファイ ルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールドまたは固定フィールドで指 定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィ ールド番号を、固定フィールドはカラム位置を指定します。 120 5.3 実行前に設定するプロパティ len キーフィールドの長さをピリオド( . )に続けて指定します。データ形式により指定できる長さに上 限があります。詳細は、キーフィールドに指定可能なデータ形式を参照してください。 テキストファイルで浮動フィールドとして処理する場合、指定したフィールド長よりも長いフィール ドが現れると、指定したフィールド長で処理されます。逆に指定したフィールド長よりも短いフィー ルドが現れると、実際のフィールド長で処理されます。 データ形式(typ)に符号なし2進数(bit)を指定する場合は、マスク値を10進数の1~255の範囲で指定 します。この場合、フィールド値とマスク値の論理積がキー値となります。例えば、フィールド値が 16進数の8e、マスク値として3を指定した場合、キー値は16進数の02になります。 typ キーフィールドのデータ形式をlenに続けて指定します。詳細は、キーフィールドに指定可能なデー タ形式を参照してください。 opt キーフィールドの操作をtypに続けて指定します。詳細は、キーフィールドの操作の種類を参照して ください。 M kanji-def 漢字フィールドを指定します。漢字フィールドの指定方法については、kanji-defの記述形式を参照 してください。 解説 ● キーフィールドは、位置、長さ、データ形式および操作で定義します。省略時は、レコー ド全体をキーフィールドとみなし、コード順に並べます。 ● 複数のキーフィールドを指定する場合は、キーフィールドを連続して指定するか、コンマ ( , )で区切って指定します。 記述例 例1) レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。 0.10asca 例2) レコードの先頭から5バイトのASCIIコードのフィールドを降順に、20バイトめから1バイトの外 部10進数を昇順に並べる指定です。 0.5ascr,19.1zdla 例3) レコードの10バイトめから20バイトの漢字(ASCIIコード)のフィールドを総画順、音読み順の昇 順として並べる指定です。 9.20ascam MstdSO 例4) レコードの10バイトめから20バイトの漢字(ASCIIコード)のフィールドに対するふりがなフィ ールドが、レコードの50バイトめから10バイトにASCIIコードで記述されており、これを国語辞典の 並びで昇順に並べる指定です。 9.20ascam Mdic49.10asc [参照] ● ● ● ● ● FieldDelimiterプロパティ HandlingSameKeyプロパティ LineDelimiterプロパティ MaxRecordLengthプロパティ RconCmdStrプロパティ ● SelCmdStrプロパティ ● SumCmdStrプロパティ 121 第5章 OCXを使用してPowerSORTを使用する 5.3.24 LineDelimiterプロパティ テキストファイルのレコード分離文字を設定します。 構文 object.LineDelimiter = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer レコード分離文字を設定します。設定する値については、次の設定値を参照してください。 設定値 LineDelimiterプロパティの設定値は次のとおりです。 設定値 意味 0 CRLF (省略値) 1 CR 2 LF 解説 ● レコード分離文字は、CRLF(復帰改行)、CR(復帰)または LF(改行)から選択できます。 ● 一般的な形式のテキストファイルは、CRLFで分離されています。 ● レコード分離文字のバイト数は、CRとLFが1バイト、CRLFが2バイトです。入力ファイルの コード系がUnicode系(UCS-2形式)の場合は、CRとLFが2バイト、CRLFが4バイトとなります。 ● テキストファイルのレコード長は、このレコード分離文字の長さを含めて指定します。 ● この指定を省略した場合、レコード分離文字はCRLFになります。 [参照] ● MaxRecordLengthプロパティ 5.3.25 MaxRecordLengthプロパティ 入力レコードのレコード長または最大レコード長を設定します。 構文 object.MaxRecordLength = long object オブジェクトへの参照を表すオブジェクト式を指定します。 long 入力レコードのレコード長または最大レコード長を設定します。設定可能なレコード長または最大レ コード長は1~32000バイトです。 解説 ● バイナリファイルの場合は、レコードが固定長レコード形式のとき、そのレコード長を指 122 5.3 実行前に設定するプロパティ 定し、レコードが可変長レコード形式のとき、そのレコードの最大レコード長を指定しま す。 ● テキストファイルの場合は、レコード分離文字を含む最大レコード長を指定します。 ● 固定長レコード形式では、実際のレコード長と指定値が合わない場合、エラー終了します。 可変長レコード形式の場合は、実際のレコード長が指定値より大きい場合にエラー終了し ます。 ● レコード分離文字はLineDelimiterプロパティで設定します。標準は長さ2バイトのCRLF です。入力ファイルのコード系がUnicode系(UCS-2形式)の場合は、CRLFが4バイトとなり ます。全角の日本語文字など2バイトコードの文字は、1文字で2バイトとして計算します。 5.3.26 MessageFileNameプロパティ PowerSORTのメッセージを出力するファイルパス名を設定します。 構文 object.MessageFileName = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string メッセージファイルパス名を指定します。 解説 ● メッセージファイルパス名には、ロングファイル名を指定できます。 ● 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション ( " )で囲みます。 ● 指定できるメッセージファイルパス名は1つです。 ● 出力されるメッセージは、MessageLevelプロパティまたは環境変数BSORT_MSGLEVELの指定 により決まります。 MessageFileNameプロパティの指定は、環境変数BSORT_MSGFILEの指定より優先されます。 [参照] ● MessageLevelプロパティ 5.3.27 MessageLevelプロパティ PowerSORTが出力するメッセージのレベルを設定します。 構文 object.MessageLevel = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 123 第5章 OCXを使用してPowerSORTを使用する integer 出力するメッセージのレベルを設定します。設定する値については、次の設定値を参照してください。 設定値 MessageLevelプロパティの設定値は次のとおりです。 設定値 意味 0 エラーメッセージを出力します。2の指定と同意です。 (省略値) 1 何も出力しません。 2 エラーメッセージを出力します。 3 エラーメッセージと処理件数メッセージを出力します。 解説 ● メ ッ セ ー ジ を 出 力 す る た め に は 、 MessageFileName プ ロ パ テ ィ ま た は 環 境 変 数 BSORT_MSGFILEで、メッセージを出力するファイルパス名の設定が必要です。 MessageLevelプロパティの指定は、環境変数BSORT_MSGLEVELの指定より優先されます。 5.3.28 OutputFileプロパティ ソート処理、マージ処理およびコピー処理の出力ファイルパス名を設定します。 構文 object.OutputFile = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 出力ファイルパス名を指定します。 解説 ● 出力ファイルパス名には、ロングファイル名が指定できます。 ● 指定できるファイルパス名は1つです。 ● 空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で 囲みます。 [参照] ● ● ● ● ● ● 124 PowerSORTの入出力環境 EnableOverwriteInputFileプロパティ InputFilesプロパティ InputFileTypeプロパティ MaxRecordLengthプロパティ OutputFileTypeプロパティ 5.3 実行前に設定するプロパティ 5.3.29 OutputFileTypeプロパティ ソート処理、マージ処理およびコピー処理の出力ファイルのファイル種別を設定します。 構文 object.OutputFileType = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer 出力ファイルのファイル種別を設定します。 設定する値については、次の設定値を参照してください。 設定値 OutputFileTypeプロパティの設定値は次のとおりです。 設定値 意味 0 テキストファイル (省略値) 1 バイナリ固定長ファイル 2 富士通COBOL順ファイル 3 富士通COBOL索引ファイル 4 富士通COBOL相対ファイル 5 Micro Focus COBOL順編成ファイル 6 (Reserved) 7 Micro Focus COBOL相対ファイル 8 Btrieveファイル 9 RDMファイル ● 出力ファイル種別として、富士通COBOLファイル(設定値:2~4)を設定する場合、富士通 COBOLファイルシステムが必要です。 ● 出力ファイルにMicro Focus COBOL索引ファイルを指定することはできません。 ● 出力ファイル種別として、Btrieveファイル(設定値:8)を設定する場合、Btrieveファイ ルシステムが必要です。 ● 出力ファイル種別として、RDMファイル(設定値:9)を設定する場合、RDM運用環境が必要 です。 ● この指定を省略した場合は、テキストファイルとなります。 ● 富士通COBOL ファイルシステム(BSAM対応順ファイル)を使用する場合は、環境変数 BSORT_COBFSYS_MODEにBSAMを指定した上で、富士通COBOL順ファイル(設定値:2)を設定し てください。 [参照] ● PowerSORTの入出力環境 ● EnableOverwriteInputFileプロパティ ● InputFilesプロパティ ● InputFileTypeプロパティ ● MaxRecordLengthプロパティ ● OutputFileプロパティ 125 第5章 OCXを使用してPowerSORTを使用する 5.3.30 RconCmdStrプロパティ ソート処理、マージ処理およびコピー処理の再編成フィールドを設定します。 構文 object.RconCmdStr = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 再編成フィールドを記述形式に従って指定します。 stringの記述形式 { pos.len | slf.len typ } [ { pos.len | slf.len typ } ...] pos.len 入力レコードの位置と長さを指定します。posとlenの間には、ピリオド( . )を入れます。指定した フィールドが入力レコードの中に存在しない場合はエラーになります。テキストファイルや可変長レ コード形式のファイルの場合は、ファイル内の最小レコード長以下となるよう、posとlenを指定しま す。 pos 再編成フィールドの位置を指定します。レコードの先頭を0として計算します。入力がテキストファ イルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールドまたは固定フィールドで 指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフ ィールド番号を、固定フィールドはカラム位置を指定します。 len 再編成フィールドの長さをピリオド( . )に続けて指定します。テキストファイル浮動フィールド指 定の場合、指定したフィールド長よりも長いフィールドが現れると、指定したフィールド長で処理さ れます。逆に指定したフィールド長よりも短いフィールドが現れると、実際のフィールド長で処理さ れます。 slf.len typ 自己規定値を値、長さ、データ形式で指定します。slfとlenの間には、ピリオド( . )を入れます。 自己規定値に指定可能なデータ形式と長さについては、再編成フィールドの自己規定値に指定可能な データ形式を参照してください。 slf 自己規定値を指定します。以下の3つの形式があります。 形式 指定方法 126 文字列 '文字列' 文字列をクォーテーション( ' )で囲みます。 例) '123' 16進数 x16進数 先頭にxを置き、16進コードを続けます。 例) x313233 10進数 d10進数 先頭にdを置き、10進数を続けます。また、符号(+、-)を付 けることもできます。 例) d123、d+123、d-123 5.3 実行前に設定するプロパティ len 自己規定値の長さをピリオド( . )に続けて指定します。 typ 自己規定値のデータ形式を指定します。 解説 ● レコード再編成機能により、入力レコードの構成を変更できます。レコードを再編成する 場合は、入力レコードを構成するフィールドを左端から順番に指定します。再編成フィー ルドの指定方法には、入力レコードからの複写と、自己規定値の設定があります。 ● 入力レコードのフィールドを複写する場合は、再編成フィールドに複写するフィールドの 位置と長さを指定します。自己規定値を設定する場合は、設定する値と長さ、およびデー タ形式を指定します。フィールドと自己規定値は組み合わせて指定できます。 ● 再編成フィールドに入力レコードのフィールドを指定する場合は、入力レコード内のフィ ールドを指定してください。テキストファイルや可変長レコード形式のファイルの場合は、 入力ファイル内の最小レコード長以下となるように位置と長さを指定します。 ● 複数の再編成フィールドを指定する場合は、コンマ( , )で区切って指定します。 ● 自己規定値で指定した値とlenで指定した長さが異なるときは、以下に示すように処理し ます。 ― 自己規定値が文字列の場合、自己規定値で指定した文字列の長さがlenで指定した 長さより短いときは、自己規定値を左詰めにして右余白に空白を詰めます。自己規 定値で指定した文字列の長さがlenで指定した長さより長い場合は、エラーとなり ます。 ― 自己規定値が数値または数字の場合、自己規定値で指定した値をlenとtypで指定し たデータ形式と長さに変換して埋め込みます。変換結果がlenを超える場合は、エ ラーとなります。 レコード再編成機能を使用する場合、KeyCmdStrプロパティおよびSumCmdStrプロパティで 指定するキーフィールド、集約フィールドの位置(pos)、長さ(len)は、レコード再編成後 のレコードに対して指定します。 記述例 例1) 入力レコードの20バイトめから10バイト、50バイトめから12バイト、30バイトめから22バイト のフィールドを順番に複写し、入力レコードを再構成します。再編成後のレコードの長さは、44バイ トになります。テキストファイルの場合は、レコード分離文字が付加されます。テキスト浮動フィー ルド指定の場合は、さらにフィールド分離文字が付加されます。 19.10,49.12,29.22 例2) レコードの先頭から3バイトの長さで、ASCIIコードの文字列 'abc' を埋め込み、入力レコード の20バイトめから10バイトのフィールドを後に複写して、入力レコードを再構成します。再編成後の レコード長は、13バイトになります。テキストファイルの場合は、レコード分離文字が付加されます。 テキスト浮動フィールド指定の場合は、さらにフィールド分離文字が付加されます。 'abc'.3asc,19.10 [参照] ● FieldDelimiterプロパティ ● HandlingSameKeyプロパティ ● LineDelimiterプロパティ 127 第5章 OCXを使用してPowerSORTを使用する ● MaxRecordLengthプロパティ ● SelCmdStrプロパティ 5.3.31 Reverseプロパティ キーフィールドの指定が省略された場合の入力レコードの並びを設定します。 構文 object.Reverse = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean キーフィールドの指定が省略されたとき、入力レコードの並びを設定します。設定する値については、 次の設定値を参照してください。 設定値 Reverseプロパティの設定値は次のとおりです。 設定値 True 降順で並べます。 False 昇順で並べます。(省略値) 意味 解説 ● ソート処理(DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)において、キー フィールド(KeyCmdStrプロパティ)の指定を省略した場合の並びを指定します。この指定 に従い、レコード全体をキーフィールドとみなし、コード順に並べます。 ● この指定を省略した場合は、昇順で並べます。 [参照] ● AlphaNumOnlyプロパティ ● CollationOrderプロパティ ● CompareAsUpperCaseプロパティ ● IgnoreControlCodeプロパティ ● SkipLeadingBlankプロパティ 5.3.32 SelCmdStrプロパティ ソート処理、マージ処理およびコピー処理の選択フィールドを設定します。 構文 object.SelCmdStr = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 選択フィールドを指定します。 128 5.3 実行前に設定するプロパティ 記述形式 pos.len typ opt.cmp. { pos.len typ | slf } [{ AND | OR } pos.len typ opt.cmp. { pos.len typ | slf } ...] pos 選択フィールドの位置を指定します。レコードの先頭を0として計算します。入力がテキストファイ ルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールドまたは固定フィールドで指 定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィ ールド番号を、固定フィールドはカラム位置を指定します。 len 選択フィールドの長さをピリオド( . )に続けて指定します。データ形式により指定できる長さに上 限があります。指定できる長さについては、選択フィールドに指定可能なデータ形式を参照してくだ さい。 テキストファイルで浮動フィールドとして処理する場合、指定したフィールド長よりも長いフィール ドが現れると、指定したフィールド長で処理されます。逆に指定したフィールド長よりも短いフィー ルドが現れると、実際のフィールド長で処理されます。 データ形式(typ)に符号なし2進数(bit)を指定する場合は、長さにはマスク値を10進数の1 ~255の範 囲で指定してください。この場合、フィールド値とマスク値の論理積がキー値となります。例えば、 フィールド値が16進数の8e、マスク値として3を指定した場合、キー値は16進数の02になります。被 比較フィールドと比較フィールドには同じマスク値を指定します。 typ 選択フィールドのデータ形式をlenに続けて指定します。詳細は、被比較フィールドと比較フィール ドに指定可能なデータ形式を参照してください。 opt 選択フィールドの操作を指定します。この指定はテキストファイルのときに有効です。 指定できるオプションは、以下のとおりです。 操作 意味 b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字のみを比較の対象とします。 i 制御文字コードを無視します。空白およびタブは制御文字に含まれませ ん。 j 英小文字を英大文字として比較します。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。 cmp 比較演算子を指定します。cmpの前後にはピリオド( . )を設定し、空白を入れずに続けて記述します。 以下の比較演算子の1つを指定します。 比較演算子 意味(真の条件) eq 被比較フィールド = 比較フィールドまたは自己規定値 ne 被比較フィールド ≠ 比較フィールドまたは自己規定値 gt 被比較フィールド > 比較フィールドまたは自己規定値 ge 被比較フィールド ≧ 比較フィールドまたは自己規定値 lt 被比較フィールド < 比較フィールドまたは自己規定値 le 被比較フィールド ≦ 比較フィールドまたは自己規定値 slf 自己規定値を指定します。以下の3つの形式があります。被比較フィールドのデータ形式により、指 129 第5章 OCXを使用してPowerSORTを使用する 定できる形式が異なります。詳細は、被比較フィールドと自己規定値に指定可能なデータ形式の組合 せを参照してください。 形式 指定方法 文字列 '文字列' 文字列をクォーテーション( ' )で囲みます。 例) '123' 16進数 x16進数 先頭にxを置き、16進コードを続けます。 例) x313233 10進数 d10進数 先頭にdを置き、10進数を続けます。また、符号(+、-)を付 けることもできます。 例) d123、d+123、d-123 AND | OR 選択フィールドを複数指定する場合の、論理的な関係を指定します。ANDで結合された選択フィール ドは、両方の選択条件を満たすレコードのみが処理対象となります。ORで結合された選択フィールド は、どちらか一方の条件が満たされたレコードが処理対象となります。 ANDとORの優先順位は、ANDが高く、ANDが先に評価されます。a AND b OR cの指定ではaとbの条件を 同時に満たすか、cの条件を満たすレコードが選択されます。また、選択フィールドでは、括弧を使 うことはできません。a AND (b OR c)のような論理式は、a AND b OR a AND cと指定してください。 解説 ● レコード選択機能により、ソート処理、マージ処理またはコピー処理の対象とするレコー ドを選択できます。 ● 選択フィールドの指定方法には、入力レコードのフィールド同士を比較する方法と、入力 レコードのフィールドと自己規定値を比較する方法があります。また、複数の選択条件と 論理演算子を使用して、複雑な論理式を指定することができます。 ● 入力レコードのフィールドを指定する場合は、入力レコードの外を指定しないように位置 と長さを指定してください。テキストファイルや可変長ファイルの場合は、ファイル内の 最小レコード長以下となるよう、位置と長さを指定します。 ● 複数の選択フィールドを指定する場合は、各選択フィールドの関係を論理演算子ANDまた はORで指定します。 記述例 例1) 入力レコードの20バイトめから10バイトのASCIIコードと、30バイトめから10バイトのASCIIコ ードを比較し、等しければ処理の対象レコードとします。 19.10asc.eq.29.10asc 例2) 入力レコードの20バイトめから4バイトのASCIIコードを、ASCIIコードの文字列'abcd'と比較し、 等しくなければ処理の対象レコードとします。 19.4asc.ne.'abcd' 例3) 入力レコードの12バイトめから4バイトの固定小数点2進数のフィールドが、30以上のレコード を処理の対象レコードとします。 11.4fbi.ge.d30 例4) 入力レコードの20バイトめから10バイトの内部10進数のフィールドが、123より小さく、かつ、 入力レコードの50バイトめから4バイトの外部10進数のフィールドが、-123よりも大きいレコードを 処理の対象レコードとします。 19.10pdl.lt.d123 AND 49.4zdl.gt.d-123 [参照] ● FieldDelimiterプロパティ ● HandlingSameKeyプロパティ ● LineDelimiterプロパティ 130 5.3 実行前に設定するプロパティ ● ● ● ● MaxRecordLengthプロパティ KeyCmdStrプロパティ RconCmdStrプロパティ SumCmdStrプロパティ 5.3.33 SkipLeadingBlankプロパティ 先頭の空白とタブを無視するように設定します。 構文 object.SkipLeadingBlank = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean 先頭の空白とタブを無視するかどうか設定します。 設定する値については、次の設定値を参照してください。 設定値 SkipLeadingBlankプロパティの設定値は次のとおりです。 設定値 意味 True 先頭の空白とタブを無視します。 False 先頭の空白とタブを比較対象とします。(省略値) 解説 ● Trueを指定すると、フィールドの先頭の空白とタブを除いて比較し、レコードの順序を決 定します。 ● このプロパティで指定された値は、テキストファイルの処理でソート処理 (DisposalNumber = 0)またはマージ処理(DisposalNumber = 1)のキーフィールドを省略し た場合に有効となります。 ● この指定を省略した場合は、先頭の空白とタブも比較対象となります。 [参照] ● ● ● ● ● AlphaNumOnlyプロパティ CollationOrderプロパティ CompareAsUpperCaseプロパティ IgnoreControlCodeプロパティ Reverseプロパティ 5.3.34 SumCmdStrプロパティ ソート処理およびマージ処理の集約フィールドを設定します。 構文 object.SumCmdStr = string 131 第5章 OCXを使用してPowerSORTを使用する object オブジェクトへの参照を表すオブジェクト式を指定します。 string 集約フィールドを記述形式にしたがって指定します。 記述形式 pos.len typ [ pos.len typ ...] pos 集約フィールドの位置を指定します。レコードの先頭を0として計算します。入力がテキストファイ ルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールドまたは固定フィールドで指 定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィ ールド番号を、固定フィールドはカラム位置を指定します。 len 集約フィールドの長さをピリオド( . )に続けて指定します。 テキストファイルで浮動フィールドとして処理する場合、集約結果は指定されたフィールド長で処理 されます。指定したフィールド長より実際のフィールド長が長い場合、数字の左から指定フィールド 長分が有効となります。逆に指定したフィールド長より実際のフィールド長が短い場合、指定したフ ィールド長に拡張して処理します。 typ 集約フィールドのデータ形式をlenに続けて指定します。詳細は、集約フィールドに指定可能なデー タ形式を参照してください。 解説 ● キーフィールドが等しい複数のレコードの集約フィールドを加算し、1つのレコードにし ます。 ● レコード集約機能を使用する場合は、SumCmdStrプロパティの指定とHandlingSameKeyプロ パティに3(レコード集約)を設定する必要があります。 ● 複数の集約フィールドを指定する場合は、集約フィールドを連続して指定するか、コンマ ( , )で区切って指定します。 集約フィールドを指定する場合は、入力レコード内のフィールドを指定してください。テ キストファイルや可変長レコード形式のファイルの場合は、ファイル内の最小レコード長 以下となるように位置と長さを指定します。 記述例 例1) 入力レコードの20バイトめから10バイトの外部10進数のフィールドを集約します。 19.10zdl 例2) 入力レコードの10バイトめから10バイトの外部10進数のフィールドとレコードの30バイトめか ら8バイトの固定小数点2進数を集約します。 9.10zdl29.8fbi 132 5.3 実行前に設定するプロパティ 5.3.35 TempDirプロパティ ソート処理で使用する一時ファイルのフォルダ名を設定します。 構文 object.TempDir = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 一時ファイルのフォルダ名を指定します。 解説 ● 一時ファイルを作成するフォルダ名を指定します。PowerSORTは、メモリ内だけでは処理 できない大量のデータをソート処理する場合、TempDirプロパティで指定したフォルダに 一時ファイルを作成します。 ● 複数のフォルダ名を指定できます。複数のフォルダ名を指定することで、空きスペースの 不足によるエラーを回避できることがあります。 ● 複数のフォルダ名を指定する場合は、異なるフォルダ名をセミコロン( ; )で区切って指 定します。 ● この指定を省略した場合は、以下の優先順位に従って一時ファイルを作成するフォルダを 決定します。 1) 環境変数BSORT_TMPDIRで指定されたフォルダ 2) 環境変数TEMPで指定されたフォルダ 3) 環境変数TMPで指定されたフォルダ 4) Windowsシステムのフォルダ 指定されたフォルダが存在しない場合は、エラーとなります。 5.3.36 UsableMemorySizeプロパティ PowerSORTが使用する作業域の大きさ(メモリサイズ)を設定します。 構文 object.UsableMemorySize = long object オブジェクトへの参照を表すオブジェクト式を指定します。 long 作業域の大きさをキロバイト数で設定します。 設定可能な作業域の大きさは、0または64~32767キロバイトです。 解説 ● 指定を省略するか、0を指定すると、作業域は自動的に設定されます。 133 第5章 OCXを使用してPowerSORTを使用する 134 5.4 実行後に参照するプロパティ 5.4 実行後に参照するプロパティ 5.4.1 ErrorCodeプロパティ PowerSORTの復帰コードが通知されます。 構文 object.ErrorCode object オブジェクトへの参照を表すオブジェクト式を指定します。 返却値 ErrorCodeプロパティに返却される値は次のとおりです。 返却値 意味 0 正常に終了しました。 -1 PowerSORTの処理中にエラーが検出されました。 -2 PowerSORT OCXで構文解析処理中にエラーが検出されました。 -3 PowerSORT OCXで構文解析処理中にエラーが検出されました(PowerSORT OCXでのみ検出される固有のエラー)。 -4 PowerSORT OCXのエラーが検出されました。 解説 ● PowerSORTの実行後、処理結果を示す復帰コードが設定されます。実行後のみ参照可能で す。値の設定はできません。 [参照] ● ● ● ● ● ● ● DispMessageプロパティ ErrorDetailプロパティ SubErrorCodeプロパティ エラー詳細コード(ErrorCodeが0,-1,-2のとき) エラー詳細コード(ErrorCodeが-3のとき) エラー詳細コード(ErrorCodeが-4のとき) 富士通COBOLファイルに関するエラーコード 5.4.2 ErrorDetailプロパティ PowerSORTのエラー詳細コードが通知されます。 構文 object.ErrorDetail object オブジェクトへの参照を表すオブジェクト式を指定します。 135 第5章 OCXを使用してPowerSORTを使用する 解説 ● PowerSORT実行中にエラーが検出された場合、エラー詳細コードが通知されます。実行後 のみ参照可能です。値の設定はできません。通知される値については、OCX使用時のエラ ー詳細コードを参照してください。 [参照] ● DispMessageプロパティ ● ErrorCodeプロパティ ● SubErrorCodeプロパティ ● ● ● ● エラー詳細コード(ErrorCodeが0,-1,-2のとき) エラー詳細コード(ErrorCodeが-3のとき) エラー詳細コード(ErrorCodeが-4のとき) 富士通COBOLファイルに関するエラーコード 5.4.3 SubErrorCodeプロパティ PowerSORTが使用するファイルシステムのエラーコードが通知されます。 構文 object.SubErrorCode object オブジェクトへの参照を表すオブジェクト式を指定します。 解説 ● PowerSORT実行中にファイルシステムでエラーが検出された場合、エラーコードが通知さ れます。実行後のみ参照可能です。値の設定はできません。通知される値については、フ ァイルシステムに応じて該当するマニュアルなどを参照してください。 [参照] ● DispMessageプロパティ ● ErrorCodeプロパティ ● ● ● ● 136 ErrorDetailプロパティ エラー詳細コード(ErrorCodeが0,-1,-2のとき) エラー詳細コード(ErrorCodeが-3のとき) エラー詳細コード(ErrorCodeが-4のとき) 5.5 メソッド 5.5 メソッド 5.5.1 Actionメソッド PowerSORTを呼び出します。 構文 object.Action object オブジェクトへの参照を表すオブジェクト式を指定します。 解説 ● Actionメソッドには引数はありません。PowerSORT OCXのプロパティに設定された処理条 件で、PowerSORTを呼び出します。 ● Actionメソッドを使う前に、必要なプロパティに値を設定してください。 [参照] ● 主要機能 ● オプション機能と主要機能の組合せ ● DisposalNumberプロパティ 137 第6章 COBOLプログラムからPowerSORTを使用す る PowerSORTは、富士通のNetCOBOL、PowerCOBOL97、COBOL97およびCOBOL85で作成したCOBOLプログラム から利用することができます。 ● PowerSORTをインストールするだけで、COBOLのランタイムシステムが自動的にPowerSORT を呼び出します。COBOLの文法に従って、SORT文またはMERGE文を使用したプログラムを作 成すると、実行時にPowerSORTが呼び出されます。 ● 既存のCOBOLプログラムを実行する場合も、PowerSORTを利用するための特別な設定作業や COBOLプログラムの変更、再コンパイルは不要です。 第7章 C言語プログラムからPowerSORTを使用す る PowerSORTはC言語プログラムから利用することができます。C言語プログラムからPowerSORTを使用す る場合は、BSORT関数を使用します。 ここでは、各BSORT関数の概要と使い方、BSORT関数を使用してユーザアプリケーションを開発すると きの注意事項について説明します。 BSORT関数はマルチスレッドに対応していません。 第7章 C言語プログラムからPowerSORTを使用する 7.1 BSORT関数とは BSORT関数とは、C言語プログラムからPowerSORTを使用するための関数の総称であり、BSORT関数一覧 に示す5つの関数が用意されています。 BSORT関数一覧 以下に各BSORT関数の概要を示します。 BSORT関数一覧 関数名 概要 bsrtopen PowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域にロード し、各関数のアドレスを求めます。さらにPowerSORTの実行環境を準備し ます。 bsrtclse PowerSORTの実行環境を消去します。また、bsrtopen関数で仮想記憶域に ロードしたPowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶 域から消去します。 bsrtput ソート機能使用時に、ユーザアプリケーションからPowerSORTのダイナミ ックリンクライブラリ(DLL)にレコードを渡します。 bsrtget ソート機能使用時に、ソートしたレコードをPowerSORTのダイナミックリ ンクライブラリ(DLL)から受け取ります。 bsrtmrge マージ機能使用時に、ユーザアプリケーションからPowerSORTのダイナミ ックリンクライブラリ(DLL)にレコードを渡したり、マージしたレコード をPowerSORTから受け取ります。 関数の組合せ BSORT関数一覧に示したようにBSORT関数には5つの関数があります。使用する機能と入出力の形態に よって使用する関数が異なります。 以下に、使用するPowerSORTの機能と関連するBSORT関数の組合せを示します。 使用するPowerSORTの機能と関連するBSORT関数一覧 関数名 ソート機能 マージ機能 コピー機能 bsrtopen ◎ ◎ ◎ bsrtclse ◎ ◎ ◎ bsrtput ○ × × bsrtget ○ × × bsrtmrge × ○ × ◎:必ず使用します ○:使用できます ×:使用できません 140 7.2 BSORT関数の使い方 7.2 BSORT関数の使い方 ソート機能、マージ機能およびコピー機能を使用する場合のBSORT関数の使い方について説明します。 7.2.1 ソート機能を使用する場合 ソート機能を使用する場合は、入出力の形態により次の4つがあります。 ● 入出力ともファイル(標準入力と標準出力を含む)を使用する形態 ● 入出力ともユーザアプリケーション(bsrtput関数とbsrtget関数)を使用する形態 ● 入力にファイル(標準入力を含む)を使用し、出力にユーザアプリケーション(bsrtget関 数)を使用する形態 ● 入力にユーザアプリケーション(bsrtput関数)を使用し、出力にファイル(標準出力を含 む)を使用する形態 入出力ともファイル(標準入力と標準出力を含む)を使用する形態 入出力ともファイル(標準入力と標準出力を含む)を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)および出力ファイルパス名(また は標準出力)を指定するとこの形態になります。 入出力ともユーザアプリケーション(bsrtput関数とbsrtget関数)を使用する形態 入出力ともユーザアプリケーション(bsrtput関数とbsrtget関数)を使用する場合は、以下の手順で行 います。 1. bsrtopen関数を発行します。 2. bsrtput関数を発行します。 bsrtput関数はPowerSORTに渡すレコードがなくなるまで連続して発行します。 3. bsrtput関数を発行し、レコードの終わりを通知します。 4. bsrtget関数を発行します。 bsrtget関数は、PowerSORTからレコードの終わりが通知されるまで連続して発行します。 5. bsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)および出力ファイルパス名(また は標準出力)を指定しないとこの形態になります。 入力にファイル(標準入力を含む)を使用し、出力にユーザアプリケーション(bsrtget 関数)を使用する形態 入力にファイル(標準入力を含む)を使用し、出力にユーザアプリケーション(bsrtget関数)を使用す る場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtget関数を発行します。 bsrtget関数は、PowerSORTからレコードの終わりが通知されるまで連続して発行します。 3. bsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)を指定し、出力ファイルパス名(ま たは標準出力)を指定しないとこの形態になります。 入力にユーザアプリケーション(bsrtput関数)を使用し、出力にファイル(標準出力を 含む)を使用する形態 入力にユーザアプリケーション(bsrtput関数)を使用し、出力にファイル(標準出力を含む)を使用す る場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 141 第7章 C言語プログラムからPowerSORTを使用する 2. bsrtput関数を発行します。 bsrtput関数はPowerSORTに渡すレコードがなくなるまで連続して発行します。 3. bsrtput関数を発行し、レコードの終わりを通知します。 4. bsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)を指定しないで、出力ファイルパ ス名(または標準出力)を指定するとこの形態になります。 7.2.2 マージ機能を使用する場合 マージ機能を使用する場合は、入出力の形態により次の4つがあります。 ● ● ● ● 入出力ともファイル(標準出力を含む)を使用する形態 入出力ともユーザアプリケーション(bsrtmrge関数)を使用する形態 入力にファイルを使用し、出力にユーザアプリケーション(bsrtmrge関数)を使用する形態 入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力を含 む)を使用する形態 入出力ともファイル(標準出力を含む)を使用する形態 入出力ともファイル(標準出力を含む)を使用する場合、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名および出力ファイルパス名(または標準出力)を指定 するとこの形態になります。 入出力ともユーザアプリケーション(bsrtmrge関数)を使用する形態 入出力ともユーザアプリケーション(bsrtmrge関数)を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtmrge関数を発行します。 bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。 この形態のbsrtmrge関数には、ユーザアプリケーションからPowerSORTにレコードを渡す働 きとPowerSORTからレコードを受け取る働きの2つがあります。bsrtmrge関数の発行では、 個々のストリング(ソート済のレコード群)のレコードを渡し、PowerSORTから返されるレコ ードを受け取ります。ストリングのレコードがなくなったときはレコードの終わりを通知 し、PowerSORTから返されるレコードを受け取ります。処理しているすべてのストリングに 対してレコードの終わりを通知したら、渡すレコードがなくてもPowerSORTからレコードの 終わりが通知されるまで連続して発行して、PowerSORTから返されるレコードを受け取りま す。 3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名および出力ファイルパス名(または標準出力)を指定 しないとこの形態になります。 入力にファイルを使用し、出力にユーザアプリケーション(bsrtmrge関数)を使用する 形態 入力にファイルを使用し、出力にユーザアプリケーション(bsrtmrge関数)を使用する場合は、以下の 手順で行います。 1. bsrtopen関数を発行します。 2. bsrtmrge関数を発行します。 bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。 この形態のbsrtmrge関数には、PowerSORTからレコードを受け取る働きがあります。 3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名を指定し、出力ファイルパス名(または標準出力) を指定しないとこの形態になります。 142 7.2 BSORT関数の使い方 入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力 を含む)を使用する形態 入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力を含む)を使用す る場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtmrge関数を発行します。 bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。 この形態のbsrtmrge関数には、ユーザアプリケーションからPowerSORTにレコードを渡す働 きがあります。bsrtmrge関数の発行では、個々のストリングのレコードを渡し、ストリン グのレコードがなくなったときはレコードの終わりを通知します。処理しているすべての ストリングに対してレコードの終わりを通知したら、渡すレコードがなくてもPowerSORTか らレコードの終わりが通知されるまで連続して発行します。 3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名を指定しないで、出力ファイルパス名(または標準 出力)を指定するとこの形態になります。 7.2.3 コピー機能を使用する場合 コピー機能を使用する場合、入出力ともファイル(標準入力と標準出力を含む)を使用する形態があり ます。ソート機能とマージ機能のようにPowerSORTへレコードを渡したり、PowerSORTからレコードを 受け取る形態はありません。 コピー機能を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtclse関数を発行します。 143 第7章 C言語プログラムからPowerSORTを使用する 7.3 BSORT関数の種類 ここでは、各BSORT関数の詳細について説明します。 7.3.1 bsrtopen関数 bsrtopen関数は、PowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域にロードし、各関数 のアドレスをパラメタfuncに設定します。さらにPowerSORTの実行環境を準備します。 記述形式 #include "bsrt.h" int bsrtopen (long int BSRTVL, BSPTR_BSRTFUNC func, BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec, BSPTR_BSRTKEY key, BSPTR_BSRTFILE file, BSPTR_BSRTOPT opt); 機能説明 以下にbsrtopen関数の機能を示します。 ● PowerSORTの実行環境を構築します。 ● 入力にファイル(標準入力を含む)、出力にユーザアプリケーションを使用する場合、ソー ト機能のときはソート処理を行い、結果を出力する直前に復帰します。マージ機能のとき はそれぞれのファイルから少しずつレコードを入力し、マージ処理をする直前に復帰しま す。 ● 入出力ともファイル(標準入力、標準出力を含む)を指定した場合は、ソート処理またはマ ージ処理まで実施して復帰します。 ● コピー機能の場合は、コピー処理を実施して復帰します。 パラメタ詳細 long int BSRTVL PowerSORTのバージョンレベル(BSRTVL)を指定します。 BSRTVLはBSORT関数のヘッダファイル(bsrt.h)で定義されています。このパラメタにより、BSORT関数 のインタフェースに変更があってもユーザアプリケーションを変更することなく動作させることが できます。 BSPTR_BSRTFUNC func BSORT関数(bsrtput関数、bsrtget関数およびbsrtmrge関数)の各アドレスが設定されます。なお、 BSPTR_BSRTFUNCは、BSRTFUNC構造体のポインタを意味します。 BSPTR_BSRTPRIM prim ソート機能、マージ機能、コピー機能、レコード選択機能、レコード再編成機能、先入力先出力(FIFO) 機能、レコード集約機能およびサプレス機能などを指定するパラメタです。なお、BSPTR_BSRTPRIM は、BSRTPRIM構造体のポインタを意味します。 BSPTR_BSRTREC rec bsrtopen関数で指定する情報はありません。エラーがあった場合、その詳細コードが設定されます。 なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。 144 7.3 BSORT関数の種類 BSPTR_BSRTKEY key ソート機能またはマージ機能で使用するキーフィールドを指定します。なお、BSPTR_BSRTKEYは、 BSRTKEY構造体のポインタを意味します。 BSPTR_BSRTFILE file 入力ファイル、出力ファイルおよび一時ファイルなどファイル情報を指定するパラメタです。なお、 BSPTR_BSRTFILEは、BSRTFILE構造体のポインタを意味します。 BSPTR_BSRTOPT opt オプション機能を指定するパラメタです。集約フィールド、選択フィールド、再編成フィールドおよ び読み飛ばしレコード件数を指定する各構造体のポインタを指定します。 上記の構造体のポインタをいずれも指定しない場合は、bsrtopen関数のパラメタoptに0を指定します。 いずれかを指定する場合は、それぞれ領域を確保した上で指定します。なお、BSPTR_BSRTOPTは、 BSRTOPT構造体のポインタを意味します。 復帰値 bsrtopen関数の復帰値を示します。 復帰値 意味 0 正常にbsrtopen関数が終了したことを示します。 続けて、bsrtput関数、bsrtget関数、bsrtmrge関数またはbsrtclse関数を 発行してください。 -1 bsrtopen関数で異常が発生したことを示します。詳細な情報は、BSRTREC 構造体のerrdetailまたはsub_error_codeに設定されます。 続けて、bsrtclse関数を発行してください。 -2 bsrtopen関数で異常が発生したことを示します。詳細な情報は、BSRTREC 構造体のerrdetailまたはsub_error_codeに設定されます。 なお、当復帰値の場合は、bsrtclse関数を発行する必要はありません。 ● BSRTVLを除いた他のパラメタは、値を設定しない場合でもbsrtopen関数発行前に0クリア する必要があります。値を設定するパラメタは、設定前にフィールドを0クリアします。 ● bsrtopen関数のパラメタのうち、BSRTVL、func、prim、recは省略できません。key、file、 optは省略できます。省略する場合は、bsrtopen関数のパラメタでポインタに0を指定しま す。 例) bsrtopen( BSRTVL,func, prim, rec, (BSPTR_BSRTKEY) 0, (BSPTR_BSRTFILE) 0, (BSPTR_BSRTOPT) 0); 7.3.2 bsrtclse関数 bsrtclse関数は、bsrtopen関数が構築したPowerSORTの実行環境を消去します。 記述形式 #include "bsrt.h" int bsrtclse (long int BSRTVL, BSPTR_BSRTFUNC func, BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec); 145 第7章 C言語プログラムからPowerSORTを使用する 機能説明 以下にbsrtclse関数の機能を示します。 ● bsrtopen関数が構築したPowerSORTの実行環境を消去します(作業域の開放、入出力ファイ ルと一時ファイルのクローズなど)。 ● bsrtopen関数でロードしたPowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶 域から消去します。 ● bsrtget関数、bsrtput関数の処理の途中でbsrtclse関数を呼んだときに処理を中断します。 パラメタ詳細 long int BSRTVL PowerSORTのバージョンレベル(BSRTVL)を指定します。 BSRTVLはBSORT関数のヘッダファイル(bsrt.h)で定義されています。 BSPTR_BSRTFUNC func bsrtopen関数で指定したfuncを指定します。なお、BSPTR_BSRTFUNCは、BSRTFUNC構造体のポインタを 意味します。 BSPTR_BSRTPRIM prim bsrtopen関数で指定したprimを指定します。なお、BSPTR_BSRTPRIMは、BSRTPRIM構造体のポインタを 意味します。 BSPTR_BSRTREC rec bsrtopen関数で指定したrecを指定します。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意 味します。 復帰値 bsrtclse関数の復帰値を説明します。 復帰値 意味 0 正常にbsrtclse関数が終了しました。 1 処理の中断を指示され、正常に中断処理が終了しました。 次のような状態のときにbsrtclse関数を発行すると処理を中断します。 ● ユーザアプリケーションが、bsrtput関数またはbsrtmrge関数でデー タの終わりを通知していない状態 ● ユーザアプリケーションに、bsrtget関数またはbsrtmrge関数がデー タの終わりを通知していない状態 -1 bsrtclse関数の処理で異常が発生したことを示します。 BSRTREC構造体のerrdetailまたはsub_error_codeに詳細コードが設定さ れます。 bsrtclse関数のパラメタには、ユーザアプリケーションが新しく設定するメンバはありま せん。 7.3.3 bsrtput関数 bsrtput関数は、bsrtopen関数でソート機能を指定し、かつユーザアプリケーションからPowerSORT にレコードを渡す場合に使用します。 146 7.3 BSORT関数の種類 記述形式 #include "bsrt.h" BSRTFUNC func; (注) int func.bsrtput(BSPTR_BSRTREC rec); 注) funcはbsrtopen関数で指定したパラメタです。 機能説明 以下にbsrtput関数の機能を示します。 ● ユーザアプリケーションからPowerSORTにレコードまたはレコード群を渡します。 ● レコードまたはレコード群の終わりをPowerSORTに通知します。 レコード群の渡し方 複数のレコードを一括してPowerSORTに渡す場合は、BSRTREC構造体のrec_lenにレコード群の長さを 指定します。 レコード群の長さは、固定長レコード形式の場合、レコード長のレコード件数倍になります。 可変長レコード形式の場合は、個々のレコードにレコード長の領域(long型)を前置します。レコード 群の長さは、レコードとレコード長の領域の累積長になります。なお、レコード長の領域に設定する レコード長にはレコード長の領域を含みません。 テキストファイルの場合は、改行文字を含めたレコードを連続領域に並べます。レコード群の長さは、 レコードの先頭から最後のレコードの改行文字までの長さとなります。 パラメタ詳細 BSPTR_BSRTREC rec bsrtopen関数で指定したrecを指定します。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意 味します。 復帰値 bsrtput関数の復帰値を説明します。 復帰値 0 意味 正常にbsrtput関数が終了しました。 1 正常にレコードまたはレコード群の終わりを受け付けました。 -1 bsrtput関数の処理で異常が発生したことを示します。BSRTREC構造体の errdetailまたはsub_error_codeに詳細コードが設定されます。 7.3.4 bsrtget関数 bsrtget関数は、bsrtopen関数でソート機能を指定し、かつPowerSORTからソート結果のレコードを受 け取る場合に使用します。 記述形式 #include "bsrt.h" BSRTFUNC func; (注) int func.bsrtget(BSPTR_BSRTREC rec); 注) funcはbsrtopen関数で指定したパラメタです。 機能説明 以下にbsrtget関数の機能を示します。 ● PowerSORTからレコードまたはレコード群を受け取ります。 ● レコードまたはレコード群の終わりをPowerSORTから通知されます。 147 第7章 C言語プログラムからPowerSORTを使用する 返却されるレコード群の形式 個々のレコードを連続した領域に並べて返却します。 固定長レコード形式の場合は、先頭レコードのアドレスがBSRTREC構造体のrec_addrに、レコード群 の長さ(レコード長のレコード件数倍)がBSRTREC構造体のrec_lenに設定されます。 可変長レコード形式の場合は、各レコードの先頭にレコード長を格納した領域(long型)を持つ形式で、 先頭レコードのアドレスがBSRTREC構造体のrec_addrに、レコードとレコード長の領域を累積した長 さがBSRTREC構造体のrec_lenに設定されます。 テキストファイルのレコードの場合は、改行文字を含めたレコードを連続した領域に並べて返却しま す。先頭レコードのアドレスがBSRTREC構造体のrec_addrに、返却するレコードの累積した長さが BSRTREC構造体のrec_lenに設定されます。 パラメタ詳細 BSPTR_BSRTREC rec bsrtopen関数で指定したrecを指定します。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意 味します。 復帰値 bsrtget関数の復帰値を説明します。 復帰値 意味 0 正常にbsrtget関数が終了しました。 1 正常にbsrtget関数が終了しました。すべてのレコードを渡し終えたため、 BSRTREC構造体のrec_addrとrec_lenに0を設定しました。 通常の処理では、bsrtget関数の復帰値が1になるまでbsrtget関数を繰返 し発行してください。 -1 bsrtget関数の処理で異常が発生したことを示します。BSRTREC構造体の errdetailまたはsub_error_codeに詳細コードが設定されます。 7.3.5 bsrtmrge関数 bsrtmrge関数は、bsrtopen関数でマージ機能を指定し、PowerSORTにマージするレコードを渡す場合、 およびPowerSORTからマージ結果のレコードを受け取る場合に使用します。 記述形式 #include "bsrt.h" BSRTFUNC func; (注) int func.bsrtmrge(BSPTR_BSRTREC rec); 注) funcはbsrtopen関数で指定したパラメタです。 機能説明 以下にbsrtmrge関数の機能を示します。 ● ユーザアプリケーションからPowerSORTにマージするレコードを渡します。 ● PowerSORTからユーザアプリケーションにマージ結果のレコードが返却されます。 ● ストリングの終わりをPowerSORTに通知します。ストリングとは、ソート済のレコードの 集まりのことをいいます。 ● マージ結果のレコードの終わりは、PowerSORTからユーザアプリケーションに通知されま す。 パラメタ詳細 BSPTR_BSRTREC rec bsrtopen関数で指定したrecを指定します。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意 148 7.3 BSORT関数の種類 味します。 復帰値 bsrtmrge関数の復帰値を説明します。 復帰値 意味 0 正常にbsrtmrge関数が終了しました。 1 正常にbsrtmrge関数が終了しました。すべてのレコードを渡し終えたた め、BSRTREC構造体のmgrec_addrとmgrec_lenに0を設定しました。 -1 bsrtmrge 関数の処理で異常が発生したことを示します。 BSRTREC構造体のerrdetailまたはsub_error_codeに詳細コードが設定さ れます。 149 第7章 C言語プログラムからPowerSORTを使用する 7.4 BSORT関数で使用する構造体 BSORT関数で使用する構造体について説明します。 ● 基本情報を設定する ― BSRTPRIM構造体 ● レコード情報を設定する ― BSRTREC構造体 ● キーフィールド情報を設定する ― BSRTKEY構造体 ― BSKEY構造体 ― BSKANJI構造体 ― BSCOL構造体 ● ファイル情報を設定する ― BSRTFILE構造体 ― BSFILE構造体 ― BSFSYS構造体 ― BSIDX構造体 ― BSIDXKEY構造体 ― BSFILE_EXT構造体 ― BSFILE_BTRV構造体 ― BSFILE_BASE構造体 ● レコードオプション情報を設定する ― BSRTOPT構造体 ― BSRTSUM構造体 ― BSSUM構造体 ― BSRTSELE構造体 ― BSSELE構造体 ― BSRTRCON構造体 ― BSRCON構造体 ― BSRTSKIP構造体 ● その他の構造体 ― BSRTFUNC構造体 7.4.1 BSRTPRIM構造体 BSRTPRIM構造体は、ソート処理、マージ処理およびコピー処理など主要な基本情報を設定するための 構造体です。 150 7.4 BSORT関数で使用する構造体 typedef struct { unsigned long unsigned char unsigned char unsigned char reserve1; function; recform; optionfunc; unsigned unsigned unsigned unsigned unsigned unsigned fileoprat; recoprat; msglevel; cdmode; chklevel; rec_len; char char char char char long /* unsigned long unsigned long BSPTR_VOID unsigned long BSPTR_UCHAR unsigned char input_string; memory_size; memory_addr; input_recno; fldchar_addr; debuginfo; unsigned unsigned unsigned unsigned unsigned unsigned fieldmode; keyoption; keyoption2; linedlmt; error_happened; altmode; char char char char char char unsigned char } BSRTPRIM; reserve4; /* reserved */ reserved */ BSRTPRIM構造体メンバ unsigned char function PowerSORTの主要機能を指定します。 以下から1つを選択して指定します。省略はできません。 定義値 意味 BS_SORT ソート機能 BS_MERGE マージ機能 BS_COPY コピー機能 unsigned char recform レコード形式を指定します。 以下から1つを選択して指定します。テキストファイルのときは値を指定する必要はありません。 定義値 意味 BS_FREC 固定長レコード形式 BS_VREC 可変長レコード形式 unsigned char optionfunc オプション機能を指定します。 必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。 151 第7章 C言語プログラムからPowerSORTを使用する 定義値 意味 BS_FIFO 先入力先出力(FIFO)機能を示します。 BS_SUPPRESSとBS_SUMとは排他関係にあります。(注) BS_SUPPRESS サプレス機能を示します。 BS_FIFOとBS_SUMとは排他関係にあります。 BS_SUM レコード集約機能を示します。BS_FIFOとBS_SUPPRESSとは排他関係に あります。 BS_SUMを指定したときは、BSRTOPT構造体に集約テーブル(BSRTSUM構 造体)のアドレスを設定する必要があります。 BS_SELECT レコード選択機能を示します。 BS_SELECT を 指 定 し た と き は 、 BSRTOPT 構 造 体 に 選 択 テ ー ブ ル (BSRTSELE構造体)のアドレスを設定する必要があります。 BS_RECON レコード再編成機能を示します。 BS_RECON を 指 定 し た と き は 、 BSRTOPT 構 造 体 に 再 編 成 テ ー ブ ル (BSRTRCON構造体)のアドレスを設定する必要があります。 BS_REVERSE 降順にソート処理またはマージ処理することを示します。 キーフィールドを省略した場合に有効になります。 BSMSG_STDERR 標準エラー出力にメッセージを出力することを示します。 出力メッセージはBSRTPRIM構造体のmsglevelに依存します。 注) 入力ファイルがMicro Focus COBOLファイルシステムの索引ファイルの場合に先入力先出力 (FIFO)機能を指定すると、インデックス順ではなく物理順で優先順位が決定します。 unsigned char fileoprat 入出力情報を指定します。 必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。 定義値 意味 BS_OVERWRITE ソート機能において、入力ファイルの1つと出力ファイルが同一なと き、処理を継続することを示します。このオプションを指定し、入力 ファイルの1つと出力ファイルが同一な場合、ソート処理中に異常が 発生すると、入力ファイルのデータは保証されない場合がありますの で、注意してください。 BS_STDIN 標準入力からレコードを入力することを示します。BS_STDINはマージ 機能では指定できません。BSRTFILE構造体で入力ファイルを指定して いる場合は、無視されます。 BS_STDOUT 標準出力に結果を出力することを示します。BSRTFILE構造体で出力フ ァイルを指定している場合は、無視されます。 unsigned char recoprat PowerSORTとのレコードの受渡し方法を指定します。 複数指定する場合は、入力の受渡し方法と出力の受渡し方法から1つずつ選んでその論理和を指定し ます。 入力の受渡し方法 定義値 152 意味 BS_IS bsrtput 関 数 ま た は bsrtmrge 関 数 を 使 用 し て 、 1 レ コ ー ド ず つ PowerSORTに渡すことを示します。 BS_IM bsrtput関数を使用して複数のレコードを一括してPowerSORTに渡す ことを示します。この機能はマージ機能のときは指定できません。 7.4 BSORT関数で使用する構造体 出力の受渡し方法 定義値 意味 BS_OS bsrtget 関 数 ま た は bsrtmrge 関 数 を 使 用 し て 1 レ コ ー ド ず つ PowerSORTから受け取ることを示します。 BS_OM bsrtget関数を使用して複数のレコードを一括してPowerSORTから 受け取ることを示します。この機能はマージ機能のときは指定でき ません。 unsigned char msglevel PowerSORTが出力するメッセージのレベルを指定します。 以下から1つを選択して指定します。 なお、メッセージを標準エラー出力に出力するためには、BSRTPRIM構造体のoptionfuncに BSMSG_STDERRを設定する必要があります。 定義値 意味 BSMSG_LEVEL0 何も出力しません。 BSMSG_LEVEL1 エラーメッセージを出力します。 BSMSG_LEVEL2 エラーメッセージと情報メッセージを出力します。 unsigned char cdmode 入力ファイルのコード系を指定します。 以下から1つを選択して指定します。 定義値 意味 BSZD_AU ASCIIコード系(富士通COBOL形式) BSZD_AC ASCIIコード系(Micro Focus COBOL形式、COBOL/2形式) BSZD_EBCDIC EBCDICコード系 (注) BSZD_UCS2 Unicode系(UCS-2形式) システム標準のバイトオーダ BSZD_UCS2B Unicode系(UCS-2形式) Big endianのバイトオーダ BSZD_UCS2L Unicode系(UCS-2形式) Little endianのバイトオーダ BSZD_UTF8 Unicode系(UTF-8形式) 注) EBCDICコード系はバイナリファイルの場合に指定可能です。 unsigned char chklevel BSORT関数のチェック機構を指定します。 以下から1つを選択して指定します。 定義値 意味 BSCHK_LEVEL0 何もチェックしません。 BSCHK_LEVEL1 インタフェースチェックをします。 インタフェースチェックは、bsrtput関数、bsrtget関数、bsrtmrge関 数でパラメタの正当性をチェックするものです。 unsigned long rec_len 入力レコード長を指定します。 可変長レコード形式では最大レコード長を指定します。 テキストファイルでは改行コードを含んだ最大レコード長を指定します。 unsigned long input_string 入力ストリング数を指定します。 ソート機能またはコピー機能を指定したときは0を指定します。 153 第7章 C言語プログラムからPowerSORTを使用する マージ機能を指定したときは、ストリング数を指定します。 ストリングとは、ソート済のレコードの集まりのことをいいます。 unsigned long memory_size PowerSORTが使用する作業域の大きさ(メモリサイズ)をバイト数で指定します。32768~2147482624 バイトの範囲で指定します。 省略する場合は、0を指定します。省略した場合、環境変数BSORT_MEMSIZEの指定があればその大きさ の作業域を使用し、指定していなければ作業域は自動的に設定されます。2147482625以上の値を指定 した場合は、2147482624を指定したとみなされます。 BSPTR_VOID memory_addr PowerSORTが使用する作業域のアドレスを指定します。 省略する場合は、<NULL>を指定します。memory_addrを指定する場合はmemory_sizeでその大きさを指 定する必要があります。不当な値が指定された場合、PowerSORTの処理は保証されません。PowerSORT の作業域は、システムの制御等によってアドレスが移動しない領域を指定してください。 unsigned long input_recno 入力レコード件数を概数で指定します。 分からない場合は、0を設定してください。 BSPTR_UCHAR fldchar_addr フィールド分離文字列のアドレスを指定します。 テキストファイル浮動フィールド指定のときに有効です。フィールド分離文字列は、\0で終わる文字 列です。 unsigned char debuginfo サポートしていないメンバです。何も設定する必要はありません。 unsigned char fieldmode テキストファイルのときのフィールドの決め方を指定します。 テキストファイルのときは、必ず指定します。以下から1つを選択して指定します。 定義値 意味 BS_FLTFLD テキストファイル浮動フィールド指定を示します。 フィールド分離文字列で区切られたフィールドの番号で各フィール ドを指定します。 フィールド分離文字の位置によりフィールド位置が決定されるため、 レコードごとにフィールド位置(カラム位置)は異なります。 BS_FIXFLD テキストファイル固定フィールド指定を示します。 バイト位置によって各フィールドを指定します。 unsigned char keyoption キーフィールドの操作を指定します。 テキストファイルの場合でキーフィールドの指定を省略したときに有効です。 必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。 154 7.4 BSORT関数で使用する構造体 定義値 意味 BS_BLANK キーフィールドの先頭の空白とタブを無視します。 BS_DICTIONARY 空白と英数字だけを比較の対象とします。 BS_IGNORE 制御文字コードを無視します。 BS_JUMBO 英小文字を英大文字として比較します。 BS_NUMERIC 符号を含んだ数字の文字列を算術的な値で比較します。文字列中に数 字以外の文字が存在した場合の結果は保証されません。この定義値 は、BS_CHARNUMおよびkeyoption2のBS_WCHRとは排他関係にあります。 BS_CHARNUM 英字と数字の連結データ(例えば、data123など)を英字と数値に分け て評価し並べます。英字だけを比較の対象として比較後、数字だけの 文字列を算術的な値で比較します。指定フィールドの左から評価し、 有効データ後に出現したデータは無視します。この定義値は、 BS_NUMERICおよびkeyoption2のBS_WCHRとは排他関係にあります。 unsigned char keyoption2 キーフィールドの操作を指定します。 複数バイトで表現される文字の文字列を文字単位に比較する場合に指定します。テキストファイルの 場合でキーフィールドの指定を省略したときに有効なオプションです。このメンバはkeyoptionの BS_NUMERICおよびBS_CHARNUMとは排他関係にあります。 必要に応じて、以下を指定します。 定義値 意味 BS_WCHR unsigned char 複数バイトから成る文字が混在していても文字ごとに比較して並べ ます。 linedlmt レコード分離文字を指定します。 テキストファイルのときに有効です。以下から1つを選択して指定します。 定義値 意味 BSLDM_LF <LF>を改行文字とします。 BSLDM_CR <CR>を改行文字とします。 BSLDM_CL <CR><LF>を改行文字とします。 unsigned char error_happened サポートしていないメンバです。何も設定する必要はありません。 unsigned char altmode ASCIIコードとEBCDICコード間の変換方式を指定します。 以下の場合にASCIIコードとEBCDICコード間の変換が行われます。 ● 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がASCIIコード系でキーフィールドの データ形式がEBCDICコードの場合におけるキーフィールドの比較 ● 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系でキーフィールド のデータ形式がASCIIコードの場合におけるキーフィールドの比較 以下から1つを選択して指定します。 定義値 意味 BSALT_ASCII EBCDICコードとUS ASCIIコード間のコード変換をします。 BSALT_JIS8 EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。 BSALT_JIS7 EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をしま す。 155 第7章 C言語プログラムからPowerSORTを使用する 7.4.2 BSRTREC構造体 BSRTREC構造体は、PowerSORTとユーザアプリケーション間でレコードを受け渡すための構造体です。 BSRTREC構造体には、bsrtopen関数発行前にユーザアプリケーションが設定するメンバはありません。 typedef struct { BSPTR_VOID unsigned long unsigned long unsigned long BSPTR_VOID unsigned long unsigned char unsigned char unsigned short BSPTR_VOID unsigned long unsigned long unsigned long } BSRTREC; sort_table; errdetail; in_count; out_count; rec_addr; rec_len; rec_status; mgrec_status; mgrec_string; mgrec_addr; mgrec_len; hProcFile; sub_error_code; BSRTREC構造体メンバ BSPTR_VOID sort_table bsrtopen関数を処理するときにPowerSORTが使用する作業域のアドレスが設定されます。このメンバ は、PowerSORTが使用する専用の領域であり、ユーザアプリケーションはbsrtopen関数発行時から bsrtclse関数の発行が完了するまでの間、内容を保証しなければなりません。 ユーザアプリケーションはこのメンバに対して何もする必要はありません。 unsigned long errdetail PowerSORTが処理中にエラーを検出した場合に、BSORT関数のエラー詳細コードが設定されます。ユー ザアプリケーションは、エラーの発生を各BSORT関数の戻り値から知ることができます。 ユーザアプリケーションはエラー発生時以外にこのメンバを参照する必要はありません。 unsigned long in_count PowerSORTがユーザアプリケーションから受け取ったレコード件数を、レコードの受渡し毎にユーザ アプリケーションに通知します。 このメンバは、ユーザアプリケーションが必要な場合に参照してください。 unsigned long out_count PowerSORTがユーザアプリケーションに受け渡したレコード件数を、レコードの受渡し毎にユーザア プリケーションに通知します。 このメンバは、ユーザアプリケーションが必要な場合に参照してください。 BSPTR_VOID rec_addr [bsrtput関数の場合] PowerSORTに渡すレコードのアドレスを設定します。 bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合、レコード群のアドレス を設定します。 [bsrtget関数の場合] ユーザアプリケーションに返却するレコードのアドレスが設定されます。 bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合、レコード群のアドレス 156 7.4 BSORT関数で使用する構造体 が設定されます。返却するレコードまたはレコード群がないときは、<NULL>が設定されます。 [bsrtmrge関数の場合] PowerSORTに渡すレコードのアドレスを設定します。 unsigned long rec_len [bsrtput関数の場合] PowerSORTに渡すレコードの長さを設定します。 bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合、レコード群の長さを設 定します。テキストファイルのレコードを渡すときは、改行文字を含めたレコードの長さを設定しま す。 [bsrtget関数の場合] ユーザアプリケーションに返却するレコードの長さが設定されます。 bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合、レコード群の長さが設 定されます。返却するレコードがないときは、0が設定されます。 [bsrtmrge関数の場合] PowerSORTに渡すレコードの長さを設定します。テキストファイルのレコードを渡すときは、改行文 字までの長さを設定します。 unsigned char rec_status [bsrtput関数の場合] レコードを渡し終えたかどうかを通知します。以下のいずれかを設定します。 定義値 意味 BS_CONT PowerSORTに渡すレコードはまだあります。 BS_ENDDATA PowerSORTに渡すレコードは終わりました。レコードの終りを通知す るときのrec_addrとrec_lenには、0を指定します。 [bsrtget関数の場合] 使用しません。 [bsrtmrge関数の場合] 最終レコードか否かを通知します。以下のいずれかを設定します。 定義値 意味 BS_CONT mgrec_stringのストリングにはレコードがまだあります。 BS_ENDDATA mgrec_stringのストリングのレコードは終わりました。 unsigned char mgrec_status PowerSORTからレコードの入力要求が通知されます。 bsrtmrge関数を使用するときに設定されるメンバです。 以下のいずれかが設定されます。 定義値 意味 BS_REQ レコードの入力要求を示します。 mgrec_stringが示すストリングのレコードを次のbsrtmrge関数で渡 します。 BS_NOREQ レコードの入力要求はありません。rec_addrとrec_lenに0を設定し て、再度bsrtmrge関数を発行します。 unsigned short mgrec_string PowerSORTに渡すレコードのストリング番号を設定します。 bsrtmrge関数で最初のレコードを渡すときに0を設定します。2回め以降はPowerSORTがストリング番 号を設定するため参照だけになります。ユーザアプリケーションは、ここで設定されたストリング番 号のレコードを、次のbsrtmrge関数発行時にPowerSORTへ渡してください。 bsrtmrge関数を使用するときに設定されるメンバです。 157 第7章 C言語プログラムからPowerSORTを使用する BSPTR_VOID mgrec_addr ユーザアプリケーションに返却するレコードのアドレスが設定されます。 返却するレコードがないときは<NULL>が設定されます。 bsrtmrge関数を使用するときに設定されるメンバです。 unsigned long mgrec_len ユーザアプリケーションに返却するレコードの長さが設定されます。 返却するレコードがないときは0が設定されます。 bsrtmrge関数を使用するときに設定されるメンバです。 unsigned long hProcFile PowerSORTが処理のために使用するメンバです。ユーザアプリケーションはこのメンバに対して何も する必要はありません。 unsigned long sub_error_code ファイルシステムまたは漢字ソートマージ機能でエラーが発生した場合、その詳細コードが設定され ます。Btrieveファイルシステムでエラーが発生した場合は、Btrieveファイルに関するエラーコード が設定されます。また、漢字ソートマージ機能使用時には、ADJUSTに関するエラーコードまたはICONV に関するエラーコードが設定されています。 7.4.3 BSRTKEY構造体 BSRTKEY構造体は、ソート処理またはマージ処理するときのキーフィールドを定義するための構造体 です。 キーフィールドの指定を省略した場合、レコード全体をキーフィールドとみなし、コード順に並べま す。 BSRTKEY構造体の領域を確保する際の領域の大きさはBS_KEYTABSIZE(n)を使って求められます。 BS_KEYTABSIZE(n)は、n個のBSKEY構造体をもつBSRTKEY構造体の大きさを求めるマクロです。 typedef struct { unsigned long BSKEY } BSRTKEY; entry_no; key_entry[1]; BSRTKEY構造体メンバ unsigned long entry_no キーフィールドの数を指定します。 0を指定した場合は、キーフィールドの省略を意味します。 BSKEY key_entry[n] キーフィールドを指定します。詳細はBSKEY構造体を参照してください。 7.4.4 BSKEY構造体 BSKEY構造体は、個々のキーフィールドを定義するための構造体です。 キーフィールドのデータ形式については、キーフィールドに指定可能なデータ形式を参照してくださ い。 158 7.4 BSORT関数で使用する構造体 typedef struct { unsigned long unsigned long unsigned char unsigned char unsigned char unsigned char BSPTR_VOID } BSKEY; key_position; key_length; key_type; key_order; key_option; key_option2; subfield_addr; BSKEY構造体メンバ unsigned long key_position キーフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 unsigned long key_length キーフィールドの長さをバイト数で指定します。 データ形式に符号なし2進数(BSKEY_BIT)を指定する場合は、当メンバにマスク値を指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 unsigned char key_type キーフィールドのデータ形式を指定します。 キーフィールドのデータ形式については、キーフィールドに指定可能なデータ形式を参照してくださ い。 unsigned char key_order キーフィールドの並びを指定します。 以下のいずれかを指定します。 定義値 BS_ASCND 昇順を示します。(省略値) BS_REVRS 降順を示します。 unsigned char 意味 key_option キーフィールドの操作を指定します。 BSOPT_K以外の操作は、テキストファイルのときのみ有効です。必要に応じて以下を指定します。複 数指定する場合は、その論理和を指定します。 159 第7章 C言語プログラムからPowerSORTを使用する 定義値 意味 BSOPT_B キーフィールドの先頭の空白とタブを無視します。 BSOPT_D 空白と英数字だけを比較の対象とします。 BSOPT_I 制御文字コードを無視します。 BSOPT_J 英小文字を英大文字とみなして比較します。 BSOPT_K 漢字ソートマージ機能を使用します。 BSOPT_N 符号を含む数字の文字列を算術的な値で比較します。文字列中に数字 以外の文字が存在した場合の結果は保証されません。 BSOPT_LNおよびkey_option2のBSOPT2_Wとは排他関係にあります。 BSOPT_LN 英字と数字の連結データ(例えば、data123など)を英字と数値に分け て評価し並べます。英字だけを比較の対象として比較後、数字だけの 文字列を算術的な値で比較します。指定フィールドの左から評価し、 有効データ後に出現したデータは無視します。 BSOPT_Nおよびkey_option2のBSOPT2_Wとは排他関係にあります。 ● 漢字ソートマージ機能を使用する場合は、BSOPT_Bだけが有効です。漢字ソートマージ機 能では、BSOPT_Bの指定があると全角空白も無視します。 ● キーフィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、key_optionの 指定はできません。 unsigned char key_option2 複数バイトで表現される文字の文字列を文字単位に比較する場合の操作を指定します。 ここで指定する定義値は、key_optionのBSOPT_NおよびBSOPT_LNとは排他関係にあります。 必要に応じて以下を指定します。 定義値 意味 BSOPT2_W 複数バイトから成る文字が混在していても、文字ごとに比較して並べ ます。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式ま たはUnicode UTF-8形式で、入力ファイルのコード系(BSRTPRIM構造体 のcdmode)がEBCDICコード系以外の場合に有効です。 キーフィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、key_option2 の指定はできません。 BSPTR_VOID subfield_addr 漢字ソートマージ機能または照合順序変更機能を使用する場合に指定します。 ● 漢字ソートマージ機能を使用する場合、その方法を定義したBSKANJI構造体のアドレスを 指定します。漢字ソートマージ機能は、BSKEY構造体のkey_optionメンバにBSOPT_Kが指定 されている場合に利用できます。 ● 照合順序変更機能を使用する場合は、照合順序変更を定義したBSCOL構造体のアドレスを 指定します。照合順序変更機能は、key_typeにBSKEY_COLが指定されている場合に利用で きます。 160 7.4 BSORT関数で使用する構造体 7.4.5 BSKANJI構造体 BSKANJI構造体は漢字フィールドおよびふりがなフィールドを定義するための構造体です。 typedef struct { unsigned char unsigned char unsigned unsigned unsigned unsigned unsigned } BSKANJI; Kkey_order[4]; Kkey_form; char char char long long reserve1; reserve2; Fkey_type; Fkey_position; Fkey_length; /* /* reserved reserved */ */ BSKANJI構造体メンバ unsigned char Kkey_order[4] 漢字フィールドの漢字属性を指定します。 漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで指定 できます。 指定可能な漢字属性を以下に示します。 定義値 意味 BS_BUSHU 部首コード順に並べます。 BS_SOKAKU 総画数順に並べます。 BS_ONYOMI 音読み順に並べます。 BS_KUNYOMI 訓読み順に並べます。 BS_CODE 漢字コード順に並べます。 unsigned char Kkey_form 漢字ソートマージ機能の方式を指定します。 指定可能な方式を以下に示します。 定義値 意味 BSFM_STD 基本方式(漢字属性の順)に並べます。ふりがなフィールドの指定は必 要ありません。BSKANJI構造体のKkey_orderメンバの指定が必要です。 BSFM_DIC 国語辞典方式(ふりがなの順)に並べます。ふりがなフィールドの指定 が必要となります。 unsigned char Fkey_type ふりがなフィールドのデータ形式を指定します。 ふりがなフィールドには、半角文字と全角文字が混在できます。 指定可能なデータ形式を以下に示します。 バイナリファイルの場合 種類 文字 データ形式 定義値 長さ(バイト) ASCIIコード BSKEY_ASC 1~レコード長 (注1) EBCDICコード (注2) BSKEY_EBC 1~レコード長 (注1) シフトJISコード BSKEY_SJI 1~レコード長 (注1) JEFコード (注2) BSKEY_JEF 2~レコード長 (2の倍数) (注1) 161 第7章 C言語プログラムからPowerSORTを使用する テキストファイルの場合 種類 文字 データ形式 ASCIIコード 定義値 BSKEY_ASC 長さ(バイト) 1~レコード長 (注1) シフトJISコード BSKEY_SJI 1~レコード長 (注1) 注1) 入力ファイルのレコード再編成機能を指定した場合は、入力レコード再編成後のレコード長 まで指定できます。 注2) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。 unsigned long Fkey_position ふりがなフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 unsigned long Fkey_length ふりがなフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 7.4.6 BSCOL構造体 BSCOL構造体は照合順序変更機能を定義するための構造体です。 typedef struct { unsigned char } BSCOL; col_char[256]; BSCOL構造体メンバ unsigned char col_char[256] 照合順序変更用の256バイトのテーブルを指定します。このテーブルのオフセット値のコード番号の 位置に変更したいコード番号を設定します。なお、256バイトすべてにコードを設定する必要があり ます。変更したくないコードはオフセット値と同じコードを設定します。 7.4.7 BSRTFILE構造体 BSRTFILE構造体は、入力ファイル、出力ファイル、メッセージファイルおよび一時ファイルの情報を 指定するための構造体です。 BSRTFILE構造体で指定するすべてのファイル情報を省略する場合は、bsrtopen関数のパラメタのfile に<NULL>を指定します。ファイル情報を指定する場合は、領域を確保した上で指定します。 162 7.4 BSORT関数で使用する構造体 typedef struct { BSPTR_BSFILE BSPTR_UCHAR BSPTR_BSFILE BSPTR_UCHAR BSPTR_BSFSYS unsigned char unsigned char unsigned char BSPTR_BSIDX BSPTR_BSFILE_EXT BSPTR_VOID } BSRTFILE; inpfile_tbl; outfile_addr; tmpfile_tbl; msgfile_addr; inpfsys_tbl; outfsys; recovery; reserve[2]; idx_addr; outfile_tbl; /* reserved */ reserve2; BSRTFILE構造体のメンバ BSPTR_BSFILE inpfile_tbl 入力ファイルパス名を指定する場合は、入力ファイルパス名を指定したBSFILE構造体のアドレスを設 定します。 標準入力から入力させる場合、またはユーザアプリケーションからレコードを渡す場合(bsrtput関数 またはbsrtmrge関数)は、<NULL>を設定します。 BSPTR_UCHAR outfile_addr 出力ファイルパス名を指定する場合は、出力ファイルパス名のアドレスを設定します。 出力ファイルパス名は<NULL>で終わる文字列です。 出力ファイルを複数指定する場合は、BSRTFILE構造体のoutfile_tblに設定します。 標準出力に出力させる場合、ユーザアプリケーションにレコードを返す場合(bsrtget関数または bsrtmrge関数)、または出力ファイルを複数指定する場合は<NULL>を設定します。 BSPTR_BSFILE tmpfile_tbl 一時ファイルパス名を指定する場合は、一時ファイルパス名を指定したBSFILE構造体のアドレスを設 定します。 一時ファイルパス名を省略する場合は<NULL>を設定します。一時ファイルパス名を省略すると、以下 の優先順位に従って一時ファイルを作成するフォルダを決定します。指定されたフォルダが存在しな い場合はエラーとなります。 1. 環境変数BSORT_TMPDIRで指定されたフォルダ 2. 環境変数TEMPで指定されたフォルダ 3. 環境変数TMPで指定されたフォルダ 4. Windowsシステムのフォルダ BSPTR_UCHAR msgfile_addr メッセージファイルパス名を指定する場合は、メッセージファイルパス名のアドレスを設定します。 メッセージファイルパス名は<NULL>で終わる文字列です。 メッセージファイルパス名を省略する場合は、<NULL>を設定します。 メッセージファイルパス名を省略した場合、環境変数BSORT_MSGFILEの指定があれば、指定したファ イルにメッセージを出力します。 BSPTR_BSFSYS inpfsys_tbl BSFSYS構造体のアドレスを設定します。 入力ファイルパス名を指定しない場合、またはシステムの標準ファイルシステムだけを使用する場合 は指定を省略できます。 163 第7章 C言語プログラムからPowerSORTを使用する unsigned char outfsys 出力ファイルのファイルシステムを設定します。 ファイルシステムについてはBSFSYS構造体を参照してください。出力ファイルパス名を指定しない場 合、またはシステムの標準ファイルシステムを使用する場合は指定を省略できます。 unsigned char recovery 出力ファイルがファイルシステムの許容量を超えた場合のリカバリ処理を設定します。 リカバリ処理は、出力ファイルがファイルシステムの許容量を超えた場合、複数のファイルに分割し て出力します。このため、リカバリ処理を指定した場合は出力ファイルを複数指定してください。リ カバリ処理の指定がないときに出力ファイルがファイルシステムの許容量を超えた場合には、別の出 力ファイルをオープンすることなく出力処理は終了します。リカバリ処理は以下のファイルを処理す る場合に指定できます。 ● システム標準のファイル(テキストファイル、バイナリファイル) リカバリ処理を指定する場合は以下を指定します。 定義値 意味 BSRC_FILE BSPTR_BSIDX リカバリ処理を行います。 idx_addr BSIDX構造体のアドレスを設定します。 出力ファイルが富士通COBOLファイルシステムの索引ファイルのときに有効です。富士通COBOLファイ ルシステムの索引ファイルの場合は省略できません。BSIDX構造体については、BSIDX構造体を参照し てください。 BSPTR_BSFILE_EXT outfile_tbl BSFILE_EXT構造体のアドレスを設定します。 リカバリ処理を行う場合の出力ファイルの情報を設定します。 また、入力ファイルまたは出力ファイルのファイルシステムにBtrieveファイルシステムを指定した 場合に、入力Btrieveファイルのオーナーネーム、または出力Btrieveファイルのインデックス情報を 設定します。 7.4.8 BSFILE構造体 BSFILE構造体は、入力ファイルパス名と一時ファイルパス名を指定するための構造体です。 BSFILE構造体の領域を確保する際の領域の大きさはBS_FILESIZE(n)を使って求められます。 BS_FILESIZE(n)は、n個のファイルパス名のポインタをもつBSFILE構造体の大きさを求めるマクロで す。 typedef struct { unsigned long unsigned_char entry_no; *file_addr[1]; } BSFILE; BSFILE構造体メンバ unsigned long entry_no 入力ファイルパス名または一時ファイルパス名の数を設定します。 0を設定すると入力ファイルパス名または一時ファイルパス名の指定を省略したものとみなします。 マージ機能で入力ファイルパス名を指定する場合は、入力ファイルパス名の数とBSRTPRIM構造体の input_stringには同じ値を設定しなければなりません。 unsigned_char *file_addr[n] 入力ファイルパス名または一時ファイルパス名のアドレスを設定します。 ファイルパス名は、<NULL>で終わる文字列です。 164 7.4 BSORT関数で使用する構造体 7.4.9 BSFSYS構造体 BSFSYS構造体は、入力ファイルシステムを指定するための構造体です。 BSFSYS構造体の領域を確保する際の領域の大きさはBS_INPFSYSSIZE(n)を使って求められます。 BS_INPFSYSSIZE(n)は、n個の入力ファイルシステムの情報をもつBSFSYS構造体の大きさを求めるマク ロです。 typedef struct { unsigned long unsigned char } BSFSYS; entry_no; filesys[1]; BSFSYS構造体メンバ unsigned long entry_no 指定する入力ファイルシステムの数を設定します。 unsigned char filesys[n] 入力ファイルのファイルシステムを設定します。 入力ファイルシステムの指定は、BSFILE構造体のfile_addr[i]に指定したファイルのファイルシステ ムをfilesys[i]で設定するように、入力ファイルと1対1に対応します。入力ファイルシステムの数が 入力ファイルパス名の数より少ない場合は、最後に指定したファイルシステムが残りのファイルに適 用されます。 指定可能なファイルシステムを以下に示します。 定義値 ファイルシステム BSFS_DOSFS システムの標準ファイルシステム(省略値) BSFS_COBS 富士通COBOLファイルシステム(順ファイル) BSFS_COBS64 富士通COBOLファイルシステム(BSAM対応順ファイル) BSFS_COBR 富士通COBOLファイルシステム(相対ファイル) BSFS_COBI 富士通COBOLファイルシステム(索引ファイル) BSFS_MFCS Micro Focus COBOLファイルシステム(順ファイル) BSFS_MFCR Micro Focus COBOLファイルシステム(相対ファイル) BSFS_MFCI Micro Focus COBOLファイルシステム(索引ファイル) BSFS_BTRV Btrieveファイルシステム BSFS_RDM RDMファイルシステム ● PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、ア クセスすることができません。また、富士通COBOLファイルシステム(索引ファイル)を 指定した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもアク セスすることができません。共用モード、排他モードについては、お使いの富士通COBOL ファイルシステムのマニュアルを参照してください。 ● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定しても、使用する富士通COBOL ファイルシステムが対応していない場合は富士通COBOLファイルシステム(順ファイル)と して動作します。BSAM対応については、お使いの富士通COBOLファイルシステムのマニュ アルを参照してください。 ● 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定した場合は、富士通COBOLファ イルシステムの仕様によりレコード排他処理が行われません。 ● Micro Focus COBOLファイルシステム(索引ファイル)は、入力ファイルのファイルシステ 165 第7章 C言語プログラムからPowerSORTを使用する ムとしてのみ指定可能です。 ● データが圧縮されたMicro Focus COBOLの索引ファイルを入力ファイルに指定することは できません。 7.4.10 BSIDX構造体 BSIDX構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデック スを作成するための構造体です。 BSIDX構造体の領域を確保する際の領域の大きさはBS_IDXTABSIZE(n)を使って求められます。 BS_IDXTABSIZE(n)は、n個のインデックスの情報をもつBSIDX構造体の大きさを求めるマクロです。 typedef struct { unsigned char unsigned char unsigned long BSIDXKEY idx_flag; reserve[3]; entry_no; idx_entry[1]; /* reserved */ } BSIDX; BSIDX構造体メンバ unsigned char idx_flag インデックスの作成方法を設定します。 以下から選択して指定します。複数指定する場合は、その論理和を指定します。 定義値 意味 BSIF_COMP 圧縮指定を設定します。 BSIF_CMPR レコードのデータ圧縮指定を設定します。 unsigned long entry_no インデックスの数を指定します。 上限値は富士通COBOLファイルシステムの上限値に従います。 BSIDXKEY idx_entry[n] インデックスフィールドを指定します。詳細はBSIDXKEY構造体を参照してください。 7.4.11 BSIDXKEY構造体 BSIDXKEY構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデ ックスを指定するための構造体です。 typedef struct { unsigned long unsigned long unsigned char unsigned char unsigned char unsigned char } BSIDXKEY; 166 idx_position; idx_length; idx_type; idx_order; idx_msub; idx_comp; 7.4 BSORT関数で使用する構造体 BSIDXKEY構造体のメンバ unsigned long idx_position インデックスフィールドの位置を、レコードの先頭を0としたバイト位置で指定します。 unsigned long idx_length インデックスフィールドの長さをバイト数で指定します。 unsigned char idx_type インデックスフィールドのデータ形式を指定します。 指定可能なデータ形式と長さを以下に示します。 定義値 長さ (バイト) ASCIIコード BSKEY_ASC 1~254 富士通COBOLのCHARTYPE Unicode UCS-2形式(注) BSKEY_UCS2 2~254 (2の倍数) 富士通COBOLのCHARTYPE Unicode UTF-8形式 BSKEY_UTF8 1~254 富士通COBOLのCHARTYPE 種類 文字 データ形式 意味 注) Unicode UCS-2形式のバイトオーダはLittle endianとなります。 unsigned char idx_order インデックスフィールドの並びを指定します。 富士通COBOLファイルシステムの索引ファイルの場合は、昇順を指定します。 定義値 並び BS_ASCND unsigned char 昇順を示します。 idx_msub 出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドの 作成方法を指定します。必要に応じて、以下を指定します。最終セグメントには、必ずBS_ISEGEND を指定します。 定義値 意味 BSIF_DUPS インデックスに重複キー指定を示します。 BS_IMAIN 主キー指定を示します。 BS_ISUBとは排他関係にあります。 BS_ISUB 副キー指定を示します。 BS_IMAINとは排他関係にあります。 BS_ISEGEND セグメントの終わりを示します。 unsigned char idx_comp 現在サポートしていないメンバです。<NULL>を設定します。 7.4.12 BSFILE_EXT構造体 BSFILE_EXT構造体は複数の出力ファイルを指定するための構造体です。 出力ファイルがファイルシステムの許容量を超えたとき、リカバリ処理として複数のファイルへ分割 して出力する場合に指定します。リカバリ処理は、以下のファイルを処理する場合に指定できます。 ● システム標準のファイル(テキストファイル、バイナリファイル) また、Btrieveファイルシステムを指定する場合は、本エントリでは入力ファイルのオーナーネーム や出力ファイルのインデックス情報を指定します。出力ファイル名は、BSRTFILE構造体の outfile_addrに設定してください。 BSFILE_EXT構造体の領域を確保する際の領域の大きさはBS_OUTTABSIZE(n)を使って求められます。 BS_OUTTABSIZE(n)は、n個の出力ファイルの情報をもつBSFILE_EXT構造体の大きさを求めるマクロで す。 167 第7章 C言語プログラムからPowerSORTを使用する typedef struct { unsigned long entry_no; union { BSPTR_BSFILE_BASE BSPTR_BSFILE_BASE BSPTR_BSFILE_BTRV } outfile_opt[1]; } BSFILE_EXT; dosfs; text; btrieve; BSFILE_EXT構造体のメンバ unsigned long entry_no 出力ファイルパス名の数を設定します。 システムの標準ファイルシステムの場合は複数の出力ファイルを指定できますが、それ以外のファイ ルシステムの場合は1を指定します。 0を設定すると出力ファイルの指定を省略したものとみなします。 ファイル拡張情報を設定するメンバ これらのメンバは、共用体で定義されています。 BSPTR_BSFILE_BASE outfile_opt[n].dosfs システムの標準ファイルシステムのバイナリファイルの場合にBSFILE_BASE構造体のアドレスを設定 します。 entry_noで指定した個数分指定します。 BSPTR_BSFILE_BASE outfile_opt[n].text システムの標準ファイルシステムのテキストファイルの場合にBSFILE_BASE構造体のアドレスを設定 します。 entry_noで指定した個数分指定します。 BSPTR_BSFILE_BTRV outfile_opt[n].btrieve Btrieveファイルシステムの場合にBSFILE_BTRV構造体のアドレスを設定します。 entry_noで指定した個数分指定します。 7.4.13 BSFILE_BTRV構造体 BSFILE_BTRV構造体は、入力Btrieveファイルのオーナーネームまたは出力Btrieveファイルのインデ ックス情報を指定するための構造体です。 typedef struct { BSPTR_BSFILE short int short int char } BSFILE_BTRV; InOwnerNameTbl; key_len; bufsize; *btrv_spec; BSFILE_BTRV構造体メンバ BSPTR_BSFILE InOwnerNameTbl 入力Btrieveファイルのオーナーネームテーブルのアドレスを設定します。 通常、省略可能で、省略する場合は<NULL>を指定します。 168 7.4 BSORT関数で使用する構造体 short int key_len 出力Btrieveファイルのインデックスキーの合計長を設定します。 short int bufsize 出力Btrieveファイルのファイル情報とインデックスキー情報を設定した領域の大きさを設定します。 char *btrv_spec 出力Btrieveファイルのファイル情報とインデックスキー情報を設定した領域のアドレスを設定しま す。 オーナーネームテーブル オーナーネームの指定はBSFILE構造体を使用して指定します。入力ファイルが複数のときは入力ファ イル名と同じ順でオーナーネームを指定します。オーナーネームがない場合は、BSFILE構造体の file_addr[i]には<NULL>を指定します。 ファイル情報とインデックスキー情報 ファイル情報とインデックスキー情報は、出力Btrieveファイルのファイル情報およびキー情報を指 定するための領域です。概要は以下のとおりです。テーブルの形式や指定内容に関する詳しい説明に ついては、Btrieveのプログラマーズガイドまたはオペレーションマニュアルを参照してください。 169 第7章 C言語プログラムからPowerSORTを使用する 7.4.14 BSFILE_BASE構造体 BSFILE_BASE構造体は、出力ファイルごとに固有のファイル情報を指定するための構造体です。 typedef struct { BSPTR_UCHAR unsigned char unsigned char BSPTR_BSOUT_COND } BSFILE_BASE; outfile_addr; file_kind; reserve[3]; out_cond; /* reserved */ BSFILE_BASE構造体のメンバ BSPTR_UCHAR outfile_addr 出力ファイルパス名のアドレスを設定します。出力ファイルパス名は、<NULL>で終わる文字列です。 unsigned char file_kind 出力ファイルのファイルシステムを設定します。 170 7.4 BSORT関数で使用する構造体 複数のファイルシステムを混在させることはできません。ファイルシステムについては、BSFSYS構造 体を参照してください。 BSPTR_BSOUT_COND out_cond サポートしていないメンバです。何も設定する必要はありません。 7.4.15 BSRTOPT構造体 BSRTOPT構造体は、集約フィールド、選択フィールド、再編成フィールドおよび読み飛ばしレコード 件数を指定するための構造体です。 typedef struct { BSPTR_BSRTSUM BSPTR_BSRTSELE BSPTR_BSRTRCON BSPTR_BSRTSKIP } BSRTOPT; sum_addr; sele_addr; rcon_addr; skip_addr; BSRTOPT構造体メンバ BSPTR_BSRTSUM sum_addr BSRTSUM構造体のアドレスを設定します。 BSRTSUM構造体は集約フィールドを定義する構造体です。BSRTSUM構造体は、BSRTPRIM構造体の optionfuncにBS_SUMを指定したときに有効になります。BSRTPRIM構造体のoptionfuncにBS_SUMを指定 し、集約フィールドを省略するとエラーになります。 レコード集約処理実行中にオーバフローが発生した場合、集約フィールドを含まない短い レコードが入力された場合、またはテキストレコードの集約処理実行中に集約フィールド 内に不適切なコードが発見された場合、bsrtopen関数の復帰値は0、BSRTREC構造体の errdetailには、それぞれBSERR_OVERFLOW、BSERR_SUMSHRTREC、BSERR_SUMFIELDが設定さ れます。 BSPTR_BSRTSELE sele_addr BSRTSELE構造体のアドレスを設定します。 BSRTSELE構造体は選択フィールドを定義する構造体です。BSRTSELE構造体は、BSRTPRIM構造体の optionfuncにBS_SELECTを指定したときに有効になります。BSRTPRIM構造体のoptionfuncにBS_SELECT を指定し、選択フィールドを省略するとエラーになります。 BSPTR_BSRTRCON rcon_addr BSRTRCON構造体のアドレスを設定します。 BSRTRCON構造体は再編成フィールドを定義する構造体です。BSRTRCON構造体は、BSRTPRIM構造体の optionfuncにBS_RECONを指定したときに有効になります。BSRTPRIM構造体のoptionfuncにBS_RECON を指定し、再編成フィールドを省略するとエラーになります。 再編成フィールドを指定した場合、キーフィールドと集約フィールドで指定する位置は、 再編成後のレコードの先頭から計算します。 171 第7章 C言語プログラムからPowerSORTを使用する BSPTR_BSRTSKIP skip_addr BSRTSKIP構造体のアドレスを設定します。 BSRTSKIP構造体は読み飛ばすレコード件数を定義する構造体です。BSRTSKIP構造体は、BSRTFILE構造 体で入力ファイル名を指定したときに有効になります。 7.4.16 BSRTSUM構造体 BSRTSUM構造体は、レコード集約機能を使用する場合に、集約フィールドを定義するための構造体で す。 テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式またはUnicode UTF-8形式で記述され た数字(半角)だけを処理の対象とします。 BSRTSUM構造体の領域を確保する際の領域の大きさはBS_SUMTABSIZE(n)を使って求められます。 BS_SUMTABSIZE(n)は、n個のBSRTSUM構造体の大きさを求めるマクロです。 typedef struct { unsigned long BSSUM } BSRTSUM; entry_no; sum_entry[1]; BSRTSUM構造体メンバ unsigned long entry_no 集約フィールドのエントリ数を設定します。 このメンバに0を設定すると指定を省略したものとみなします。 BSSUM sum_entry[n] 集約フィールドを設定します。詳細はBSSUM構造体を参照してください。 7.4.17 BSSUM構造体 BSSUM構造体は、個々の集約フィールドを定義するための構造体です。 typedef struct { unsigned long unsigned long unsigned char unsigned char unsigned char unsigned char } BSSUM; sum_position; sum_length; sum_type; sum_resultsign sum_resultnumber; reserve; /* reserved */ BSSUM構造体メンバ unsigned long sum_position 集約フィールドの位置を設定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 unsigned long sum_length 集約フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 172 7.4 BSORT関数で使用する構造体 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、指定したフィールド長に拡張して処理します。集約フィールドに指定可能な長さはデータ形 式によって異なります。詳細は集約フィールドに指定可能なデータ形式を参照してください。 unsigned char sum_type 集約フィールドのデータ形式を指定します。 詳細は集約フィールドに指定可能なデータ形式を参照してください。 unsigned char sum_resultsign テキストファイルの場合に符号の有無を指定します。 必要に応じて、以下を指定します。 定義値 意味 BS_SIGNED 集約フィールドの値に符号をつけます。BS_PLUSUNSIGNEDとは排他関 係にあります。 集 約 フ ィ ー ル ド の 値 が 負 の 値 の 場 合 だ け 符 号 (-) を つ け ま す 。 BS_SIGNEDとは排他関係にあります。 指定を省略した場合は入力されたデータに従って、以下の処理をします。 ● 符号付きデータ同士を集約した場合は、集約結果に符号をつけます。 ● 集約結果が負数(-)の場合は、集約結果に符号をつけます。 ● 符号なしデータと符号付きデータの集約結果が正数(+)の場合は、集約結果に符号をつけ ません。 ● 符号なしデータ同士を集約した場合は、集約結果に符号をつけません。 ● 符号なしデータと符号付きデータを集約して、結果が0の場合は、符号をつけません。 ● 符号付きデータ同士を集約して、結果が0の場合は+符号を付けます。 BS_PLUSUNSIGNED unsigned char sum_resultnumber テキストファイルの場合に集約フィールドの値がフィールド長に満たない場合の扱いを指定します。 必要に応じて、以下を指定します。 定義値 意味 BS_ZEROPADDING 集約フィールドの値がフィールド長に満たない場合、左余白にゼロ (0)を詰めます。例えば、集約フィールドの値が1234という4バイトの 数字であり、集約フィールド長が6バイトの場合、001234という数字 にします。BS_BLANKPADDING、BS_ZBDELETEとは排他関係にあります。 BS_BLANKPADDING 集約フィールドの値がフィールド長に満たない場合、左余白に空白を 詰めます。例えば、集約フィールドの値が1234という4バイトの数字 であり、集約フィールド長が6バイトの場合、__1234(_は空白を表わ す)という数字にします。BS_ZEROPADDING、BS_ZBDELETEとは排他関係 にあります。 集約フィールドの先頭から空白、タブおよび'0'を削除します。集約 フィールドの先頭に空白、タブおよび'0'がある場合、左から評価し、 '0'以外の数字が出現するまでの空白、タブおよび'0'を削除します。 例えば、'00123'の場合、'123'という数字にします。ただし、集約フ BS_ZBDELETE ィールドが0(0、0000、+000など)の場合、最後の'0'は削除されませ ん。テキストファイル浮動フィールド指定の場合に指定可能です。 BS_ZEROPADDING、BS_BLANKPADDINGとは排他関係にあります。 指定を省略した場合は、入力されたデータにしたがって以下の処理をします。 ● 出力結果の左余白に0を詰める場合の条件 ― 左余白に'0'が詰められているデータ同士のとき ― 左余白に'0'が詰められているデータと左余白に空白が詰められているデータのと き ― 左余白に'0'が詰められているデータと左余白にタブが詰められているデータのと き 173 第7章 C言語プログラムからPowerSORTを使用する ● 出力結果の左余白に空白を詰める場合の条件 ― 左余白に空白が詰められているデータ同士のとき ― 左余白にタブが詰められているデータ同士のとき ― 左余白に空白が詰められているデータと左余白にタブが詰められているデータの とき 集約フィールドの加算処理中にオーバフローが生じた場合の動作は、環境変数 BSORT_SUMOVERCONTの指定によります。 7.4.18 BSRTSELE構造体 BSRTSELE構造体は、レコード選択機能を使用する場合に、選択フィールドを定義するための構造体で す。 BSRTSELE構造体の領域を確保する際の領域の大きさはBS_SELETABSIZE(n)を使って求められます。 BS_SELETABSIZE(n)は、n個のBSRTSELE構造体の大きさを求めるマクロです。 typedef struct { unsigned long BSSELE } BSRTSELE; entry_no; sele_entry[1]; BSRTSELE構造体メンバ unsigned long entry_no 選択フィールドのエントリ数を指定します。 このメンバに0を設定すると指定を省略したものとみなします。 BSSELE sele_entry[n] 選択フィールドを指定します。 詳細はBSSELE構造体を参照してください。 7.4.19 BSSELE構造体 BSSELE構造体は、個々の選択フィールドを定義するための構造体です。 174 7.4 BSORT関数で使用する構造体 typedef struct { unsigned char unsigned char unsigned char unsigned char sele_cmpoprat; sele_type1; sele_type2; sele_option; unsigned long unsigned long union { unsigned long BSPTR_UCHAR } pos2; unsigned long unsigned char unsigned char unsigned char unsigned char unsigned long unsigned long BSPTR_VOID } BSSELE; sele_position1; sele_length1; sele_position2; sele_literal; sele_length2; sele_trueop; sele_falseop; sele_mask; sele_option2; sele_truejmp; sele_falsejmp; subfield_addr; BSSELE構造体メンバ unsigned char sele_cmpoprat 比較演算子を指定します。 以下に、比較演算子と真の条件について説明します。 比較演算子と真の条件 比較演算子 真の条件 BSCOND_EQ 被比較フィールド = 比較フィールドまたは自己規定値 BSCOND_NE 被比較フィールド ≠ 比較フィールドまたは自己規定値 BSCOND_GT 被比較フィールド > 比較フィールドまたは自己規定値 BSCOND_GE 被比較フィールド ≧ 比較フィールドまたは自己規定値 BSCOND_LT 被比較フィールド < 比較フィールドまたは自己規定値 BSCOND_LE 被比較フィールド ≦ 比較フィールドまたは自己規定値 unsigned char sele_type1 被比較フィールドのデータ形式を指定します。 詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 unsigned char sele_type2 比較フィールドのデータ形式を指定します。 詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。なお、比較 フィールドに自己規定値を指定するときは、sele_type2にBS_LITERALを指定します。 unsigned char sele_option 被比較フィールドの操作を指定します。 テキストファイルの場合に有効です。必要に応じて、以下を指定します。複数指定する場合は、その 論理和を指定します。 175 第7章 C言語プログラムからPowerSORTを使用する 操作 意味 BSOPT_B フィールドの先頭の空白とタブを無視します。 BSOPT_D 空白と英数字だけを比較の対象とします。 BSOPT_I 制御文字コードを無視します。 BSOPT_J 英小文字を英大文字とみなして比較します。 BSOPT_N 符号を含む数字の文字列を算術的な値で比較します。文字列中に数 字以外の文字が存在した場合の結果は保証されません。 sele_option2のBSOPT2_Wとは排他関係にあります。 被比較フィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、被比較フィ ールドの操作は指定できません。 unsigned long sele_position1 被比較フィールドの位置を設定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 unsigned long sele_length1 被比較フィールドの長さを設定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 unsigned long pos2.sele_position2 比較フィールドの位置を設定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 pos2.sele_literalとは共用体で定義されています。自己規定値を指定するときは、 pos2.sele_literalに設定します。 BSPTR_UCHAR pos2.sele_literal 自己規定値のアドレスを設定します。 テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列を含むことはで きません。pos2.sele_position2とは共用体で定義されています。自己規定値以外を指定するときは、 pos2.sele_position2に設定します。 unsigned long sele_length2 比較フィールドまたは自己規定値の長さを設定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 unsigned char sele_trueop 比較結果が真のときの処理を設定します。 最後のエントリのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を設定します。 比較結果の処理については以下を参照してください。 176 7.4 BSORT関数で使用する構造体 比較結果の処理方法 処理の種類 INCLUDE OMIT 次の選択フィールドの処理 指定選択フィールドへ飛ぶ unsigned char 定義値 意味 BSSEL_INCLUDE 比較処理の終りとレコードを処理対象と することを示します。 BSSEL_OMIT 比較処理の終りとレコードを処理対象外 とすることを示します。 BSSEL_NEXT 次の比較処理に移ることを示します。 BSSEL_JUMP 指定した比較処理に移ることを示しま す。 sele_falseop 比較結果が偽のときの処理を設定します。 最後のエントリのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を設定します。 比較結果の処理については、比較結果の処理方法を参照してください。 BSPTR_UCHAR sele_mask サポートしていないメンバです。何も設定する必要はありません。 unsigned char sele_option2 複数バイトで表現される文字の文字列を文字単位に比較する場合の操作を指定します。 必要に応じて、以下を指定します。 定義値 意味 BSOPT2_W 複数バイトから成る文字が混在していても文字ごとに比較します。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式ま たはUnicode UTF-8形式で、入力ファイルのコード系(BSRTPRIM構造体 のcdmode)がEBCDICコード系以外の場合に有効です。 被比較フィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、被比較フィ ールドの操作は指定できません。 unsigned long sele_truejmp sele_trueopにBSSEL_JUMPを設定したときの飛び先を設定します。 iを設定すると真のとき、sele_entry[i]の選択フィールドの処理に移ります。sele_truejmpと sele_falsejmpには、自身のエントリ番号+1~entry_no-1の範囲の値を設定します。 unsigned long sele_falsejmp sele_falseopにBSSEL_JUMPを設定したときの飛び先を設定します。 iを設定すると偽のとき、sele_entry[i]の選択フィールドの処理に移ります。sele_truejmpと sele_falsejmpには、自身のエントリ番号+1~entry_no-1の範囲の値を設定します。 BSPTR_VOID subfield_addr 照合順序変更機能を使用する場合、照合順序変更を定義したBSCOL構造体のアドレスを指定します。 照合順序変更機能は、sele_type1、またはsele_type2にBSKEY_COLが指定されている場合に利用でき ます。 選択フィールド複合条件の指定方法 選択フィールドは、複数の選択フィールドを指定することで複合条件を指定することができます。こ こでは、複合条件の指定方法を説明します。 1つの選択フィールドは、1つの論理式を表現します。 177 第7章 C言語プログラムからPowerSORTを使用する 次の複合条件を満たすレコードを選択する場合の指定方法を以下に示します。 例) (論理式1 ∩ 論理式2) ∪ 論理式3 ∩:論理積 ∪:論理和 entry_no = 3 [0] 論理式1 true BSSEL_NEXT [1] 論理式2 true BSSEL_INCLUDE [2] 論理式3 true BSSEL_INCLUDE false BSSEL_JUMP 2 false BSSEL_NEXT false BSSEL_OMIT 7.4.20 BSRTRCON構造体 BSRTRCON構造体は、レコード再編成機能を使用する場合に、再編成フィールドを定義するための構造 体です。 BSRTRCON構造体の領域を確保する際の領域の大きさはBS_RCONTABSIZE(n)を使って求められます。 BS_RCONTABSIZE(n)は、n個のBSRTRCON構造体の大きさを求めるマクロです。 typedef struct { unsigned long BSRCON entry_no; rcon_entry[1]; } BSRTRCON; BSRTRCON構造体のメンバ unsigned long entry_no 再編成フィールドのエントリ数を設定します。 このメンバに0を設定すると指定を省略したものとみなします。 BSRCON rcon_entry[n] 再編成フィールドを指定します。 詳細はBSRCON構造体を参照してください。 再編成フィールドを指定した場合、キーフィールドと集約フィールドで指定する位置は、 レコード再編成後の位置を指定します。 7.4.21 BSRCON構造体 BSRCON構造体は、個々の再編成フィールドを定義するための構造体です。 typedef struct { union { unsigned long BSPTR_UCHAR } pos; unsigned long unsigned char unsigned char } BSRCON; 178 rcon_position; rcon_literal; rcon_length; rcon_consinf; reserve[3]; /* reserved */ 7.4 BSORT関数で使用する構造体 BSRCON構造体メンバ unsigned long pos.rcon_position 再編成フィールドの位置を設定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイ ト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指 定します。 このフィールドに指定する再編成フィールドの位置は、PowerSORTが入力するレコードのフィールド 位置です。pos.rcon_literalとは共用体で定義されています。自己規定値を指定したいときは、 pos.rcon_literalに設定します。 BSPTR_UCHAR pos.rcon_literal 自己規定値のアドレスを設定します。 テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできま せん。テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列およびレ コード分離文字を含むことはできません。pos.rcon_positionとは共用体で定義されています。入力 レコード中のフィールドを指定したい場合は、pos.rcon_positionに設定します。 unsigned long rcon_length 再編成フィールドまたは自己規定値の長さを指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた 場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた 場合は、実際のフィールド長で処理します。 rcon_consinfにBS_RECENDを指定する場合は、0を指定してください。 unsigned char rcon_consinf 入力レコード中のフィールドを再編成フィールドにするか、または自己規定値を再編成フィールドに するかを設定します。 テキストファイル浮動フィールド指定の処理で自己規定値を指定した場合、PowerSORTがフィールド 分離文字列を追加して再編成します。 定義値 意味 BS_FIELD 入力レコード中のフィールドを再編成フィールドに指定します。 BS_LITERAL 自己規定値を再編成フィールドに指定します。 BS_RECEND 指定位置からレコードの最後までを再編成フィールドに指定します。 7.4.22 BSRTSKIP構造体 BSRTSKIP構造体は、入力ファイルの先頭から不要なレコードを処理前に読み飛ばす場合に、読み飛ば すレコード件数を定義するための構造体です。 BSRTSKIP構造体の領域を確保する際の領域の大きさはBS_SKIPTABSIZE(n)を使って求められます。 BS_SKIPTABSIZE(n)は、n個のBSRTSKIP構造体の大きさを求めるマクロです。 typedef struct { unsigned long unsigned long entry_no; skip_recnum[1]; } BSRTSKIP; BSRTSKIP構造体メンバ unsigned long entry_no 読み飛ばすレコード件数のエントリ数を指定します。 このメンバに0を設定すると指定を省略したものとみなします。 179 第7章 C言語プログラムからPowerSORTを使用する unsigned long skip_recnum[n] 読み飛ばすレコード件数を指定します。 0を指定するとすべてのレコードが処理対象となります。入力ファイルの指定順に合わせて入力ファ イルごとにレコード件数を指定します。 入力ファイル数より読み飛ばすレコード件数の指定が少ない場合は、指定のない入力ファイルのレコ ードはすべて処理対象となります。入力ファイル数より読み飛ばすレコード件数の指定が多い場合は、 ファイルに対応しない指定が無視されます。 7.4.23 BSRTFUNC構造体 BSRTFUNC構造体は、BSORT関数の各アドレスが設定される構造体です。 typedef struct { int (BSPTR_BSRT bsrtput) (BSPTR_BSRTREC); int (BSPTR_BSRT bsrtget) (BSPTR_BSRTREC); int (BSPTR_BSRT bsrtmrge) (BSPTR_BSRTREC); int (BSPTR_BSRT bsrtinit) (long int, struct _BSRTFUNC BSPTR_BSRT, BSPTR_BSRTPRIM, BSPTR_BSRTREC, BSPTR_BSRTKEY, BSPTR_BSRTFILE, BSPTR_BSRTOPT); int (BSPTR_BSRT bsrtterm) (BSPTR_BSRTPRIM, BSPTR_BSRTREC); unsigned long unsigned long BSPTR_VOID } BSRTFUNC; reserve1; reserve2; handle; /* /* reserved reserved */ */ BSRTFUNC構造体メンバ int (BSPTR_BSRT bsrtput) (BSPTR_BSRTREC) bsrtopen関数により、bsrtput関数のアドレスが設定されます。 このメンバは、更新しないでください。 int (BSPTR_BSRT bsrtget) (BSPTR_BSRTREC) bsrtopen関数により、bsrtget関数のアドレスが設定されます。 このメンバは、更新しないでください。 int (BSPTR_BSRT bsrtmrge) (BSPTR_BSRTREC) bsrtopen関数により、bsrtmrge関数のアドレスが設定されます。 このメンバは、更新しないでください。 int (BSPTR_BSRT bsrtinit) (long int, struct _BSRTFUNC BSPTR_BSRT,BSPTR_BSRTPRIM, BSPTR_BSRTREC, BSPTR_BSRTKEY,BSPTR_BSRTFILE, BSPTR_BSRTOPT) PowerSORTが実行中に使用するメンバです。 このメンバは、参照および更新をする必要はありません。 int (BSPTR_BSRT bsrtterm) (BSPTR_BSRTPRIM, BSPTR_BSRTREC) PowerSORTが実行中に使用するメンバです。 このメンバは、参照および更新をする必要はありません。 BSPTR_VOID handle PowerSORTが実行中に使用するメンバです。 このメンバは、参照および更新をする必要はありません。 180 第8章 メッセージとエラーコード ここでは、bsort、bsortexの各コマンドおよびBSORT関数が出力するメッセージと、PowerSORT OCX およびBSORT関数が返すエラー詳細コードについて説明します。 第8章 メッセージとエラーコード 8.1 メッセージ PowerSORTが出力するメッセージには、情報メッセージとエラーメッセージがあります。 また、環境変数BSORT_EVENTLOGにYESの指定がある場合は、動作結果に応じたイベントログを出力し ます。 8.1.1 情報メッセージ 情報メッセージは、環境変数BSORT_MSGLEVEL、bsortexコマンドの-optionオプションのmsglevelオペ ランド、bsortコマンドの-lオプションまたはBSORT関数のBSRTPRIM構造体で情報メッセージの出力を 指定した場合に出力されます。 システムの地域設定を日本以外に指定すると情報メッセージは英語で出力されます。 8.1.1.1 メッセージの説明形式 以下にメッセージの説明形式を示します。 日本語メッセージ 英語メッセージ 埋込み変数 メッセージ中の変数を示します。 %s: %sの位置に示されている文字列の意味 処置 PowerSORTの処置を示します。 8.1.1.2 情報メッセージ 以下に情報メッセージを示します。 Business Sort <<< %s1 >>> DATE %s2 TIME %s3 Business Sort <<< %s1 >>> DATE %s2 TIME %s3 埋込み変数 %s1: PowerSORTのバージョン %s2: 日付 %s3: 時刻 処置 処理を開始または終了します。 182 8.1 メッセージ 入力レコード件数は%sです. Number of input records is %s. 埋込み変数 %s: 入力ファイルから読み込んだすべてのレコード件数またはユーザアプリケーションから受け取 ったすべてのレコード件数 処置 処理を継続します。 出力レコード件数は%sです. Number of output records is %s. 埋込み変数 %s: 出力ファイルに出力したすべてのレコード件数またはユーザアプリケーションへ返却したすべ てのレコード件数 処置 処理を継続します。 削除レコード件数は%sです. Number of suppress records is %s. 埋込み変数 %s: レコードの選択、集約またはサプレス機能で処理の対象外になったレコード件数 処置 処理を継続します。 8.1.2 エラーメッセージ bsortコマンド、bsortexコマンドおよびBSORT関数が出力するエラーメッセージについて説明します。 システムの地域設定を日本以外に指定するとエラーメッセージは英語で出力されます。 8.1.2.1 メッセージの説明形式 以下にメッセージの説明形式を示します。 日本語メッセージ 英語メッセージ 埋込み変数 メッセージ中の変数を示します。 %s: %sの位置に示されている文字列の意味 %d: %dの位置に示されている数値の意味 エラー原因 エラーの原因を示します。 183 第8章 メッセージとエラーコード 処置 PowerSORTの処置を示します。 ユーザ対処 ユーザの対処方法を示します。 8.1.2.2 エラーメッセージ 以下にエラーメッセージを示します。 オプション(%s)は省略できません. Option (%s) is not specified. 埋込み変数 %s: 必要とするオプション エラー原因 次のいずかの場合に出力されます。 ● 標準出力許可(-w)の指定がない場合、出力ファイル名(-o)の指定を省略できません。 ● COBOLファイルまたはRDMファイルを指定した場合は、レコード形式(recform(-record)ま たは-Z)の指定を省略できません。 処置 処理を中断します。 ユーザ対処 必要なオプションを指定して、再度実行してください。 オプション(%s1)と(%s2)は同時に指定できません. Exclusive options (%s1), (%s2) are specified. 埋込み変数 %s1: 排他関係にあるオプション1 %s2: 排他関係にあるオプション2 エラー原因 次のいずれかの場合に出力されます。 ● ソート機能(-s)、マージ機能(-m)、コピー機能(-c)のいずかを同時に指定しています。 ● 先入力先出力(FIFO)機能(fifo(-option)または-f)、サプレス機能(suppress(-summary) または-u)、レコード集約機能(field(-summary)または-g)のいずれかを同時に指定してい ます。 ● コ ピ ー 機 能 (-copy ま た は -c) と 他 の オ プ シ ョ ン (fifo(-option) 、 -summary 、 overwrite(-input)または-f、-u、-g、-r、-v)のいずれかを同時に指定しています。 ● マージ機能(-mergeまたは-m)と上書き許可(overwrite(-input)または-v)を同時に指定し ています。 処置 処理を中断します。 ユーザ対処 排他関係にあるオプションの指定を修正して、再度実行してください。 184 8.1 メッセージ オプション(%s)が重複しています. Duplicate options (%s) are specified. 埋込み変数 %s: 重複しているオプション エラー原因 フィールド指定以外のオプションを重複して指定しています。 処置 処理を中断します。 ユーザ対処 オプションの重複を修正して、再度実行してください。 オプション(%s)の指定に誤りがあります. Invalid option (%s) is specified. 埋込み変数 %s: 不当なオプション エラー原因 次のいずれかの場合に出力されます。 ● オプションとして認識できない文字列があります。 ● マージ機能(-m)を指定していますが、入力ファイルの指定がありません。 ● ファイルシステム(-F)の指定が許されたもの以外です。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 オプション(%s)の値に誤りがあります. Invalid value (%s) is specified. 埋込み変数 %s: 不当なオプション エラー原因 次のいずれかの場合に出力されます。 ● レコード長(-z)、メッセージ出力レベル(-l)の指定が数値ではありません。 ● 当該オプションの値として許されたもの以外です。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 185 第8章 メッセージとエラーコード 引数ファイルに誤りがあります. The mistake is found in argument file. 埋込み変数 なし エラー原因 アーギュメントファイル(引数ファイル)内のクォーテーション( ' )またはダブルクォーテーション ( " )がペアになっていません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 文法的な誤り(%s)があります. Syntax error (%s). 埋込み変数 %s: 文法的な誤りを検出した文字列 エラー原因 次のいずれかの場合に出力されます。 ● 引数が必要なオプションに引数がありません。 ● 引数なしオプション(例えば -s、-m、-f、-u、-v)と引数付オプション(例えば、-y、-z、 -o)を連続して指定しています。 処置 処理を中断します。 ユーザ対処 オプションまたはオペランドの指定形式を修正して、再度実行してください。 キーフィールド(%d)の指定に誤りがあります. The mistake is found in the key-field(%d) specification. 埋込み変数 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ● 形式に誤りがあります。 ● キーフィールド(BSRTKEY構造体のkey_entry[%d])の指定に誤りがあります。 ● 当該データ形式で許しているフィールド長を超えています。または不当な値です。 ● フィールド長の指定がレコード長を超えています。または、レコード長の指定がありませ ん。 ● オプションの指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 186 8.1 メッセージ 集約フィールド(%d)の指定に誤りがあります. The mistake is found in the summation-field(%d) specification. 埋込み変数 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ● 形式に誤りがあります。 ● 集約フィールド(BSRTSUM構造体のsum_entry[%d])の指定に誤りがあります。 ● BSRTPRIM構造体のoptionfuncでBS_SUMを指定していますが、BSRTSUM構造体の指定があり ません。 ● 当該データ形式で許しているフィールド長を超えています。または不当な値です。 ● フィールド長の指定がレコード長を超えています。または、レコード長の指定がありませ ん。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 再編成フィールド(%d)の指定に誤りがあります. The mistake is found in the reconstruction-field(%d) specification. 埋込み変数 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ● 形式に誤りがあります。 ● BSRTPRIM構造体のoptionfuncでBS_RECONを指定していますが、BSRTRCON構造体の指定があ りません。 ● 構成情報(rcon_consinf)の指定が認識できません。または指定されていません。 ● bsortコマンドの引数(-e self.len typ)の自己規定値の長さ(len)より長い自己規定値 (self)を指定しました。 ● bsortexコマンドの引数(-input reconst=self-def.len typ)の自己規定値の長さ(len)よ り長い自己規定値(self-def)を指定しました。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 187 第8章 メッセージとエラーコード 選択フィールド(%d)の指定に誤りがあります. The mistake is found in the selection-field(%d) specification. 埋込み変数 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ● 形式に誤りがあります。 ● 選択フィールド(BSRTSELE構造体のsele_entry[%d])の指定に誤りがあります。 ● BSRTPRIM構造体のoptionfuncでBS_SELECTを指定していますが、BSRTSELE構造体の指定が ありません。 ● 当該データ形式で許しているフィールド長を超えています。または不当な値です。 ● フィールド長の指定がレコード長を超えています。または、レコード長の指定がありませ ん。 ● 真または偽のオペレーションあるいは飛び先に誤りがあります。 ● オプションの指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 環境変数の指定に誤りがあります. Invalid environment variable is specified. 埋込み変数 なし エラー原因 環境変数の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 環境変数(%s)の指定に誤りがあります. Invalid environment variable (%s) is specified. 埋込み変数 %s: 誤りを検出した環境変数 エラー原因 環境変数の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 188 8.1 メッセージ bsrtopen関数で指定したBSRTPRIM(%s)に誤りがあります. The mistake is found in BSRTPRIM(%s) specified by the bsrtopen function. 埋込み変数 %s: 誤りを検出したフィールド名 エラー原因 次のいずれかの場合に出力されます。 ● 機能種別(function)を認識できません。または、指定されていません。 ● レコード形式(recform)が認識できません。または、指定されていません。 ● オプション機能(optionfunc)が認識できません。 ● ファイル操作指示(fileoprat)が認識できません。 ● レコード操作指示(recoprat)が認識できません。 ● メッセージ出力レベル(msglevel)が認識できません。または、指定されていません。 ● 入力コード指示(cdmode)が認識できません。 ● ● ● ● ● チェックレベル(chklevel)が認識できません。 キーオプション(keyoption)が認識できません。 キーオプション2(keyoption2)が認識できません。 マージ機能のとき、ファイル数またはストリング数の指定がありません。 マージ機能のとき、標準入力からレコードを入力するよう指定されています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 bsrtopen関数で指定したBSRTFILE(%s)に誤りがあります. The mistake is found in BSRTFILE(%s) specified by the bsrtopen function. 埋込み変数 %s: 誤りを検出したフィールド名 エラー原因 次のいずれかの場合に出力されます。 ● 入力ファイル(infile_tbl)内の指定に誤りがあります。 ● 出力ファイル(outfile_tbl)内の指定に誤りがあります。 ● 一時ファイル(tmpfile_tbl)内の指定に誤りがあります。 ● メッセージファイル(msgfile_addr)内の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 189 第8章 メッセージとエラーコード bsrtopen関数で指定したBSRTOPT(%s)に誤りがあります. The mistake is found in BSRTOPT(%s) specified by the bsrtopen function. 埋込み変数 %s: 誤りを検出したフィールド名 エラー原因 次のいずれかの場合に出力されます。 ● オプション機能(optfunc)が認識できません。 ● 出力レコード位置(outrecpos)が認識できません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 キーフィールドと集約フィールド,または集約フィールドと集約フィールドが重なっています. Key field and summation field positions, or summation fields positions are identical. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● キーフィールドと集約フィールドが重なっています。 ● 集約フィールド同士が重なっています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 bsrtput関数の使用方法に誤りがあります. Invalid use for bsrtput function. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● ファイルから入力するよう指定しているときに、bsrtput関数を発行しています。 ● bsrtput関数でBS_ENDDATA(レコード渡し終了)を指定した後、bsrtput関数を発行していま す。 ● bsrtopen関数でマージ機能を指定しているときに、ソート機能専用のbsrtput関数を発行 しています。 処置 処理を中断します。 ユーザ対処 誤りの原因を修正して、再度実行してください。 190 8.1 メッセージ bsrtget関数の使用方法に誤りがあります. Invalid use for bsrtget function. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● ファイルに出力するよう指定しているときに、bsrtget関数を発行しています。 ● bsrtput関数でBS_ENDDATA(レコード渡し終了)を指定する前に(レコード渡し途中)、 bsrtget関数を発行しています。 ● PowerSORTからレコードの終了通知後、bsrtget関数を発行しています。 ● bsrtopen関数でマージ機能を指定しているときに、ソート機能専用のbsrtget関数を発行 しています。 処置 処理を中断します。 ユーザ対処 誤りの原因を修正して、再度実行してください。 bsrtmrge関数の使用方法に誤りがあります. Invalid use for bsrtmrge function. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● bsrtopen関数で入力ファイルと出力ファイルを指定しているときに、bsrtmrge関数を発行 しています。 ● PowerSORTからレコードの終了通知後、bsrtmrge関数を発行しています。 ● bsrtopen関数でソート機能を指定したときに、マージ機能専用のbsrtmrge関数を発行して います。 ● bsrtopen関数で指定したストリング番号より大きな値をbsrtmrge関数のストリング番号 に設定しています。 処置 処理を中断します。 ユーザ対処 誤りの原因を修正して、再度実行してください。 %s関数でレコードアドレスの指定がありません. Record address is not specified in %s function. 埋込み変数 %s: bsrtput または bsrtmrge エラー原因 次のいずれかの場合に出力されます。 191 第8章 メッセージとエラーコード ● bsrtput関数でレコードのポインタを指定していません。 ● bsrtmrge関数でレコードを渡し終えたことを指示する前に、レコードのポインタを省略し ました。 処置 処理を中断します。 ユーザ対処 レコードのポインタを指定するようユーザアプリケーションを修正してください。すべてのレコード を渡し終えているのであれば、BS_ENDDATAを指定するようにユーザアプリケーションを修正してくだ さい。 %s関数で指定したレコード長に誤りがあります. Invalid record length is specified in %s function. 埋込み変数 %s: bsrtopen、bsrtput または bsrtmrge エラー原因 次のいずれかの場合に出力されます。 ● 固定長レコード形式のときに、bsrtopen関数で指定した長さと異なる長さを指定していま す。 ● 可変長レコード形式のときに、bsrtopen関数で指定した最大レコード長よりも長いレコー ドを指定しています。 ● bsrtopen関数でレコード長を指定していません。 ● 固定長レコード形式でレコード群渡しのとき、bsrtopen関数で指定したレコード長の整数 倍の値を指定していません。 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をしてください。 ● レコード長が正しい値になるよう、ユーザアプリケーションを修正してください。 ● bsrtopen関数で指定した最大レコード長が実際の最大レコード長以上であるか確認して ください。違っていればユーザアプリケーションを修正してください。 ● bsrtopen関数で検出された場合は、レコード長を指定するようユーザアプリケーションを 修正してください。 入力処理後のレコード長に誤りがあります. The mistake is found in record length after the input process. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 入力レコード再編成の指定がない場合、入力ファイルグループ間で指定したレコード長が 異なります。 ● 入力レコード再編成の指定がある場合、入力ファイルグループ間で入力レコード再編成後 のレコード長が異なります。 処置 処理を中断します。 192 8.1 メッセージ ユーザ対処 次のいずれかの対処をしてください。 ● 入力レコード再編成機能を使用する場合は、入力ファイルグループ間で入力レコード再編 成後のレコード長が同じになるようにして、再度実行してください。 ● 入力レコード再編成機能を使用しない場合は、入力ファイルグループ間で同じレコード長 にして、再度実行してください。 PowerSORTの動作に必要な領域を確保できません. An necessary PowerSORT working area cannot be secured. 埋込み変数 なし エラー原因 必要メモリを確保できません。 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をお願いします。 ● 環境変数BSORT_MEMSIZEの指定を増やしてください。ただし、物理メモリの空きが少ない ときは、BSORT_MEMSIZEの指定を物理メモリの空き以下に減らしてください。 ● ユーザアプリケーションから呼び出している場合には、PowerSORTが使用できるメモリ量 が充分にあるか確認してください。 ● PowerSORTの動作には最低32キロバイト以上の作業域が必要です。 メッセージファイルの容量が足りません.メッセージファイルへの出力を中止します. The message file capacity was insufficient. The output to the message file was interrupted. 埋込み変数 なし エラー原因 ディスクの空き容量がないため、スペースの拡張ができません。 処置 メッセージファイルへの出力を中断し、本メッセージを含めて標準エラー出力に切り換えて処理を続 行します。 ユーザ対処 次のいずれかの対処をお願いします。 ● メッセージファイルを別のディスク上に指定してください。 ● 不要なファイルを削除してディスクに空きスペースを作って再度実行してください。 193 第8章 メッセージとエラーコード 一時ファイルの容量が足りません. Not enough temporary file space. 埋込み変数 なし エラー原因 一時ファイルへのデータ書き出し時に容量不足を検出しました。 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をお願いします。 ● ディスクのスペースに空きがある場合は、空きスペースの存在するフォルダを一時ファイ ル用に定義してください。 ● ディスクのスペースに空きがあり、bsrtopen関数で一時ファイルパス名を指定している場 合は、指定する一時ファイルの数を増やしてください。 ● ディスクのスペースに空きがない場合は、不要なファイルを削除して空きスペースを作っ てください。 一時ファイルが生成できません. The temporary file cannot be created. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 一時ファイルの指定に誤りがあります。 ● 一時ファイルの自動確保処理で、一時ファイル生成に必要な仮想記憶域、またはディスク の空きスペースが不足しています。 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をお願いします。 ● 一時ファイルの指定を確認してください。 ● PowerSORTまたはユーザアプリケーションが使用する仮想記憶域の大きさを減らしてくだ さい。 ● システムの負荷が軽い時間帯に再度実行してください。 ● 不要なファイルを削除してディスクに空きスペースを作ってください。 ファイル(%s)は存在しません. File(%s) does not exist. 埋込み変数 %s: 入力ファイルパス名または出力ファイルパス名 エラー原因 入力ファイルまたは出力ファイルに指定されたファイルパス名が存在しません。 194 8.1 メッセージ 処置 処理を中断します。 ユーザ対処 入力ファイルパス名または出力ファイルパス名を確認してください。 同じファイル(%s)を指定しています. Same file(%s) is specified. 埋込み変数 %s: ファイルパス名 エラー原因 次のいずれかの原因により出力されます。 1. 入力ファイルと出力ファイルに同じファイルを指定していますが、上書き許可(bsortex コマンドの-inputオプションのoverwriteオペランド、bsortコマンドの-vオプション、ま たはbsrtopen関数におけるfileopratのBS_OVERWRITE)を指定していません。 2. マージ機能またはコピー機能で、入力ファイルと出力ファイルに同じファイルを指定して います。 3. 入力ファイルとメッセージファイルに同じファイルを指定しています。 4. 出力ファイルとメッセージファイルに同じファイルを指定しています。 5. 一時ファイルと入力ファイル、一時ファイルと出力ファイル、一時ファイルとメッセージ ファイル、または一時ファイルと他の一時ファイルに同じファイルを指定しています。 6. 一時ファイルパス名の生成で、一意なパス名の生成に失敗しました。 処置 エラー原因が1.~4.の場合は、処理を中断します。5.または6.の場合は処理を継続します。 ユーザ対処 同じファイルパス名を指定しないようにしてください。入力ファイルと出力ファイルに同じファイル を指定し、処理途中で異常が発生した場合、ファイルの復元ができなくなることがあります。 ファイル(%s)の形式に誤りがあります. Invalid format of file (%s). 埋込み変数 %s: エラーのあったファイルパス名 エラー原因 レコード形式に可変長形式を指定していますが、ファイルシステムを省略またはシステム標準のファ イルシステムを指定しています。 処置 処理を中断します。 ユーザ対処 ファイルの形式を確認して再度実行してください。 195 第8章 メッセージとエラーコード ファイル(%s)の属性に誤りがあります. Invalid attribute of file (%s). 埋込み変数 %s: ファイルパス名 エラー原因 次のいずれかの原因により出力されます。 1. 入力ファイルに固定長レコード形式と可変長レコード形式を混在して指定しています。 2. 入力のレコード形式と異なるファイルを出力ファイルに指定しています。 3. BSRTPRIM構造体のrecformで指定されたレコード形式とファイル内のレコード形式が異な ります。 4. BSRTPRIM構造体のrec_lenで指定されたレコード長とファイル内のレコード長が異なりま す。 5. 一時ファイルの属性が違います。または、ディレクトリが使用不可です。 処置 エラー原因が1.~4.の場合は処理を中断します。5.の場合は処理を継続します。 ユーザ対処 エラー原因を取り除いて、再度実行してください。 レコード長を指定していません. Record length is not specified. 埋込み変数 なし エラー原因 次のいずれかの原因により出力されます。 ● レコード長を指定していません。 ● BSRTPRIM構造体のrec_lenの指定がありません。 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をお願いします。 ● レコード長を指定してください。 ● BSRTPRIM構造体のrec_lenにレコード長を指定してください。 ファイル(%s1)のオープンでエラー(%s2)が発生しました. Error occurred during file (%s1) open.(%s2) 埋込み変数 %s1: ファイルパス名 %s2: エラー番号またはエラー詳細情報 エラー原因 次のいずれかの原因により出力されます。 ● システム内のファイルオープン処理でメモリ不足が発生しました。 ● 親フォルダのスペースが拡張できません。 196 8.1 メッセージ ● ファイルのスペースを獲得できません。 ● ファイルパス名の要素がフォルダではありません。 ● 他プロセスで使用中です。 ● 媒体障害、またはソフト障害によるデータ破壊が発生しました。 ● ファイルの存在するディスクが使用できません。 ● 索引ファイルの場合、インデックスの指定に誤りがあります。 ● 格納レコード件数が0件のRDMファイルが入力されました。 なお、エラー原因の調査のため、エラー番号として以下に示す情報が出力される場合があります。 ● 入出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、シス テムが設定するエラーコード ● 入出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通 COBOLファイルシステムが設定するエラーコード ● 入出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラ ーコード("iserrno,isstat4"の形式) 処置 一時ファイルのオープンで発生した場合は処理を継続します。他のファイルで発生した場合は処理を 中断します。 ユーザ対処 次のいずれかの対処をお願いします。 ● メモリ不足が原因の場合は、PowerSORTまたはユーザアプリケーションが使用する仮想記 憶域を減らして、再度実行してください。 ● ディスクのスペース不足が原因の場合は、ディスク上に空きスペースを作って、再度実行 してください。 ● ファイルパス名の要素がフォルダでない場合は、正しいファイルパス名を指定してくださ い。 ● 他プロセスで使用中の場合は、使用中でない時間帯に再度実行してください。 ● パス名、またはパス名の要素の長さが制限を超えている場合は、正しい名前を指定して再 度実行してください。 ● 格納レコード件数が0件のRDMファイルを処理する場合は、環境変数BSORT_RDM_EMPTYに CONTINUEを指定してください。 また、出力されたエラー番号について、使用している各ファイルシステムのマニュアルを参照し、エ ラー原因を取り除いてください。 プロセス内,またはシステム内でオープン中のファイルが多過ぎます. There are too many files open in the system or in the process. 埋込み変数 なし エラー原因 次のいずれかの原因により出力されます。 ● プロセス内、またはシステム内でオープン中のファイルが多過ぎるため、必要なファイル をオープンできません。 ● ソート処理に必要とする一時ファイルの数が多過ぎます。 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をお願いします。 ● bsortコマンドまたはbsortexコマンドを使用している場合は、入力ファイルの数を減らし てください。 197 第8章 メッセージとエラーコード ● BSORT関数を使用している場合は、BSORT関数発行前にオープン中のファイルをクローズし てください。 ● システム内でオープン中のファイルが多過ぎる場合は、システムの負荷が低いときに再実 行してください。 ● ソート処理に必要とする一時ファイルの数が多過ぎる場合は、一時ファイルに指定したデ ィスクスペースを拡張してください。また、環境変数BSORT_TMPDIR等により一時ファイル を作成するフォルダを指定している場合は、個々のディレクトリパス名の長さを短くして ください。 ファイル(%s1)のクローズでエラー(%s2)が発生しました. Error occurred during file (%s1) close.(%s2) 埋込み変数 %s1: ファイルパス名 %s2: エラー番号またはエラー詳細情報 エラー原因 次のいずれかの原因により出力されます。 ● メモリ不足が発生しました。 ● 媒体障害、またはソフト障害によるデータ破壊が発生しました。 ● ファイルの存在するディスクが使用できません。 なお、エラー原因の調査のため、エラー番号として以下に示す情報が出力される場合があります。 ● 入出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、シス テムが設定するエラーコード ● 入出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通 COBOLファイルシステムが設定するエラーコード ● 入出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラ ーコード("iserrno,isstat4"の形式) 処置 処理を中断します。 ユーザ対処 PowerSORTまたはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してください。 また、出力されたエラー番号について、使用している各ファイルシステムのマニュアルを参照し、エ ラー原因を取り除いてください。 ファイル(%s1)からのレコード入力中にエラー(%s2)が発生しました. Error occurred during the file (%s1) reading.(%s2) 埋込み変数 %s1: ファイルパス名 %s2: エラー番号またはエラー詳細情報 エラー原因 次のいずれかの原因により出力されます。 ● ファイルからのレコード入力中にメモリ不足が発生しました。 ● 媒体障害、またはソフト障害によるデータ破壊が発生しました。 ● ファイルの存在するディスクが使用できません。 なお、エラー原因の調査のため、エラー番号として以下に示す情報が出力される場合があります。 ● 入力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システ ムが設定するエラーコード 198 8.1 メッセージ ● 入力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通 COBOLファイルシステムが設定するエラーコード ● 入力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラー コード("iserrno,isstat4"の形式) 処置 処理を中断します。 ユーザ対処 PowerSORTまたはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してください。 また、出力されたエラー番号について、使用している各ファイルシステムのマニュアルを参照し、エ ラー原因を取り除いてください。 ファイル(%s1)へのレコード出力中にエラー(%s2)が発生しました. Error occurred during the file (%s1) writing.(%s2) 埋込み変数 %s1: ファイルパス名 %s2: エラー番号またはエラー詳細情報 エラー原因 次のいずれかの原因により出力されます。 ● ファイルへのレコード出力中にメモリ不足が発生しました。 ● ファイルのスペースを拡張できません。 ● 媒体障害、またはソフト障害によるデータ破壊が発生しました。 ● ファイルの存在するディスクが使用できません。 なお、エラー原因の調査のため、エラー番号として以下に示す情報が出力される場合があります。 ● 出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システ ムが設定するエラーコード ● 出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通 COBOLファイルシステムが設定するエラーコード ● 出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラー コード("iserrno,isstat4"の形式) 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をお願いします。 ● メモリ不足が発生した場合は、PowerSORTまたはユーザアプリケーションが使用する仮想 記憶域を減らして、再度実行してください。 ● 出力ファイルのスペースを拡張できなかった場合は、スペースの拡張ができるように、デ ィスク上に空きスペースを作ってから再度実行してください。 また、出力されたエラー番号について、使用している各ファイルシステムのマニュアルを参照し、エ ラー原因を取り除いてください。 ファイル(%s)には参照許可がありません. There is no reference permission in file(%s). 埋込み変数 %s: ファイルパス名 199 第8章 メッセージとエラーコード エラー原因 参照することを許されていないファイルを指定しています。 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をお願いします。 ● ファイルパス名を間違えていた場合は、正しいパス名を指定して再度実行してください。 ● 指定に誤りがない場合は、参照する権利がありませんので、ファイルの管理者に許可をも らってください。 ファイル(%s)には書込許可がありません. There is no writing permission in the file(%s). 埋込み変数 %s: ファイルパス名 エラー原因 書込みすることを許されていないファイルを指定しています。 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をお願いします。 ● ファイルパス名を間違えていた場合は、正しいパス名を指定して再度実行してください。 ● 指定に誤りがない場合は、書き込む権利がありませんので、ファイルの管理者に許可をも らってください。 ファイル(%s)には参照許可または書込許可がありません. There is no reference or writing permission on the file(%s). 埋込み変数 %s: ファイルパス名 エラー原因 参照または書込みすることを許されていないファイルを指定しています。 処置 処理を継続します。 ユーザ対処 ファイルの指定を確認し、再度実行してください。 ストリングが並んでいません. The string was not sorted. 埋込み変数 なし エラー原因 マージ機能の入力に指定したファイル、またはストリングが指定したキー順に並んでいません。 200 8.1 メッセージ 処置 処理を中断します。 ユーザ対処 マージ機能では、ソート済みのファイルまたはストリングを指定してください。 集約処理でオーバフローが発生しました. The overflow occurred at the summation process. 埋込み変数 なし エラー原因 レコード集約処理でオーバフローが発生しました。 処置 次のいずれかの処置を行います。 ● 環境変数BSORT_SUMOVERCONTの指定がない、またはOFFの場合は、集約処理を中断し、それ 以後の同値のキーフィールドを持つレコードに対しては、集約処理を行いません。 ● 環境変数BSORT_SUMOVERCONTの指定がONの場合は、オーバフローする直前まで集約された レコードを出力し、それ以後の同値のキーフィールドを持つレコードに対しては、別レコ ードとして集約処理を継続します。 ソートまたはマージの処理は継続します。bsortopt.exeで値が設定されている場合は、復帰値として 指定値を返します。 ユーザ対処 集約フィールドで指定したフィールドを拡張してください。 集約フィールドが存在しないレコードが入力されたため,集約処理を中止します. Summation field did not exist on the input record. Therefore, the summation process was discontinued. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 可変長レコード入力中、集約フィールドを含まない短いレコードが入力されたため、集約 処理を中止します。 ● テキストレコード入力中、集約フィールドを含まないレコードが入力されたため、集約処 理を中止します。 処置 レコード集約処理を中断します。ソートまたはマージの処理は継続します。 bsortopt.exeで値が設定されている場合は、復帰値として指定値を返します。 ユーザ対処 集約フィールドの指定を確認してください。 201 第8章 メッセージとエラーコード 選択フィールドが存在しないレコードが入力されました. Selection field did not exist on the input record. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 可変長レコード入力中、選択フィールドを含まない短いレコードが入力されました。 ● テキストレコード入力中、選択フィールドを含まないレコードが入力されました。 処置 処理を中断します。 ユーザ対処 選択フィールドの指定を確認してください。 再編成フィールドが存在しないレコードが入力されました. Reconstruction field did not exist on the input record. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 可変長レコード入力中、再編成フィールドを含まない短いレコードが入力されました。 ● テキストレコード入力中、再編成フィールドを含まないレコードが入力されました。 処置 処理を中断します。 ユーザ対処 再編成フィールドの指定を確認してください。 キーフィールドの内部に判別不可能なコードが検出されました. Unreasonable code is found in the key field. 埋込み変数 なし エラー原因 キーフィールドの内部に未定義のコードが検出されました。 処置 処理を中断します。 ユーザ対処 キーフィールドの指定を確認してください。 202 8.1 メッセージ ファイルシステム(%s)でエラーが発生しました. Error occurred in file system(%s). 埋込み変数 %s: 指定したファイルシステム エラー原因 指定したファイルシステムがインストールされていません。 処置 処理を中断します。 ユーザ対処 必要なファイルシステムをインストールしてください。 ファイルパス名(%s)が長すぎます. File path name(%s) is too long. 埋込み変数 %s: ファイルパス名 エラー原因 入力ファイル、出力ファイルまたはアーギュメントファイルのパス名の長さがシステムで定義されて いるPATH_MAXを超えています。 処置 処理を中断します。 ユーザ対処 ファイルパス名の長さをPATH_MAX以下にして、再度実行してください。 %sのパスプレフィックスの構成要素にフォルダでないものがあります. A path prefix component of %s is not a folder. 埋込み変数 %s: ファイルパス名 エラー原因 入力ファイル、出力ファイルまたはアーギュメントファイルのパスプレフィックスの中にフォルダで ないものがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 指定した%sはフォルダです. Specified %s is a folder. 埋込み変数 %s: パス名 203 第8章 メッセージとエラーコード エラー原因 出力ファイルにフォルダを指定しています。 処置 処理を中断します。 ユーザ対処 出力ファイルにファイルを指定して、再度実行してください。 出力デバイス上のスペースが足りません. No space left on the output device. 埋込み変数 なし エラー原因 出力ファイルまたは一時ファイルの書込み中にそのデバイス上に空き領域がなくなりました。 処置 処理を中断します。 ユーザ対処 充分な空き領域があるデバイスを割り当て、再度実行してください。 ファイル(%s)のサイズがプロセスの限度あるいは最大ファイルサイズを超えました. File(%s) size exceeds the process's file size limit or the maximum file size. 埋込み変数 %s: ファイル名 エラー原因 出力ファイルまたは一時ファイルの書込み中に、そのファイルサイズがシステムで設定しているプロ セスのファイルサイズの限度、またはユーザが設定している最大ファイルサイズを超えました。 処置 処理を中断します。 ユーザ対処 処理対象のレコードを選択して出力ファイルサイズを小さくしてください。 システムコールまたはライブラリ関数(%s)でエラー(%d)が発生しました. Error occurred during system call or library function (%s)(%d). 埋込み変数 %s: システムコールまたはライブラリ関数名 %d: エラー番号(errno) エラー原因 システムコールまたはライブラリ関数の呼び出しでエラーが発生しました。 処置 重大なエラーの場合は処理を中断します。そうでない場合は処理を継続します。 ユーザ対処 関数名およびエラー番号からエラーの原因が分かる場合は、そのエラー原因を取り除いて再度実行し 204 8.1 メッセージ てください。エラーの原因が分からない場合は、関数名およびエラー番号とともに技術員(SE)に連絡 してください。 システムコールまたはライブラリ関数(%s1)でエラー(%d)が発生しました(パス名:%s2). Error occurred during system call or library function (%s1)(%d) (path name:%s2). 埋込み変数 %s1: システムコールまたはライブラリ関数名 %d : エラー番号(errno) %s2: パス名 エラー原因 ファイルに対するシステムコールまたはライブラリ関数の呼び出しでエラーが発生しました。 処置 重大なエラーの場合は処理を中断します。そうでない場合は処理を継続します。 ユーザ対処 関数名、エラー番号およびパス名からエラーの原因が分かる場合は、そのエラー原因を取り除いて再 度実行してください。エラーの原因が分からない場合は、関数名、エラー番号およびパス名とともに 技術員(SE)に連絡してください。 PowerSORTのローディング中にエラーが発生しました. Error occurred during PowerSORT loading. 埋込み変数 なし エラー原因 PowerSORTのライブラリがインストールの時点から移動された可能性があります。または、ファイル が壊されている可能性があります。 処置 処理を中断します。 ユーザ対処 PowerSORTを再インストールしてください。 %s関数で指定したレコードにラインフィードが存在しません. Line feed did not exist on the record specified in %s function. 埋込み変数 %s: bsrtput または bsrtmrge エラー原因 指定したテキストレコードにラインフィードが存在しません。 処置 処理を中断します。 ユーザ対処 次のいずれかの対処をしてください。 ● 入力レコードがテキスト形式であることを確認してください。 ● bsrtput関数またはbsrtmrge関数で指定するレコード長を確認してください。 205 第8章 メッセージとエラーコード キーフィールドが存在しないレコードが入力されました. Key field did not exist on the input record. 埋込み変数 なし エラー原因 テキストファイル浮動フィールド指定の場合のレコード入力中、キーフィールドが存在しないレコー ドが入力されました。 処置 処理を中断します。 ユーザ対処 キーフィールドの指定を確認してください。 レコード長の指定に誤りがあります. Invalid record length is specified. 埋込み変数 なし エラー原因 次のいずれかの原因により出力されます。 ● 可変長レコード入力中に指定したレコード長を超えるレコードが入力されました。 ● テキストレコード入力中に指定したレコード長を超えるレコードが入力されました。 処置 処理を中断します。 ユーザ対処 レコード長の指定を確認してください。 集約フィールド(%d)の内部に不適切なコードが発見されたため,集約処理を中断します. Unreasonable code is found in the summation-field(%d) specification. The summation process was interrupted. 埋込み変数 %d: フィールド番号 エラー原因 テキストレコードの集約フィールドに数字、符号、空白およびタブ以外の文字が発見されました。 処置 レコード集約処理を中断します。ソートまたはマージの処理は継続します。 bsortopt.exeで値が設定されている場合は、復帰値として指定値を返します。 ユーザ対処 集約フィールドの指定を確認してください。 206 8.1 メッセージ 漢字コードの変換処理(%s)でエラー(%d)が発生しました. Error occurred during kanji code conversion (%s)(%d). 埋込み変数 %s: エラーが発生した関数名 %d: errnoまたはADJUSTが設定するエラー番号 エラー原因 ADJUSTまたは標準コード変換関数(iconv)がインストールされていません。 処置 処理を中断します。 ユーザ対処 ADJUSTおよび標準コード変換関数(iconv)が正しくインストールされているか確認してください。 同時に指定すべきオプション(%s1)と(%s2)の指定がありません. Synchronous option (%s1), (%s2) are not specified. 埋込み変数 %s1: 必要とするオプション1 %s2: 必要とするオプション2 エラー原因 同時に指定すべき2つのオプションのどちらかを指定していません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 ASCIIコードとEBCDICコード間の変換方式の指定に誤りがあります. Invalid conversion method between ASCII code and EBCDIC code is specified. 埋込み変数 なし エラー原因 ASCIIコードとEBCDICコード間の変換方式の指定に誤りがあります。 ● bsortコマンドの-Qオプション ● bsortexコマンドの-optionのiconvオペランド ● BSRTPRIM構造体のaltmode 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 207 第8章 メッセージとエラーコード FIFOと集約/サプレスは同時に指定できません. Exclusive options, FIFO and summation/suppress are specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 先入力先出力(FIFO)機能とレコード集約機能を同時に指定しています。 ● 先入力先出力(FIFO)機能とサプレス機能を同時に指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 インデックスの作成方法の指定に誤りがあります. Invalid index creation method is specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 主キーと副キーのどちらも指定していません。 ● インデックスの作成方法の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 インデックスのデータ形式を指定していません. Index data type is not specified. 埋込み変数 なし エラー原因 インデックスのデータ形式を指定していません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 208 8.1 メッセージ インデックスの作成方法を指定していません. Index creation method is not specified. 埋込み変数 なし エラー原因 インデックスの作成方法を指定していません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 インデックスの長さの指定に誤りがあります. Invalid index length is specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● インデックスの長さが0バイトです。 ● インデックスの長さが、指定したデータ形式で指定できる長さを超えています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 インデックスの並びの指定に誤りがあります. Invalid index order is specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 富士通COBOLファイルシステムまたはMicro Focus COBOLファイルシステムの索引ファイル の場合に、降順を指定しています。 ● インデックスの並びの指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 209 第8章 メッセージとエラーコード キーオプションの数字の算術的比較と英数字の分割比較は同時に指定できません. Exclusive key options, arithmetic comparison of numeric string and division comparison of alphanumeric string are specified. 埋込み変数 なし エラー原因 キーオプションの数字の算術的比較と英数字の分割比較を同時に指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 キー形式の指定に誤りがあります. Invalid key type is specified. 埋込み変数 なし エラー原因 キー形式の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 コピー機能と集約機能/サプレス機能/並びの降順は同時に指定できません. Exclusive options, copy and summation/suppress/reverse are specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● コピー機能でレコード集約機能を指定しています。 ● コピー機能でサプレス機能を指定しています。 ● コピー機能で並びの降順を指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 210 8.1 メッセージ ストリング数の指定に誤りがあります. Invalid string number is specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● マージ機能で、入力ファイル数とストリング数が異なります。 ● マージ機能で、ストリング数に0を指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 チェックレベルの指定に誤りがあります. Invalid check level is specified. 埋込み変数 なし エラー原因 チェックレベルの指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 テキストファイルのフィールド分離文字列の指定に誤りがあります. Invalid field separating character-string in the text file is specified. 埋込み変数 なし エラー原因 フィールド分離文字列にレコード区切り文字が含まれています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 211 第8章 メッセージとエラーコード テキストファイルのフィールド形式を指定していません. Text field format is not specified. 埋込み変数 なし エラー原因 テキストファイルの場合に、固定フィールドまたは浮動フィールドの指定がありません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 ファイルシステムの指定に誤りがあります. Invalid file system is specified. 埋込み変数 なし エラー原因 ファイルシステムの指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 メッセージレベルの指定に誤りがあります. Invalid message level is specified. 埋込み変数 なし エラー原因 メッセージレベルの指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力時のレコード区切り文字の指定に誤りがあります. Invalid output line delimiter is specified. 埋込み変数 なし エラー原因 出力時のレコード区切り文字の指定に誤りがあります。 212 8.1 メッセージ 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 レコード形式の指定に誤りがあります. Invalid record format is specified. 埋込み変数 なし エラー原因 レコード形式の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 レコード形式を指定していません. Record format is not specified. 埋込み変数 なし エラー原因 レコード形式を指定していません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 レコード形式またはテキストフィールド形式を指定していません. Record format or text field format is not specified. 埋込み変数 なし エラー原因 バイナリ固定長レコード形式、バイナリ可変長レコード形式、テキストファイル固定フィールド指定 のレコード形式、テキストファイル浮動フィールド指定のレコード形式のいずれも指定していません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 213 第8章 メッセージとエラーコード レコード受渡し方法の指定に誤りがあります. Invalid method of passing and receiving records is specified. 埋込み変数 なし エラー原因 レコード受渡し方法の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 索引ファイルで出力可能な最大ファイルサイズまたは最大レコード数を指定しています. Exclusive options, max output file size/max output record number and indexed file are specified. 埋込み変数 なし エラー原因 索引ファイルのとき、1つのファイルに出力可能な最大ファイルサイズまたは最大レコード数を指定 しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 集約機能とサプレス機能は同時に指定できません. Exclusive options, summation and suppress are specified. 埋込み変数 なし エラー原因 レコード集約機能とサプレス機能を同時に指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 214 8.1 メッセージ 集約機能/サプレス機能以外で先頭/最終レコードの出力を指定しています. First/last option is specified without summation/suppress function. 埋込み変数 なし エラー原因 レコード集約機能およびサプレス機能の指定がないときに、先頭/最終レコードの出力を指定してい ます。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力ファイルとメッセージファイルに同じファイル(%s)を指定しています. Same file(%s) is specified for output file and message file. 埋込み変数 %s: ファイルパス名 エラー原因 出力ファイルとメッセージファイルに同じファイルパス名を指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力ファイルに同じファイル(%s)を指定しています. Same file(%s) is specified for output files. 埋込み変数 %s: ファイルパス名 エラー原因 出力ファイルに同じファイルを複数指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力ファイルシステムに誤りがあります. Invalid output file system is specified. 埋込み変数 なし 215 第8章 メッセージとエラーコード エラー原因 次のいずれかの場合に出力されます。 ● テキストファイルのとき、システム標準のファイルシステム(dos)以外を指定しています。 ● 標準出力のとき、システム標準のファイルシステム(dos)以外を指定しています。 ● 出力ファイルシステムに誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 入力時のレコード区切り文字の指定に誤りがあります. Invalid input line delimiter is specified. 埋込み変数 なし エラー原因 入力時のレコード区切り文字の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力ファイルパス名(%s)の指定に誤りがあります. Invalid output file path name(%s) is specified. 埋込み変数 %s: ファイルパス名 エラー原因 出力ファイルパス名の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力可能な最大ファイルサイズの指定に誤りがあります. Invalid max output file size is specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 出力レコード長(レコード再編成後の長さ)より小さい最大ファイルサイズを指定してい ます。 ● 出力可能な最大ファイルサイズの指定に誤りがあります。 216 8.1 メッセージ 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力可能な最大ファイルサイズまたは最大レコード数の指定に誤りがあります. Invalid max output file size or max output record number is specified. 埋込み変数 なし エラー原因 出力ファイルが標準出力のときに、1つのファイルに出力可能な最大ファイルサイズまたは最大レコ ード数を指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 マージ機能/コピー機能で入力ファイルへの上書きを指定しています. Exclusive options, merge/copy and overwrite are specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● マージ機能で入力ファイルへの上書きを指定しています。 ● コピー機能で入力ファイルへの上書きを指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 入力コード系の指定に誤りがあります. Invalid input data code is specified. 埋込み変数 なし エラー原因 入力コード系の指定に誤りがあります。 ● bsortコマンドの-qオプション ● bsortexコマンドの-optionのicodeオペランド ● BSRTPRIM構造体のcdmode 処置 処理を中断します。 217 第8章 メッセージとエラーコード ユーザ対処 誤りを修正して、再度実行してください。 入力ファイルとメッセージファイルに同じファイル(%s)を指定しています. Same file(%s) is specified for input file and message file. 埋込み変数 %s: ファイルパス名 エラー原因 入力ファイルとメッセージファイルに同じファイルパス名を指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 入力ファイルと出力ファイルに同じファイル(%s)を指定しています. Same file(%s) is specified for input file and output file. 埋込み変数 %s: ファイルパス名 エラー原因 入力ファイルと出力ファイルに同じファイルパス名を指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 入力ファイルシステムに誤りがあります. Invalid input file system is specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● テキストファイルで、システム標準のファイルシステム(dos)以外を指定しています。 ● 標準入力で、システム標準のファイルシステム(dos)以外を指定しています。 ● 入力ファイルシステムに誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 218 8.1 メッセージ 入力ファイルパス名(%s)の指定に誤りがあります. Invalid input file path name(%s) is specified. 埋込み変数 %s: ファイルパス名 エラー原因 入力ファイルパス名の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 標準入力と入力への上書きは同時に指定できません. Exclusive options, standard input and overwrite are specified. 埋込み変数 なし エラー原因 標準入力と入力への上書きを同時に指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 入力ファイルパス名を指定していません. Input file path name is not specified. 埋込み変数 なし エラー原因 入力ファイルパス名を指定していません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力ファイルパス名を指定していません. Output file path name is not specified. 埋込み変数 なし エラー原因 出力ファイルパス名を指定していません。 219 第8章 メッセージとエラーコード 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 入力ファイルシステムの指定に誤りがあります. The mistake is found in input file system specification. 埋込み変数 なし エラー原因 入力ファイルシステムの指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力ファイルシステムの指定に誤りがあります. The mistake is found in output file system specification. 埋込み変数 なし エラー原因 出力ファイルシステムの指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 インデックスのデータ形式の指定に誤りがあります. Invalid index data type is specified. 埋込み変数 なし エラー原因 次のいずれかの場合に出力されます。 ● 富士通COBOLファイルシステムまたはMicro Focus COBOLファイルシステムの索引ファイル で、ASCIIコード、Unicode以外を指定しています。 ● インデックスのデータ形式の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 220 8.1 メッセージ システム標準のファイルシステムでは可変長レコード形式を指定できません. Exclusive options, standard file system and variable-length record format are specified. 埋込み変数 なし エラー原因 システム標準のファイルシステムで可変長レコード形式を指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 索引ファイルで出力レコード渡しを指定しています. Exclusive options, output record passing and indexed file are specified. 埋込み変数 なし エラー原因 索引ファイルで出力レコード渡しを指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 bsrtopen関数でBSRTPRIMを指定していません. BSRTPRIM is not specified by the bsrtopen function. 埋込み変数 なし エラー原因 bsrtopen関数でBSRTPRIM構造体を指定していません。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 バイナリファイルでテキスト用キーオプションを指定しています. Key option is specified for binary file. 埋込み変数 なし 221 第8章 メッセージとエラーコード エラー原因 バイナリファイルでテキスト用キーオプションを指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 テキストファイルで入力コード系にEBCDICコード系を指定しています. Exclusive options, text file and EBCDIC input data code are specified. 埋込み変数 なし エラー原因 テキストファイルで入力コード系にEBCDICコード系を指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 bsrtopen関数で指定した%s1(%s2)に誤りがあります. The mistake is found in %s1(%s2) specified by the bsrtopen function. 埋込み変数 %s1: 誤りを検出した構造体名 %s2: 誤りを検出したフィールド名 エラー原因 BSIDX構造体のidx_flagの指定に誤りがある場合に出力されます。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 出力可能な最大ファイルサイズ指定または最大レコード数指定は,出力ファイルが1つのとき 指定できません. Division of output file cannot be specified for one output file. 埋込み変数 なし エラー原因 出力ファイルが1つのとき、出力可能な最大ファイルサイズまたは最大レコード数による出力ファイ ルの分割出力を指定しています。 処置 処理を中断します。 222 8.1 メッセージ ユーザ対処 次のいずれかの対処をしてください。 ● 複数の出力ファイルを指定して、再度実行してください。 ● 出力ファイルの分割出力の指定を外して、再度実行してください。 ソート機能,マージ機能またはコピー機能を同時に指定しています. Exclusive options, -sort, -merge or -copy are specified. 埋込み変数 なし エラー原因 ソート機能、マージ機能またはコピー機能のいずれかを同時に指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 オペランド(%s)の指定に誤りがあります. Invalid operand (%s) is specified. 埋込み変数 %s: 不当なオペランド エラー原因 次のいずれかの場合に出力されます。 ● オペランドとして認識できない文字列があります。 ● bsortexコマンドのソートオプション(-sort)またはマージオプション(-merge)における key=ALL指定のとき、キーフィールドの操作の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 分割出力で指定した%sの後の出力ファイルが足りません. Not enough output file after %s specified for the output division. 埋込み変数 %s: 分割出力で指定した最後の出力ファイルパス名 エラー原因 分割出力で指定した出力ファイルが少ないため、出力できないレコードがあります。 処置 処理を中断します。 ユーザ対処 分割出力で指定する出力ファイルを増やして、再度実行してください。 223 第8章 メッセージとエラーコード 指定したファイルシステムでは出力可能な最大ファイルサイズを指定できません. Max output file size is specified with the file system which dose not support it. 埋込み変数 なし エラー原因 システム標準のファイル(テキストファイル、バイナリファイル)以外のファイルで、1つのファイル に出力可能な最大ファイルサイズを指定しています。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 オペランド(%s)は省略できません. Operand (%s) is not specified. 埋込み変数 %s: 必要とするオペランド エラー原因 -inputオプションでレコード長(reclenオペランド)の指定がありません。 処置 処理を中断します。 ユーザ対処 必要なオペランドを指定して、再度実行してください。 漢字フィールド(%d)の指定に誤りがあります. The mistake is found in the jef-field(%d) specification. 埋込み変数 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ● 漢字ソートマージの方式の指定に誤りがあります。 ● 漢字フィールドの漢字属性の指定に誤りがあります。 ● ふりがなフィールドの位置または長さの指定に誤りがあります。 ● ふりがなフィールドのデータ形式の指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 224 8.1 メッセージ インデックスフィールド(%d)の指定に誤りがあります. The mistake is found in the index-field(%d) specification. 埋込み変数 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ● 位置または長さの指定に誤りがあります。 ● データ形式の指定に誤りがあります。 ● オプションの指定に誤りがあります。 処置 処理を中断します。 ユーザ対処 誤りを修正して、再度実行してください。 PowerSORTの処理で内部論理の矛盾を検出しました.(%s-%d) Logical error occurred at PowerSORT.(%s-%d) 埋込み変数 %s: 検出モジュール名 %d: エラー識別番号 エラー原因 内部論理の矛盾を検出しました。 処置 処理を中断します。 ユーザ対処 エラー識別番号とともに技術員(SE)に連絡してください。 PowerSORTが正しくインストールされていません. PowerSORT is not correctly installed. 埋込み変数 なし エラー原因 PowerSORTが正しくインストールされていません。 処置 処理を中断します。 ユーザ対処 PowerSORTのインストール環境が壊れている可能性があります。必要であればPowerSORTを再度インス トールしてください。 225 第8章 メッセージとエラーコード 8.1.3 アプリケーションログへの出力メッセージ PowerSORTは、環境変数BSORT_EVENTLOGにYESの指定がある場合、動作結果に応じたイベントログを出 力します。イベントログは、システム添付のイベントビューアを起動し、アプリケーションログを参 照してください。PowerSORTがアプリケーションログへメッセージを出力した場合は、該当するシス テム、ハードウェア、動作環境または使用しているファイルシステムに異常がないか確認してくださ い。なお、イベントIDには、BSORT関数のエラー詳細コード(errdetail)と同じ値が設定されます。 イベント ID メッセージ 対処 52 PowerSORTの動作に必要なメモリを 確保できませんでした。 メモリ不足への対処方法を参照して ください。 200 ファイルからレコードの読込み中に エラーが発生しました。 入力ファイルを別のドライブ/装置に 移すか、再作成します。 201 ファイルへのレコード書込み中にエ ラーが発生しました。 出力ファイルを別のドライブ/装置に 移すか、再作成します。 224 一時ファイルへの書込み中にエラー が発生しました。 一時ファイルの割当て先を変更しま す。環境変数BSORT_TMPDIRを参照して ください。 225 一時ファイルからの読込み中にエラ ーが発生しました。 一時ファイルの割当て先を変更しま す。環境変数BSORT_TMPDIRを参照して ください。 231 COBOLのファイルシステムのエラー が発生しました。 使用しているCOBOLファイルまたはラ ンタイムライブラリを再作成/設定し ます。 Btrieveファイルシステムでエラー を検出しました。 Btrieveファイルまたはランタイムラ イブラリを再作成/設定します。 COBOL索引ファイルシステムでエラ ーを検出しました。 使用しているCOBOL索引ファイルまた はランタイムライブラリを再作成/設 定します。 PowerSORTの処理に誤りがあります。 PowerSORTのメモリ量や、オプション 機能の有無など実行条件を変更しま す。 600 漢字ソートマージ処理にエラーが発 生しました。 ADJUSTの環境を再構築します。 601 ADJUST 処 理 に エ ラ ー が 発 生 し ま し た。 ADJUSTの環境を再構築します。 602 ICONV処理にエラーが発生しました。 ADJUSTの環境を再構築します。 242 243 250 226 8.2 エラーコード 8.2 エラーコード ユーザアプリケーションからPowerSORTを呼び出したときに通知されるエラー詳細コードは、BSRTREC 構造体のerrdetailに設定されます。また、富士通COBOLファイルシステム、Btrieveファイルシステ ムおよび漢字ソートマージ機能使用時は、より詳細なコードがBSRTREC構造体のsub_error_codeに設 定されます。 PowerSORT OCXからPowerSORTを呼び出したときに通知されるエラー詳細コードは、ErrorDetailプロ パティに設定されます。また、富士通COBOLファイルシステム、Btrieveファイルシステムおよび漢字 ソートマージ機能使用時は、より詳細なコードがSubErrorCodeプロパティに設定されます。 8.2.1 BSORT関数のエラー詳細コード(errdetail) BSORT関数が実行中にエラーを検出すると、BSRTREC構造体のerrdetailにエラー詳細コードが通知さ れます。ここでは、errdetailに設定される詳細コードとその意味を示します。 コード エラーコードの定義値 意味 1 BSERR_VL bsrtopen関数、またはbsrtclse関数の第1 引数に誤りがあります。 2 BSERR_LOAD PowerSORTのローディングでエラーが発 生しました。 3 BSERR_DELETE PowerSORTを仮想記憶域から消去する処 理でエラーが発生しました。 5 BSERR_PRODUCT PowerSORTが正しくインストールされて いません。 50 BSERR_MEMSIZE bsrtopen関数で指定したメモリサイズが 小さ過ぎます。 51 BSERR_PASSMEM bsrtopen関数で指定したメモリアドレス の領域は、bsrtclse関数で環境の消去が されていません。 52 BSERR_ALCMEM PowerSORTの動作に必要な仮想記憶域を 確保できません。 53 BSERR_MEMZERO bsrtopen関数で仮想記憶域のアドレスを 指定していますが、仮想記憶域の大きさ を指定していません。 54 BSERR_MANYFILE bsrtopen関数で指定した入力ファイルパ ス名の数が多過ぎます。 55 BSERR_INFILETAB bsrtopen関数で指定した入力ファイル名 テーブルに誤りがあります。 227 第8章 メッセージとエラーコード bsrtopen関数で指定したBSRTPRIM情報に 誤りがあります。 ● bsrtopen関数でマージ機能を指定 していますが、ファイル数またはス トリング数の指定がありません。 ● 入力ストリング数がBSRTFILEの指 56 BSERR_BSRTPRIM 定と異なります。 ● 入力ファイルのレコード形式と BSRTPRIMで指定したレコード形式 が異なります。 ● 入力ファイルに通常ファイルを指 定していますが、通常ファイルのフ ァイルサイズがレコード長の倍数 ではありません。 排他関係にある機能を指定しました。 ● 先入力先出力(FIFO)機能、サプレス 57 BSERR_EXCLUSIVE 機能、レコード集約機能 ● ソート機能、マージ機能、コピー機 能 59 60 BSERR_KEYTAB BSERR_SUMTAB キーテーブルに誤りがあります。 ● キーフィールドがレコードの外を 指しています。 ● キーフィールドの形式を認識でき ません。 ● キーフィールド長が各データ形式 のサポート範囲外です。 ● オプションの指定に誤りがありま す。 集約テーブルに誤りがあります。 ● 集約フィールドの数を指定してい ません。 ● 集約フィールドがレコードの外を 指しています。 ● 集約フィールドの形式を認識でき ません。 ● 集約フィールド長がサポート範囲 外です。 61 BSERR_DUPKEY キーフィールドと集約フィールド、また は集約フィールド同士が重なっていま す。 62 BSERR_UNSUPPORT 未サポート機能を指定しています。 63 BSERR_SELTAB 選択テーブルに誤りがあります。 64 BSERR_RECONTAB 再編成テーブルに誤りがあります。 BSERR_FILESYS ファイルシステムの指定に誤りがありま す。または、PowerSORTのファイルアクセ スライブラリがローディングできませ ん。 65 228 8.2 エラーコード 66 BSERR_SELSHRTREC 選択フィールドの指定に誤りがありま す。 ● 選択フィールドより短いレコード が入力されました。 ● テキストレコード入力中、選択フィ ールドを含まないレコードが入力 されました。 再編成フィールドの指定に誤りがありま す。 ● 再編成フィールドより短いレコー 67 BSERR_RCONSHRTREC ドが入力されました。 ● テキストレコード入力中、再編成フ ィールドを含まないレコードが入 力されました。 68 BSERR_OUTFILETAB 69 BSERR_BSRTOPT 100 101 出力ファイルテーブルに誤りがありま す。 bsrtopen関数で指定したBSRTOPT構造体 に誤りがあります。 BSERR_NOOPEN bsrtopen関数を呼び出す前にbsrtput関 数、bsrtget関数またはbsrtmrge関数を使 用しています。 BSERR_BSRTPUT bsrtput関数の使用方法に誤りがありま す。 ● bsrtopen関数でファイルからレコ ードを入力するよう指定したとき に、bsrtput関数を使用しています。 ● レコードの受渡しが完了した後に bsrtput関数を使用しています。 ● マージ処理を指定しているときに bsrtput関数を使用しています。 bsrtget関数の使用方法に誤りがありま す。 ● bsrtopen関数でファイルにレコー ドを出力するよう指定したときに、 bsrtget関数を使用しています。 ● bsrtput関数によるレコードの受渡 102 BSERR_BSRTGET しが完了する前にbsrtget関数を使 用しています。 ● bsrtget関数ですべてのレコードを 出力した後にbsrtget関数を使用し ています。 ● マージ処理を指定しているときに bsrtget関数を使用しています。 229 第8章 メッセージとエラーコード 103 BSERR_BSRTMRGE bsrtmrge関数の使用方法に誤りがありま す。 ● bsrtopen関数でファイルからレコ ードを入力して結果をファイルに 出力するよう指定したときに、 bsrtmrge関数を使用しています。 ● bsrtmrge関数ですべてのレコード を出力した後にbsrtmrge関数を使 用しています。 ● ソート処理を指定しているときに bsrtmrge関数を使用しています。 ● bsrtopen関数で指定したストリン グ番号より大きい値をbsrtmrge関 数のストリング番号に指定してい ます。 104 BSERR_BSRTCLSE 出力処理の途中でbsrtclse関数を呼び出 しました。 110 BSERR_NORECADR レコードのポインタが設定されていませ ん。 111 BSERR_RECLEN レコード長に誤りがあります。 114 BSERR_NOTORDER マージ処理の入力ストリングが並んでい ません。 115 BSERR_OVERFLOW レコード集約処理でオーバフローが発生 しました。 116 BSERR_SUMSHRTREC 集約フィールドの指定に誤りがありま す。 ● 可変長レコード入力中、集約フィー ルドを含まない短いレコードが入 力されたため、レコード集約処理を 中止します。 ● テキストレコード入力中、集約フィ ールドを含まないレコードが入力 されたため、レコード集約処理を中 止します。 117 BSERR_NONLF テキストファイルでレコードの終りに改 行文字がありません。 BSERR_EXTSHRTREC テキストレコード入力中、キーフィール ドを含まないレコードが入力されまし た。 119 BSERR_SUMFIELD テキストレコードのレコード集約処理 中、フィールド内に不適切なコードが発 見されたため、レコード集約処理を中止 します。 200 BSERR_READFILE ファイルからのレコード読込み中にエラ ーが発生しました。 201 BSERR_WRITEFILE ファイルへのレコード書込み中にエラー が発生しました。 202 BSERR_FILEATTR ファイルの属性に誤りがあります。ファ イル属性の取得に失敗しました。 118 230 8.2 エラーコード 203 BSERR_TEMPATTR 一時ファイルの属性に誤りがあります。 ファイル属性の取得に失敗しました。 ファイルの形式に誤りがあります。 ● 通常ファイルと順ファイルを混在 して指定しました。 204 BSERR_FILEFORMAT ● 相対ファイルまたは索引ファイル を指定しました。 ● メッセージファイルに通常ファイ ル以外を指定しました。 205 BSERR_SAMEFILE ファイルパス名の指定に重複がありま す。 ● 入力ファイルと出力ファイルに同 じファイルを指定しました。 ● 入力ファイルとメッセージファイ ルに同じファイルを指定しました。 ● 出力ファイルとメッセージファイ ルに同じファイルを指定しました。 206 207 BSERR_RECFORM BSERR_FILERECLEN レコード形式に誤りがあります。 ● 固定長ファイルと可変長ファイル を混在して指定しています。 ● 入力と出力のレコード形式が異な っています。 レコード長に誤りがあります。 ● 可変長ファイルを指定したときは、 bsrtopen関数で指定した長さより ファイル属性のレコード長の方が 長い場合に発生します。 ● 固定長ファイルを指定したときは、 bsrtopen関数で指定した長さとフ ァイル属性の長さが異なる場合に 発生します。 BSERR_FILEOPEN ファイルのオープンでエラーが発生しま した。 209 BSERR_OPENMAX プロセス内またはシステム内でオープン 中のファイルが多過ぎます。または、必 要とする一時ファイルの数が多過ぎま す。 210 BSERR_FILECLOSE ファイルのクローズでエラーが発生しま した。 211 BSERR_FILEIO 媒体障害、またはソフト障害によるデー タ破壊が発生しました。 212 BSERR_TEMPSPACE 一時ファイルの容量が足りません。 213 BSERR_INCORE インコアソートできません。 214 BSERR_TEMPCREAT 一時ファイルの生成ができません。 215 BSERR_FILENONE 入力または出力に指定したファイルがあ りません。 216 BSERR_PERMIFILE 入力に指定したファイルには参照許可が ありません。 217 BSERR_PERMOFILE 出力に指定したファイルには書込許可が ありません。 208 231 第8章 メッセージとエラーコード 232 218 BSERR_PERMMFILE 指定したメッセージファイルには書込許 可がありません。 219 BSERR_PERMTFILE 一時ファイルに指定したファイルには参 照許可または書込許可がありません。 220 BSERR_MSGSPACE メッセージファイルの容量が足りませ ん。メッセージファイルへの出力を中断 します。 221 BSERR_EXTRECLEN bsrtopen関数で指定したレコード長に誤 りがあります。 222 BSERR_STRFILEREC 入力に通常ファイルを指定しています が、通常ファイルを指定した場合は、レ コード長の省略はできません。 223 BSERR_CLSEARG bsrtclse関数の引数に誤りがあります。 224 BSERR_WRITETEMP 一時ファイルへの書込み中にエラーが発 生しました。 225 BSERR_READTEMP 一時ファイルからの読込み中にエラーが 発生しました。 226 BSERR_ENVAR 環境変数の設定に誤りがあります。 230 BSERR_EUC キーフィールドまたは選択フィールドに 判別不可能なコードがあります。 231 BSERR_COBOL85 ファイルシステムのエラーが発生しまし た。または、指定したファイルシステム のライブラリがありません。 232 BSERR_SYMLINK パス名のチェック中に見つかったシンボ リックリンクの数がMAXSYMLINKSを超え ました。 233 BSERR_NAMELONG ファイルパス名が長過ぎます。 234 BSERR_NOTDIR パスプレフィックスの構成要素にフォル ダでないものがあります。 235 BSERR_ISDIR 指定したパスはフォルダです。 236 BSERR_OUTNOSPC 出力デバイス上のスペースが足りませ ん。 237 BSERR_FILEBIG ファイルサイズがプロセスの限度または 最大ファイルサイズを超えました。 238 BSERR_LIBC システムコールまたはライブラリ関数で エラーが発生しました。 250 BSERR_LOGICAL PowerSORTの処理に誤りがあります。 251 BSERR_ALREADY_EXISTS 既に存在しているファイルを作成しよう としました。 252 BSERR_BAD_DEVICE 指定されたデバイス名が無効です。 253 BSERR_IN_BAD_DEVICE 指定された入力ファイルのデバイス名が 無効です。 254 BSERR_OUT_BAD_DEVICE 指定された出力ファイルのデバイス名が 無効です。 255 BSERR_BAD_PATHNAME 指定されたパス名が無効です。 256 BSERR_IN_BAD_PATHNAME 指定された入力ファイルのパス名が無効 です。 257 BSERR_OUT_BAD_PATHNAME 指定された出力ファイルのパス名が無効 です。 258 BSERR_BAD_UNIT 指定されたデバイスを見つけることがで きません。 8.2 エラーコード 259 BSERR_IN_BAD_UNIT 指定された入力ファイルのデバイスを見 つけることができません。 260 BSERR_OUT_BAD_UNIT 指定された出力ファイルのデバイスを見 つけることができません。 261 BSERR_BUFFER_OVERFLOW ファイル名が長過ぎます。 262 BSERR_IN_BUFFER_OVERFLOW 入力ファイル名が長過ぎます。 263 BSERR_OUT_BUFFER_OVERFLOW 出力ファイル名が長過ぎます。 264 BSERR_CANNOT_MAKE フォルダまたはファイルを作成できませ ん。 265 BSERR_IN_CANNOT_MAKE 入力ファイルとして指定されたフォルダ またはファイルを作成できません。 266 BSERR_OUT_CANNOT_MAKE 出力ファイルとして指定されたフォルダ またはファイルを作成できません。 267 BSERR_CONNECTION_UNAVAIL デバイスへの接続は以前から記憶されて いる接続ですが現在は接続されていませ ん。 268 BSERR_IN_CONNECTION_UNAVAIL 入力ファイルのデバイスへの接続は以前 から記憶されている接続ですが現在は接 続されていません。 269 BSERR_OUT_CONNECTION_UNAVAIL 出力ファイルのデバイスへの接続は以前 から記憶されている接続ですが現在は接 続されていません。 270 BSERR_DIR_NOT_ROOT 指定されたフォルダは有効なフォルダで はありません。 271 BSERR_IN_DIR_NOT_ROOT 入力ファイルとして指定されたフォルダ は有効なフォルダではありません。 272 BSERR_OUT_DIR_NOT_ROOT 出力ファイルとして指定されたフォルダ は有効なフォルダではありません。 273 BSERR_DIRECTORY フォルダ名が無効です。 274 BSERR_IN_DIRECTORY 入力ファイルとして指定されたフォルダ 名が無効です。 275 BSERR_OUT_DIRECTORY 出力ファイルとして指定されたフォルダ 名が無効です。 276 BSERR_DISK_CORRUPT ディスク装置が壊れていて読み取ること ができません。 277 BSERR_DISK_FULL ディスク上に充分な容量がありません。 278 BSERR_DISK_OPERATION_FAILED ハードディスクへアクセス中にディスク 操作に失敗し、再試行も失敗しました。 279 BSERR_DISK_RECALIBRATE_FAILED ハードディスクへアクセス中に再校正処 理に失敗し、再試行も失敗しました。 280 BSERR_DISK_RESET_FAILED ハードディスクへのアクセス中にディス クコントローラのリセットが必要になり ましたが、失敗しました。 281 BSERR_DRIVE_LOCKED ディスクは使用中か、またはほかのプロ セスがロックしています。 282 BSERR_IN_DRIVE_LOCKED 入力ファイルとして指定されたディスク は使用中か、またはほかのプロセスがロ ックしています。 BSERR_OUT_DRIVE_LOCKED 出力ファイルとして指定されたディスク は使用中か、またはほかのプロセスがロ ックしています。 283 233 第8章 メッセージとエラーコード 284 BSERR_EXTENDED_ERROR 拡張エラーが発生しました。 285 BSERR_FILE_CORRUPT ファイルまたはフォルダが壊れており、 読み取ることができません。 BSERR_FILE_INVALID ファイルのボリュームが外部的に交換さ れており、オープンされているファイル は有効でなくなりました。 BSERR_IN_FILE_INVALID 入力ファイルとして指定されたボリュー ムが外部的に交換されており、オープン されているファイルは有効でなくなりま した。 288 BSERR_OUT_FILE_INVALID 出力ファイルとして指定されたボリュー ムが外部的に交換されており、オープン されているファイルは有効でなくなりま した。 289 BSERR_FILE_NOT_FOUND 指定されたファイルを見つけることがで きません。 290 BSERR_IN_FILE_NOT_FOUND 指定された入力ファイルを見つけること ができません。 291 BSERR_OUT_FILE_NOT_FOUND 指定された出力ファイルを見つけること ができません。 292 BSERR_FILENAME_EXCED_RANGE ファイル名または拡張子が長過ぎます。 293 BSERR_IN_FILENAME_EXCED_RANGE 入力ファイル名または拡張子が長過ぎま す。 294 BSERR_OUT_FILENAME_EXCED_RANGE 出力ファイル名または拡張子が長過ぎま す。 295 BSERR_HANDLE_DISK_FULL ディスクがいっぱいです。 296 BSERR_INVALID_DRIVE 指定されたドライブを見つけることがで きません。 297 BSERR_IN_INVALID_DRIVE 指定された入力ファイルのドライブを見 つけることができません。 298 BSERR_OUT_INVALID_DRIVE 指定された出力ファイルのドライブを見 つけることができません。 299 BSERR_INVALID_NAME ファイル名、フォルダ名、またはボリュ ームラベルが構文上正しくありません。 BSERR_IN_INVALID_NAME 入力ファイルのファイル名、フォルダ名、 またはボリュームラベルが構文上正しく ありません。 301 BSERR_OUT_INVALID_NAME 出力ファイルのファイル名、フォルダ名、 またはボリュームラベルが構文上正しく ありません。 302 BSERR_IO_DEVICE I/Oデバイスエラーのため要求を実行で きませんでした。 303 BSERR_LOCK_VIOLATION 他のプロセスがファイルの一部分を既に ロックしているため、プロセスはそのフ ァイルにアクセスできません。 304 BSERR_IN_LOCK_VIOLATION 他のプロセスが入力ファイルの一部分を 既にロックしているため、プロセスはそ のファイルにアクセスできません。 305 BSERR_OUT_LOCK_VIOLATION 他のプロセスが出力ファイルの一部分を 既にロックしているため、プロセスはそ のファイルにアクセスできません。 286 287 300 234 8.2 エラーコード 306 BSERR_NEGATIVE_SEEK ファイルの先頭よりも前の位置にファイ ルポインタを移動しようとしました。 307 BSERR_NET_WRITE_FAULT 書込み違反がネットワーク上で発生しま した。 308 BSERR_NETWORK_ACCESS_DENIED ネットワークアクセスが拒否されまし た。 309 BSERR_IN_NETWORK_ACCESS_DENIED 入力ファイルのネットワークアクセスが 拒否されました。 310 BSERR_OUT_NETWORK_ACCESS_DENIED 出力ファイルのネットワークアクセスが 拒否されました。 311 BSERR_NETWORK_BUSY ネットワークはビジー状態です。 312 BSERR_NO_MORE_FILE ファイルはこれ以上ありません。 313 BSERR_NO_NETWORK ネットワークが存在しないか、または開 始されていません。 314 BSERR_IN_NO_NETWORK 入力ファイルのネットワークが存在しな いか、または開始されていません。 315 BSERR_OUT_NO_NETWORK 出力ファイルのネットワークが存在しな いか、または開始されていません。 316 BSERR_NO_SUCH_ALIAS 指定されたエイリアスが存在しません。 317 BSERR_IN_NO_SUCH_ALIAS 指定された入力ファイルのエイリアスが 存在しません。 318 BSERR_OUT_NO_SUCH_ALIAS 指定された出力ファイルのエイリアスが 存在しません。 319 BSERR_NO_VOLUME_LABEL ディスクにはボリュームラベルがありま せん。 320 BSERR_IN_NO_VOLUME_LABEL 入力ファイルのディスクにはボリューム ラベルがありません。 321 BSERR_OUT_NO_VOLUME_LABEL 出力ファイルのディスクにはボリューム ラベルがありません。 322 BSERR_NOT_CONNECTED 指定されたファイルのネットワーク接続 は存在しません。 BSERR_IN_NOT_CONNECTED 入力ファイルとして指定されたファイル に対するネットワーク接続は存在しませ ん。 324 BSERR_OUT_NOT_CONNECTED 出力ファイルとして指定されたファイル に対するネットワーク接続は存在しませ ん。 325 BSERR_NOT_DOS_DISK 指定されたディスクにはアクセスできま せん。 326 BSERR_IN_NOT_DOS_DISK 指定された入力ファイルのディスクには アクセスできません。 327 BSERR_OUT_NOT_DOS_DISK 指定された出力ファイルのディスクには アクセスできません。 328 BSERR_NOT_READY ドライブの準備ができていません。 329 BSERR_IN_NOT_READY 入力ファイルとして指定されたドライブ の準備ができていません。 330 BSERR_OUT_NOT_READY 出力ファイルとして指定されたドライブ の準備ができていません。 331 BSERR_NOT_SUPPORTED ネットワーク要求がサポートされていま せん。 323 235 第8章 メッセージとエラーコード BSERR_IN_NOT_SUPPORTED 入力ファイルとして指定されたファイル に対するネットワーク要求がサポートさ れていません。 333 BSERR_OUT_NOT_SUPPORTED 出力ファイルとして指定されたファイル に対するネットワーク要求がサポートさ れていません。 334 BSERR_OPEN_FAILED 指定されたデバイスまたはファイルをオ ープンできません。 335 BSERR_IN_OPEN_FAILED 入力ファイルとして指定されたデバイス またはファイルをオープンできません。 336 BSERR_OUT_OPEN_FAILED 出力ファイルとして指定されたデバイス またはファイルをオープンできません。 337 BSERR_PATH_BUSY この時点では、指定されたパスは使えま せん。 338 BSERR_IN_PATH_BUSY この時点では、指定された入力ファイル のパスは使えません。 339 BSERR_OUT_PATH_BUSY この時点では、指定された出力ファイル のパスは使えません。 340 BSERR_PATH_NOT_FOUND 指定されたパスを見つけることができま せん。 341 BSERR_IN_PATH_NOT_FOUND 指定された入力ファイルのパスを見つけ ることができません。 342 BSERR_OUT_PATH_NOT_FOUND 指定された出力ファイルのパスを見つけ ることができません。 343 BSERR_PRIVILEGE_NOT_HELD クライアントは必要な特権を保持してい ません。 344 BSERR_IN_PRIVILEGE_NOT_HELD 入力ファイルに指定されたファイルに対 して、クライアントは必要な特権を保持 していません。 345 BSERR_OUT_PRIVILEGE_NOT_HELD 出力ファイルに指定されたファイルに対 して、クライアントは必要な特権を保持 していません。 346 BSERR_READ_FAULT システムは指定されたデバイスから読み 取ることができません。 347 BSERR_REM_NET_LIST リモートコンピュータが利用できませ ん。 348 BSERR_REQ_NOT_ACCEP ネットワーク要求が受け入れられません でした。 349 BSERR_SECTOR_NOT_FOUND ドライブは、要求されたセクタを見つけ ることができません。 350 BSERR_RD_SECTOR_NOT_FOUND ドライブは、読込み要求されたセクタを 見つけることができません。 351 BSERR_WT_SECTOR_NOT_FOUND ドライブは、書込み要求されたセクタを 見つけることができません。 352 BSERR_SEEK ドライブは、ディスク上の指定された領 域やトラックの位置を特定することがで きません。 353 BSERR_RD_SEEK 読込み処理中、ディスク上の指定された 領域やトラックの位置を特定することが できませんでした。 332 236 8.2 エラーコード 354 BSERR_WT_SEEK 書込み処理中、ディスク上の指定された 領域やトラックの位置を特定することが できませんでした。 355 BSERR_SEEK_ON_DEVICE 指定されたデバイスまたはファイルにフ ァイルポインタを設定することができま せん。 BSERR_RD_SEEK_ON_DEVICE 指定された入力ファイルのデバイスまた はファイルにファイルポインタを設定す ることができません。 357 BSERR_WT_SEEK_ON_DEVICE 指定された出力ファイルのデバイスまた はファイルにファイルポインタを設定す ることができません。 358 BSERR_SHARING_PAUSED リモートサーバは、一時停止状態、また は、開始状態です。 359 BSERR_SHARING_VIOLATION 他のプロセスがファイルを使用している ため、プロセスはそのファイルにアクセ スできません。 360 BSERR_IN_SHARING_VIOLATION 他のプロセスが入力ファイルを使用して いるため、プロセスはそのファイルにア クセスできません。 361 BSERR_OUT_SHARING_VIOLATION 他のプロセスが出力ファイルを使用して いるため、プロセスはそのファイルにア クセスできません。 362 BSERR_IN_TOO_MANY_OPEN_FILES 入力ファイルをオープンできません。 363 BSERR_OUT_TOO_MANY_OPEN_FILES 出力ファイルをオープンできません。 BSERR_UNRECOGNIZED_MEDIA ディスクメディアが認識されていませ ん。フォーマットされていない可能性が あります。 365 BSERR_IN_UNRECOGNIZED_MEDIA 入力ファイルとして指定されたディスク メディアが認識されていません。フォー マットされていない可能性があります。 366 BSERR_OUT_UNRECOGNIZED_MEDIA 出力ファイルとして指定されたディスク メディアが認識されていません。フォー マットされていない可能性があります。 367 BSERR_UNRECOGNIZED_VOLUME ボリュームは、認識されたファイルシス テムを持っていません。必要なファイル システムドライバがすべてロードされ、 ボリュームが壊れていないかどうか確認 してください。 368 BSERR_WRITE_FAULT 指定されたデバイスに書き込むことがで きません。 369 BSERR_WRITE_PROTECT メディアは書込み禁止です。 370 BSERR_ACCESS_DENIED アクセスが拒否されました。 371 BSERR_IN_ACCESS_DENIED 入力ファイルのアクセスが拒否されまし た。 372 BSERR_OUT_ACCESS_DENIED 出力ファイルのアクセスが拒否されまし た。 600 BSERR_KANJI 漢字ソートマージ処理にエラーが発生し ました。 601 BSERR_ADJUST 漢字属性取り出し処理でエラーが発生し ました。 356 364 237 第8章 メッセージとエラーコード 602 BSERR_ICONV 文字コード変換処理でエラーが発生しま した。 623 BSERR_INVALID_FRIGANA ふりがなフィールドの指定に誤りがあり ます。 8.2.2 富士通COBOLファイルに関するエラーコード 富士通COBOLファイルシステムのエラーコードは、1~4バイトで通知されます。値はすべて16進数表 現です。最終1バイトがファイルステータス値で、それ以前の値は詳細コードです。表示された値は 後ろから1バイトずつ参照してください。 富士通COBOLファイルシステムのエラーコードの詳細については、お使いの富士通COBOLのマニュアル を参照してください。 8.2.3 Btrieveファイルに関するエラーコード Btrieveファイルシステムがエラーを検出した場合、PowerSORTはBtrieveファイルシステムのエラー コードをBSRTREC構造体のsub_error_codeに設定します。 Btrieveのエラーコードの詳細については、お使いのBtrieve製品のマニュアルを参照してください。 8.2.4 ADJUSTに関するエラーコード 漢字ソートマージ機能を使用している際にADJUSTプログラムがエラーを検出した場合、PowerSORTは ADJUSTプログラムのエラー詳細コードをBSRTREC構造体のsub_error_codeに設定します。 ADJUSTプログラムのエラー詳細コード(10進数)を以下に示します。 コード 意味 100 ファイルは既にオープン済みです。 102 利用者定義情報体がありません。 103 属性辞書のオープンエラーが発生しました。 104 管理情報のオープンエラーが発生しました。 105 利用者定義情報のオープンエラーが発生しました。 106 領域不足が発生しました。 201 ファイルは既にクローズ済みです。 202 属性辞書のクローズエラーが発生しました。 203 管理情報のクローズエラーが発生しました。 204 利用者定義情報のクローズエラーが発生しました。 301 コードエラーが発生しました。 302 辞書ファイルが未オープンです。 303 属性情報がありません。 304 属性辞書のI/Oエラーが発生しました。 305 管理情報のI/Oエラーが発生しました。 306 利用者定義情報のI/Oエラーが発生しました。 8.2.5 ICONVに関するエラーコード 漢字ソートマージ機能を使用している際にICONVプログラムがエラーを検出した場合、PowerSORTは ICONVプログラムのエラー詳細コードをBSRTREC構造体のsub_error_codeに設定します。 ICONVプログラムのエラー詳細コード(10進数)を以下に示します。 238 8.2 エラーコード コード 意味 2 利用者定義コード変換表のファイルがオープンできませんでした。 7 変換元バッファ領域が小さいため変換処理を中断しました。 8 サポートしていない利用者定義コード変換表の形式が指定されました。 12 領域不足が発生しました。 22 変換元文字列の終りに、不完全なコードまたはシフトコードが現れたため 変換処理を中断しました。 42 変換元文字列の中に変換元文字コードとして存在しないコードがあった ため変換処理を中断しました。 50 利用者固有のコード変換機能で、未定義文字での復帰指示または利用者定 義コードが現れたため変換処理を中断しました。 54 利用者定義コード変換処理で、コード変換表内の変換先文字コード属性値 が正しくありません。 61 利用者定義コード変換表のアドレスが指定されていません。 8.2.6 OCX使用時のエラー詳細コード PowerSORT OCXからPowerSORTを使用した場合、ErrorCodeプロパティにPowerSORTの復帰コードが通知 され、ErrorDetailプロパティにPowerSORTのエラー詳細コードが通知されます。 PowerSORTの復帰コード(ErrorCodeプロパティ)の値により、ErrorDetailプロパティの設定値の意味 は異なるので注意が必要です。 ● エラー詳細コード(ErrorCodeプロパティが0、-1、-2のとき) ● エラー詳細コード(ErrorCodeプロパティが-3のとき) ● エラー詳細コード(ErrorCodeプロパティが-4のとき) 8.2.6.1 エラー詳細コード(ErrorCodeプロパティが0、-1、-2のとき) ErrorCodeプロパティが、0、-1または-2の場合のErrorDetailプロパティの設定値の意味は次のとお りです。 コード 2 意味 PowerSORTで使用するダイナミックリンクライブラリ(DLL)がローディン グできません。以下のような原因が考えられます。 ● 漢字ソートマージ機能使用時にADJUSTがインストールされていませ ん。 ● 富士通COBOLファイルを指定していますが、COBOLファイルシステム がインストールされていません。 ● Btrieveファイルを指定していますが、Btrieveファイルシステムが インストールされていません。 50 指定したメモリサイズが小さすぎます。 52 PowerSORTの動作に必要なメモリを確保できませんでした。 56 設定されたファイル関連情報に以下のような誤りがあります。 ● 実際の入力ファイルのレコード形式が指定されたレコード形式と異 なります。 ● 入力ファイルのファイル種別にバイナリファイルを指定しています が、バイナリファイルのファイルサイズがレコード長の倍数ではあ りません。 ● マージおよびコピー機能で、上書き指定がされています。 ● コピー機能で、降順が指定されています。 ● コピー機能で、同一キーオプション(先入力先出力(FIFO)、サプレス、 レコード集約)が指定されています。 239 第8章 メッセージとエラーコード コード 240 意味 57 排他関係にある機能を指定しました。 ● 先入力先出力(FIFO)機能、サプレス機能、レコード集約機能 ● ソート機能、マージ機能、コピー機能 59 キーフィールドの指定に誤りがあります。 ● キーフィールドがレコードの外を指しています。 ● キーフィールドで指定されたデータ形式を認識できません。 ● キーフィールドで指定されたキーの長さがサポート範囲外です。 60 集約フィールドの指定に誤りがあります。 ● 集約フィールドがレコードの外を指しています。 ● 集約フィールドで指定されたデータ形式を認識できません。 ● 集約フィールドで指定されたキーの長さがサポート範囲外です。 61 キーフィールドと集約フィールド、または集約フィールド同士が重なって います。 62 サポートされていない機能を指定しています。 63 選択フィールドに誤りがあります。 64 再編成フィールドに誤りがあります。 65 ファイルシステムの指定に誤りがあります。 66 選択フィールドが存在しないレコードが入力されました。 67 再編成フィールドが存在しないレコードが入力されました。 111 レコード長に誤りがあります。 114 マージ処理の入力ファイルが並んでいません。 115 レコード集約処理でオーバフローが発生しました。 116 可変長またはテキストレコード入力中、集約フィールドが存在しないレコ ードが入力されました。集約処理を中止し、処理は継続します。 117 テキストレコードでレコードの終りに改行文字がありません。 118 テキストレコード入力中、キーフィールドを含まないレコードが入力され ました。 200 ファイルからのレコード読込み中にエラーが発生しました。 201 ファイルへのレコード書込み中にエラーが発生しました。 202 ファイルの属性に誤りがあります。ファイル属性の取得に失敗しました。 203 一時ファイルの属性に誤りがあります。ファイル属性の取得に失敗しまし た。 204 ファイルの形式に誤りがあります。 ● 組み合わせてはいけないファイル形式を指定しました。ファイル形 式の組合せについては、入力と出力のファイル種別の組合せについ てを参照してください。 ● サポート外のファイル形式を指定しました。 205 ファイルパス名の指定に重複があります。入力ファイルと出力ファイルに 同じファイルを指定しました。 206 レコード形式に誤りがあります。 ● 固定長ファイルと可変長ファイルを混在して指定しています。 ● 入力と出力のレコード形式が異なっています。 207 レコード長に誤りがあります。 ● 可変長ファイルを指定したときは、MaxRecordLengthプロパティで指 定した長さよりファイル属性のレコード長の方が長い場合に発生し ます。 ● 固定長ファイルを指定したときは、MaxRecordLengthプロパティで指 定した長さとファイル属性の長さが異なる場合に発生します。 208 ファイルのオープンでエラーが発生しました。 8.2 エラーコード 209 プロセス内またはシステム内でオープン中のファイルが多過ぎます。また は、必要とする一時ファイルの数が多過ぎます。 210 ファイルのクローズでエラーが発生しました。 211 媒体障害、またはソフト障害によるデータ破壊が発生しました。 212 一時ファイルの容量が足りません。 213 インコアソート(メモリ内だけで行うソート)できません。 214 一時ファイルの生成ができません。指定された一時ファイルのフォルダ名 や属性に誤りがあり、一時ファイルの生成ができません。 215 入力に指定したファイルがありません。 216 入力に指定したファイルには参照許可がありません。 217 出力に指定したファイルには書込み許可がありません。 219 一時ファイルに指定したファイルには参照許可または書込み許可があり ません。 222 レコード長の省略はできません。 224 一時ファイルへの書込み中にエラーが発生しました。 225 一時ファイルからの読込み中にエラーが発生しました。 226 環境変数の設定に誤りがあります。 230 キーフィールドの内部に判別不可能なコードがあります。 231 COBOLファイルシステムでエラーが発生しました。 ● COBOLランタイムライブラリが正しくインストールされていません。 ● 富士通COBOLファイルシステムの場合、レジストリ中のセクション “Product_Directory”の設定に誤りがあります。 233 ファイルパス名が長過ぎます。 234 パスプレフィックスの構成要素にフォルダでないものがあります。 235 指定したファイル名はフォルダです。 236 出力デバイス上のスペースが足りません。 237 ファイルのサイズがプロセスの限度または最大ファイルサイズを超えま した。 238 システムコールまたはライブラリ関数でエラーが発生しました。 240 レコード比較領域が確保できなかったため、処理を中断しました。 241 レコード集約処理中に数値として認識されない値が検出されました。 242 Btrieveファイルシステムでエラーを検出しました。SubErrorCodeプロパ ティにエラー情報が設定されています。Btrieveのマニュアルなどを参照 してください。 243 COBOLファイルシステム(索引ファイル)でエラーを検出しました。 250 PowerSORTの処理に誤りがあります。 251 既に存在しているファイルを作成しようとしました。 252 指定されたデバイス名が無効です。 253 指定された入力ファイルのデバイス名が無効です。 254 指定された出力ファイルのデバイス名が無効です。 255 指定されたパス名が無効です。 256 指定された入力ファイルのパス名が無効です。 257 指定された出力ファイルのパス名が無効です。 258 指定されたデバイスを見つけることができません。 259 指定された入力ファイルのデバイスを見つけることができません。 260 指定された出力ファイルのデバイスを見つけることができません。 261 ファイル名が長過ぎます。 262 入力ファイル名が長過ぎます。 263 出力ファイル名が長過ぎます。 241 第8章 メッセージとエラーコード 242 264 フォルダまたはファイルを作成できません。 265 入力ファイルとして指定されたフォルダまたはファイルを作成できませ ん。 266 出力ファイルとして指定されたフォルダまたはファイルを作成できませ ん。 267 デバイスへの接続は以前から記憶されている接続ですが現在は接続され ていません。 268 入力ファイルのデバイスへの接続は以前から記憶されている接続ですが 現在は接続されていません。 269 出力ファイルのデバイスへの接続は以前から記憶されている接続ですが 現在は接続されていません。 270 指定されたフォルダは有効なフォルダではありません。 271 入力ファイルとして指定されたフォルダは有効なフォルダではありませ ん。 272 出力ファイルとして指定されたフォルダは有効なフォルダではありませ ん。 273 フォルダ名が無効です。 274 入力ファイルとして指定されたフォルダ名が無効です。 275 出力ファイルとして指定されたフォルダ名が無効です。 276 ディスク装置が壊れていて読み取ることができません。 277 ディスク上に充分な容量がありません。 278 ハードディスクへアクセス中にディスク操作に失敗し、再試行も失敗しま した。 279 ハードディスクへアクセス中に再キャリブレート操作に失敗し、再試行に も失敗しました。 280 ハードディスクへのアクセス中にディスクコントローラのリセットが必 要になりましたが、失敗しました。 281 ディスクは使用中か、または他のプロセスがロックしています。 282 入力ファイルとして指定されたディスクは使用中か、または他のプロセス がロックしています。 283 出力ファイルとして指定されたディスクは使用中か、または他のプロセス がロックしています。 284 拡張エラーが発生しました。 285 ファイルまたはフォルダが壊れており、読み取ることができません。 286 ファイルのボリュームが外部的に交換されており、オープンされているフ ァイルは有効でなくなりました。 287 入力ファイルとして指定されたボリュームが外部的に交換されており、オ ープンされているファイルは有効でなくなりました。 288 出力ファイルとして指定されたボリュームが外部的に交換されており、オ ープンされているファイルは有効でなくなりました。 289 指定されたファイルを見つけることができません。 290 指定された入力ファイルを見つけることができません。 291 指定された出力ファイルを見つけることができません。 292 ファイル名または拡張子が長過ぎます。 293 入力ファイル名または拡張子が長過ぎます。 294 出力ファイル名または拡張子が長過ぎます。 295 ディスクがいっぱいです。 296 指定されたドライブを見つけることができません。 297 指定された入力ファイルのドライブを見つけることができません。 298 指定された出力ファイルのドライブを見つけることができません。 8.2 エラーコード 299 ファイル名、フォルダ名、またはボリュームラベルが構文上正しくありま せん。 300 入力ファイルのファイル名、フォルダ名、またはボリュームラベルが構文 上正しくありません。 301 出力ファイルのファイル名、フォルダ名、またはボリュームラベルが構文 上正しくありません。 302 I/Oデバイスエラーのため要求を実行できませんでした。 303 他のプロセスがファイルの一部分を既にロックしているため、プロセスは そのファイルにアクセスできません。 304 他のプロセスが入力ファイルの一部分を既にロックしているため、プロセ スはそのファイルにアクセスできません。 305 他のプロセスが出力ファイルの一部分を既にロックしているため、プロセ スはそのファイルにアクセスできません。 306 ファイルの先頭よりも前の位置にファイルポインタを移動しようとしま した。 307 書込み違反がネットワーク上で発生しました。 308 ネットワークアクセスが拒否されました。 309 入力ファイルのネットワークアクセスが拒否されました。 310 出力ファイルのネットワークアクセスが拒否されました。 311 ネットワークはビジー状態です。 312 ファイルはこれ以上ありません。 313 ネットワークが存在しないか、または開始されていません。 314 入力ファイルのネットワークが存在しないか、または開始されていませ ん。 315 出力ファイルのネットワークが存在しないか、または開始されていませ ん。 316 指定されたエイリアスが存在しません。 317 指定された入力ファイルのエイリアスが存在しません。 318 指定された出力ファイルのエイリアスが存在しません。 319 ディスクにはボリュームラベルがありません。 320 入力ファイルのディスクにはボリュームラベルがありません。 321 出力ファイルのディスクにはボリュームラベルがありません。 322 指定されたファイルのネットワーク接続は存在しません。 323 入力ファイルとして指定されたファイルに対するネットワーク接続は存 在しません。 324 出力ファイルとして指定されたファイルに対するネットワーク接続は存 在しません。 325 指定されたディスクにはアクセスできません。 326 指定された入力ファイルのディスクにはアクセスできません。 327 指定された出力ファイルのディスクにはアクセスできません。 328 ドライブの準備ができていません。 329 入力ファイルとして指定されたドライブの準備ができていません。 330 出力ファイルとして指定されたドライブの準備ができていません。 331 ネットワーク要求がサポートされていません。 332 入力ファイルとして指定されたファイルに対するネットワーク要求がサ ポートされていません。 333 出力ファイルとして指定されたファイルに対するネットワーク要求がサ ポートされていません。 334 指定されたデバイスまたはファイルをオープンできません。 243 第8章 メッセージとエラーコード 244 335 入力ファイルとして指定されたデバイスまたはファイルをオープンでき ません。 336 出力ファイルとして指定されたデバイスまたはファイルをオープンでき ません。 337 この時点では、指定されたパスは使えません。 338 この時点では、指定された入力ファイルのパスは使えません。 339 この時点では、指定された出力ファイルのパスは使えません。 340 指定されたパスを見つけることができません。 341 指定された入力ファイルのパスを見つけることができません。 342 指定された出力ファイルのパスを見つけることができません。 343 クライアントは必要な特権を保持していません。 344 入力ファイルに指定されたファイルに対して、クライアントは必要な特権 を保持していません。 345 出力ファイルに指定されたファイルに対して、クライアントは必要な特権 を保持していません。 346 システムは指定されたデバイスから読み取ることができません。 347 リモートコンピュータが利用できません。 348 ネットワーク要求が受け入れられませんでした。 349 ドライブは、要求されたセクタを見つけることができません。 350 ドライブは、読込み要求されたセクタを見つけることができません。 351 ドライブは、書込み要求されたセクタを見つけることができません。 352 ドライブは、ディスク上の指定された領域やトラックの位置を特定するこ とができません。 353 読込み処理中、ディスク上の指定された領域やトラックの位置を特定する ことができませんでした。 354 書込み処理中、ディスク上の指定された領域やトラックの位置を特定する ことができませんでした。 355 指定されたデバイスまたはファイルにファイルポインタを設定すること ができません。 356 指定された入力ファイルのデバイスまたはファイルにファイルポインタ を設定することができません。 357 指定された出力ファイルのデバイスまたはファイルにファイルポインタ を設定することができません。 358 リモートサーバは、一時停止状態または開始状態です。 359 他のプロセスがファイルを使用しているため、プロセスはそのファイルに アクセスできません。 360 他のプロセスが入力ファイルを使用しているため、プロセスはそのファイ ルにアクセスできません。 361 他のプロセスが出力ファイルを使用しているため、プロセスはそのファイ ルにアクセスできません。 362 入力ファイルをオープンできません。 363 出力ファイルをオープンできません。 364 ディスクメディアが認識されていません。フォーマットされていない可能 性があります。 365 入力ファイルとして指定されたディスクメディアが認識されていません。 フォーマットされていない可能性があります。 366 出力ファイルとして指定されたディスクメディアが認識されていません。 フォーマットされていない可能性があります。 8.2 エラーコード 367 ボリュームは、認識されたファイルシステムを持っていません。必要なフ ァイルシステムドライバがすべてロードされ、ボリュームが壊れていない かどうか確認してください。 368 指定されたデバイスに書き込むことができません。 369 メディアは書込み禁止です。 370 アクセスが拒否されました。 371 入力ファイルのアクセスが拒否されました。 372 出力ファイルのアクセスが拒否されました。 600 漢字ソートマージ処理でエラーが発生しました。 601 ADJUST処理でエラーが発生しました。SubErrorCodeプロパティを参照して ください。対応するエラーコードについてはADJUSTに関するエラーコード を参照してください。 602 ICONV処理でエラーが発生しました。SubErrorCodeプロパティを参照して ください。対応するエラーコードについてはICONVに関するエラーコード を参照してください。 623 ふりがなフィールドの指定に誤りがあります。 8.2.6.2 エラー詳細コード(ErrorCodeプロパティが-3のとき) ErrorCodeプロパティが-3の場合のErrorDetailプロパティの設定値の意味は次のとおりです。 コード 意味 1 PowerSORT OLEカスタムコントロール解析処理で使用する領域の確保に失 敗しました。 2 メモリサイズが不正です。(UsableMemorySizeプロパティ) 3 一時ファイルが作成できません。または、ファイル名とフォルダ名の指定 が混在しています。(TempDirプロパティ) 4 処理指定に無効な値を指定しています。(DisposalNumberプロパティ) 5 入力ファイル名を指定してください。(InputFilesプロパティ) 6 入力ファイル形式に無効な値を指定しています。(InputFileTypeプロパテ ィ) 7 出力ファイル名を指定してください。(OutputFileプロパティ) 8 出力ファイル種別に無効な値を指定しています。(OutputFileTypeプロパ ティ) 9 キーフィールドが長過ぎます。(KeyCmdStrプロパティ) 10 再編成自己既定値が指定した長さに収まりません。(RconCmdStrプロパテ ィ) 11 富士通COBOL索引情報に誤りがあります。 (FjcobPrimeKeyプロパティ、FjcobAlternateKeyプロパティ) 12 同値キーの扱い指定と集約指定の組合せに誤りがあります。 (HandlingSameKeyプロパティ、SumCmdStrプロパティ) 13 同値キーの扱い指定に無効な値を指定しています。 (HandlingSameKeyプロパティ) 14 照合順序に無効な値を指定しています。(CollationOrderプロパティ) 15 フィールドモードに無効な値を指定しています。(FieldDefinitionプロパ ティ) 16 レコード分離文字に無効な値を指定しています。(LineDelimiterプロパテ ィ) 17 フィールド分離文字指定が長過ぎます。(FieldDelimiterプロパティ) 245 第8章 メッセージとエラーコード コード 意味 18 フィールド分離文字指定に誤りがあります。(FieldDelimiterプロパティ) 19 ファイルの上書き指定はソート処理だけ有効です。 20 一時ファイルフォルダ指定に誤りがあります。(TempDirプロパティ) 22 レコード読み飛ばし件数の指定に誤りがあります。(InputFilesSkiprecプ ロパティ) Btrieve関連情報に誤りがあります。 (BtrieveInfileOwnerName プ ロ パ テ ィ 、 BtrieveIndexKey プ ロ パ テ ィ 、 23 BtrieveFileInfoプロパティ) 以下のような原因が考えられます。 出 力 フ ァ イ ル 種 別 が Btrieve で 、 BtrieveIndexKey プ ロ パ テ ィ 、 BtrieveFileInfoプロパティの双方に情報がない場合 出力がBtrieveファイルのとき、BtrieveIndexKeyプロパティ、 BtrieveFileInfoプロパティの指定は必要です。 キー長やプリアロケーションサイズなどにshort int型で表現でき ない値が指定されている場合 Btrieve関連の指定値は、特に記述がない場合、short int型で表現 できる範囲(0~65535)です。例外として、セグメント番号はlong 型で表せる範囲(0~4294967295)まで指定できます。 24 InputDataCodeに無効な値を指定しています。(InputDataCodeプロパティ) 25 AlternateModeに無効な値を指定しています。(AlternateModeプロパティ) 26 テキストファイルのときはInputDataCodeにEBCDICを選択できません。 (InputDataCodeプロパティ、InputFileTypeプロパティ) 8.2.6.3 エラー詳細コード(ErrorCodeプロパティが-4のとき) ErrorCodeプロパティが-4のときは、PowerSORT OCXのエラーです。 本エラーが発生した場合は、ErrorDetailプロパティの設定値を当社サポート員または販売元に通知 し、調査を依頼してください。 246 付録A 使用例 A.1 bsortコマンドの使用例 代表的な機能を使ったbsortコマンドの使用例を説明します。 ● ソート処理の例 ● マージ処理の例 ● コピー処理の例 ● レコード選択機能を使った例 ● レコード再編成機能を使った例 ● ● ● ● ● ● レコード集約機能を使った例 サプレス機能を使った例 先入力先出力(FIFO)機能を使った例 Btrieveファイルをソートする例 テキストファイルをソートする例 漢字ソートマージ機能(基本方式)を使った例 ● 漢字ソートマージ機能(国語辞典方式)を使った例 ● Micro Focus COBOLファイルシステムのファイルをソートする例 ● 出力ファイル切換え機能を使った例 例1 ソート処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイル bsortoutに出力します。キーフィールドは、レコードの先頭から10バイトのASCIIコードのフィール ドを昇順に並べる指定です。 bsort –s -z100 -0.10asca -o bsortout bsortin 例2 マージ処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、フ ァイルbsortoutに出力します。ファイルbsortin1とbsortin2は、それぞれレコードの先頭から10バイ トのASCIIコードのフィールドを昇順にソートしたファイルです。 bsort –m -z100 -0.10asca -o bsortout bsortin1 bsortin2 例3 コピー処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードを、富士通COBOLの順編成ファ イルbsortoutにコピーします。 bsort –c -z100 -Zf –Fcobseq,dos -o bsortout bsortin 例4 レコード選択機能を使った例 レコード長が100バイトのバイナリ固定長ファイルbsortin1と富士通COBOLの順編成ファイル bsortin2のレコードをマージして、富士通COBOLの順編成ファイルbsortoutに出力します。入力ファ イルは、20バイトめから4バイトの固定小数点2進数のフィールドが昇順にソートされているとします。 さらに、マージの際、30バイトめから4バイトの固定小数点2進数の値が30以上40未満のレコードだけ を処理の対象とします。 bsort -m -z100 -Zf -19.4fbia –p29.4fbi.ge.d30,29.4fbi.lt.d40 –Fcobseq,dos,cobseq -o bsortout bsortin1 bsortin2 例5 レコード再編成機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 付録A 使用例 力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール ドを降順に並べる指定です。さらに、ソート処理と同時にレコードを再編成します。再編成は、レコ ードの左端に入力レコードの10バイトめから20バイトを、その右に外部10進数の形式で10バイトのフ ィールドを置き、その値に0を設定するという指定です。 ソート処理と再編成処理を同時に実行する場合のコマンドの指定では、キーフィールドは再編成後の 値を指定します。 bsort –s -z100 -0.20ascr –e9.20,d0.10zdl -o bsortout bsortin 例6 レコード集約機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、50 バイトめから8バイトの内部10進数のフィールドを加算してレコードを1つに集約します。 bsort –s -z100 -9.20ascr –g49.8pdl -o bsortout bsortin 例7 サプレス機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、任意 の1つのレコードを残して他を削除します。 bsort –su -z100 –9.20ascr –o bsortout bsortin 例8 先入力先出力(FIFO)機能を使った例 レコード長100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力 します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィールド を降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、入力フ ァイルに格納されていた順序で出力します。 bsort -sf -z100 –9.20ascr -o bsortout bsortin 例9 Btrieveファイルをソートする例 レコード長が100バイトのBtrieveファイルシステムの固定長ファイルbsortinのレコードをソートし て、富士通COBOLの順編成(固定長)ファイルbsortoutに出力します。キーフィールドの指定は、レコ ードの先頭から20バイトの文字のフィールドを昇順に並べる指定です。 bsort -s -z100 -Zf –0.20asca -Fcobseq,btrv -o bsortout bsortin 例10 テキストファイルをソートする例 最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイル bsortoutに出力します。キーフィールドの指定は、レコード分離文字コロン( : )で区切られた第3 番めのフィールドの先頭から2バイト(浮動フィールド指定)のASCIIコードのフィールドを昇順に並 べる指定です。 bsort –s -z100 -2.2asca -Tflt -t: -o bsortout bsortin 例11 漢字ソートマージ機能(基本方式)を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトの漢字(シフトJISコード) のフィールドを総画数順、音読み順の昇順に並べる指定です。 bsort -s -z100 –9.20sjiam -M stdSO -o bsortout bsortin 例12 漢字ソートマージ機能(国語辞典方式)を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトの漢字フィールドに対する ふりがなフィールドが、レコードの50バイトめから10バイトにシフトJISコードで記述されており、 これを国語辞典の並びで昇順に並べる指定です。 248 A.2 bsortexコマンドの使用例 bsort -s -z100 -9.20sjiam -M dic49.10sji -o bsortout bsortin 例13 Micro Focus COBOLファイルシステムのファイルをソートする例 レコード長が100バイトのMicro Focus COBOLファイルシステムの索引ファイルbsortinのレコードを ソートして、Micro Focus COBOLファイルシステムの順ファイルbsortoutに出力します。キーフィー ルドの指定は、第1キーとしてレコードの先頭から10バイトのASCIIコードのフィールドを昇順、第2 キーとしてレコードの50バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsort -s -z100 -Zf –0.10asca49.4asca -Fmfcseq,mfcidx -o bsortout bsortin 例14 出力ファイル切換え機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートしてファイルbsortout1に出 力します。ファイルbsortout1がファイルシステムの許容量を超えたときにファイルbsortout2に残り のレコードを出力します。キーフィールドの指定は、レコードの先頭から10バイトのASCIIコードの フィールドを昇順に並べる指定です。 bsort -s –z100 -0.10asca -o bsortout1 -o bsortout2 bsortin A.2 bsortexコマンドの使用例 代表的な機能を使ったbsortexコマンドの使用例を説明します。 ● ソート処理の例 ● マージ処理の例 ● ● ● ● ● ● コピー処理の例 レコード選択機能を使った例 レコード再編成機能を使った例 レコード集約機能を使った例 サプレス機能を使った例 先入力先出力(FIFO)機能を使った例 ● ● ● ● ● ● Btrieveファイルをソートする例 テキストファイルをソートする例 漢字ソートマージ機能(基本方式)を使った例 漢字ソートマージ機能(国語辞典方式)を使った例 Micro Focus COBOLファイルシステムのファイルをソートする例 ファイルの分割出力機能を使った例 ● 条件別ファイル出力機能を使った例(その1) ● 条件別ファイル出力機能を使った例(その2) 例1 ソート処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイル bsortoutに出力します。キーフィールドは、レコードの先頭から10バイトのASCIIコードのフィール ドを昇順に並べる指定です。 bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout 例2 マージ処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、フ ァイルbsortoutに出力します。ファイルbsortin1とbsortin2は、それぞれレコードの先頭から10バイ トのASCIIコードのフィールドを昇順にソートしたファイルです。 bsortex -merge key=0.10asca -input reclen=100 file=bsortin1,bsortin2 -output file=bsortout 例3 コピー処理の例 レコード長が100バイトのシステム標準のファイルbsortinのレコードを、富士通COBOLの順編成ファ 249 付録A 使用例 イルbsortoutにコピーします。 bsortex -copy -record recform=fix -input reclen=100 file=bsortin filesys=dos –output file=bsortout filesys=cobseq 例4 レコード選択機能を使った例 レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、富 士通COBOLの順編成ファイルbsortoutに出力します。入力ファイルは、20バイトめから4バイトの固定 小数点2進数のフィールドが昇順にソートされているとします。さらに、マージの際、30バイトめか ら4バイトの固定小数点2進数の値が30以上40未満のレコードだけを処理の対象とします。 bsortex -merge key=19.4fbia -record recform=fix -input reclen=100 file= bsortin1,bsortin2 include=29.4fbi.ge.d30.and.29.4fbi.lt.d40 -output file=bsortout filesys=cobseq 例5 レコード再編成機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール ドを降順に並べる指定です。さらに、ソート処理と同時にレコードを再編成します。再編成は、レコ ードの左端に入力レコードの10バイトめから20バイトを、その右に外部10進数の形式で10バイトのフ ィールドを置き、その値に0を設定します。 ソート処理と入力再編成処理を同時に実行する場合のコマンドの指定では、キーフィールドは入力再 編成後の値を指定します。 bsortex -sort key=0.20ascr -input reclen=100 file=bsortin reconst=9.20,d0.10zdl -output file=bsortout 例6 レコード集約機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、集約 フィールドで指定した50バイトめから8バイトの内部10進数のフィールドを加算して、最初に入力し たレコードに集約します。 bsortex -sort key=9.20ascr -input reclen=100 file=bsortin -summary field=49.8pdl first -output file=bsortout 例7 サプレス機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、任意 の1つのレコードを残して他を削除します。 bsortex -sort key=9.20ascr -input reclen=100 file=bsortin -summary suppress –output file=bsortout 例8 先入力先出力(FIFO)機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトのASCIIコードのフィール ドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、入力 ファイルに格納されていた順序で出力します。 bsortex -sort key=9.20ascr -input reclen=100 file=bsortin -output file=bsortout –option fifo 例9 Btrieveファイルをソートする例 レコード長が100バイトのBtrieveファイルシステムの固定長ファイルbsortinのレコードをソートし て、富士通COBOLの順編成(固定長)ファイルbsortoutに出力します。キーフィールドの指定は、レコ ードの先頭から10バイトの文字のフィールドを昇順に並べる指定です。 250 A.2 bsortexコマンドの使用例 bsortex -sort key=0.10asca -record recform=fix -input reclen=100 file=bsortin filesys=btrv -output file=bsortout filesys=cobseq 例10 テキストファイルをソートする例 最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイル bsortoutに出力します。キーフィールドの指定は、レコード分離文字コロン( : )で区切られた第2 番めのフィールドの先頭から2バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsortex -sort key=1.2asca -record recform=txtflt fldsep=: -input reclen=100 file=bsortin -output file=bsortout 例11 漢字ソートマージ機能(基本方式)を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトの漢字(シフトJISコード) フィールドを総画数順、音読み順の昇順に並べる指定です。 bsortex -sort key=9.20sjiam jef=stdSO -input reclen=100 file=bsortin -output file=bsortout 例12 漢字ソートマージ機能(国語辞典方式)を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出 力します。キーフィールドの指定は、レコードの10バイトめから20バイトの漢字フィールドに対する ふりがなフィールドが、レコードの50バイトめから10バイトにシフトJISコードで記述されており、 これを国語辞典の並びで昇順に並べる指定です。 bsortex -sort key=9.20sjiam jef=dic49.10asc -input reclen=100 file=bsortin -output file=bsortout 例13 Micro Focus COBOLファイルシステムのファイルをソートする例 レコード長が100バイトのMicro Focus COBOLファイルシステムの索引ファイルbsortinのレコードを ソートして、Micro Focus COBOLファイルシステムの順ファイルbsortoutに出力します。キーフィー ルドの指定は、第1キーとしてレコードの先頭から10バイトのASCIIコードのフィールドを昇順、第2 キーとしてレコードの50バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsortex -sort key=0.10asca,49.4asca -record recform=fix -input reclen=100 file=bsortin filesys= mfcidx -output file=bsortout filesys= mfcseq 例14 ファイルの分割出力機能を使った例 レコード長が100バイトのファイルbsortinのレコードをソートして、ファイルbsortout1とbsortout2 に出力します。出力の際、ファイルサイズの上限を1GBにします。キーフィールドの指定は、レコー ドの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1,bsortout2 maxfilesize=1G 例15 条件別ファイル出力機能を使った例(その1) レコード長が100バイトのファイルbsortinのレコードをソートして、ファイルbsortout1とbsortout2 に出力します。出力の際、50バイトめから4バイトの内部10進数のフィールドが100以上のレコードを bsortout1に出力し、80バイトめから8バイトの外部10進数のフィールドが50未満のレコードを bsortout2に出力します。キーフィールドの指定は、レコードの先頭から10バイトのASCIIコードのフ ィールドを昇順に並べる指定です。 bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1 include=49.4pdl.ge.d100 -output file=bsortout2 include=79.8zdl.lt.d50 例16 条件別ファイル出力機能を使った例(その2) レコード長が100バイトのファイルbsortinのレコードをソートして、ファイルbsortout1、bsortout2 およびbsortout3に出力します。出力の際、50バイトめから4バイトの内部10進数のフィールドが100 251 付録A 使用例 以上のレコードをbsortout1に出力し、bsortout1に出力されなかったレコードの内80バイトめから8 バイトの外部10進数のフィールドが50未満のレコードをbsortout2 に出力し、bsortout1にも bsortout2にも出力されなかったレコードをbsortout3に出力します。キーフィールドの指定は、レコ ードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1 case=49.4pdl.ge.d100 -output file=bsortout2 case=79.8zdl.lt.d50 -output file=bsortout3 case=other A.3 PowerSORT OCXの使用例 Visual Basicを使用したPowerSORT OCXの使用例を説明します。 A.3.1 ソート処理(バイナリファイル)の例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル”c:\sortin"を、レコー ドの先頭から10バイトの外部10進数をキーフィールドとして昇順に並べ、その結果をバイナリファイ ル"c:\sortout"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'キーフィールドとしてレコードの先頭から10バイトの外部10進数を昇順で '並べるように指定します。 PowerSORT1.KeyCmdStr = "0.10zdla" 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.2 ソート処理(テキストファイル)の例 次のプログラムは、既に存在する最大レコード長120バイトのテキストファイル"c:\sortin.txt"を、 レコードの20バイトめから10バイトのASCIIコードをキーフィールドとして昇順に並べ、その結果を 252 A.3 PowerSORT OCXの使用例 テキストファイル"c:\sortout.txt"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'フィールドはカラム位置で指定します。 PowerSORT1.FieldDefinition = 1 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\sortin.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\sortout.txt '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 'キーフィールドとしてレコードの20バイトめから10バイトのASCIIコードを ' 昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "19.10asca" '最大レコード長は120バイトです。 PowerSORT1.MaxRecordLength = 120 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.3 マージ処理(バイナリファイル)の例 次のプログラムは、既にレコードの先頭から10バイトの外部10進数をキーフィールドとして昇順に並 べられているレコード長100バイトのバイナリファイル"c:\mergein1"と"c:\mergein2"をマージし、 その結果をバイナリファイル"c:\mergeout"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'マージ処理を指定します。 PowerSORT1.DisposalNumber = 1 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\mergein1 c:\mergein2" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\mergeout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 253 付録A 使用例 '既にキーフィールドとしてレコードの先頭から10バイトの外部10進数が '昇順で並べられています。 PowerSORT1.KeyCmdStr = "0.10zdla" 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.4 マージ処理(テキストファイル)の例 次のプログラムは、既にレコードの20バイトめから10バイトのASCIIコードをキーフィールドとして 昇順に並べられている最大レコード長120バイトのテキストファイル"c:\mergein1.txt"と "c:\mergein2.txt"をマージし、その結果をテキストファイル"c:\mergeout.txt"に出力するコードの 記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'マージ処理を指定します。 PowerSORT1.DisposalNumber = 1 'フィールドはカラム位置で指定します。 PowerSORT1.FieldDefinition = 1 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\mergein1.txt c:\mergein2.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\mergeout.txt" '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 '既にキーフィールドとしてレコードの20バイトめから10バイトの 'ASCIIコードが昇順で並べられています。 PowerSORT1.KeyCmdStr = "19.10asca" '最大レコード長は120バイトです。 PowerSORT1.MaxRecordLength = 120 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub 254 A.3 PowerSORT OCXの使用例 A.3.5 コピー処理(バイナリファイル)の例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\copyin"を、バイナリ ファイル"c:\copyout"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'コピー処理を指定します。 PowerSORT1.DisposalNumber = 2 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\copyin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\copyout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.6 コピー処理(テキストファイル)の例 次のプログラムは、既に存在する最大レコード長120バイトのテキストファイル"c:\copyin.txt"を、 テキストファイル"c:\copyout.txt"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'コピー処理を指定します。 PowerSORT1.DisposalNumber = 2 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\copyin.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\copyout.txt" '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 '最大レコード長は120バイトです。 PowerSORT1.MaxRecordLength = 120 'PowerSORTのDLLを呼出し実行します。 255 付録A 使用例 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.7 レコード選択機能を使った例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\sortin"を、10バイト めから4バイトの方が30バイトめから4バイトより大きいレコードの場合のみを選択し、バイナリファ イル"c:\sortout"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 '選択フィールドとしてレコードの10バイトめから4バイトの方が30バイトめから '4バイトより大きいレコードが選択されるように指定します。 PowerSORT1.SelCmdStr = "9.4asc.gt.29.4asc" '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.8 レコード再編成機能を使った例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\sortin"を、レコード の20バイトめから10バイト、30バイトから10バイト、先頭から10バイト、40バイトから10バイトの順 に再編成し、バイナリファイル"c:\sortout"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 256 A.3 PowerSORT OCXの使用例 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 '再編成フィールドとしてレコードの20バイトめから10バイト、30バイトめから '10バイト、先頭から10バイト、40バイトめから10バイトの順に再編成するよう 'に指定します。 PowerSORT1.RconCmdStr = "19.10 29.10 0.10 39.10" '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.9 レコード集約機能を使った例 次のプログラムは、既に存在するレコード長15バイトのテキストファイル"c:\sortin.txt"を、レコ ードの9バイトめから4バイトをキーフィールドとしてASCIIコードの昇順に並べます。同値のキーフ ィールドを持つレコードが複数存在した場合、4バイトめから4バイトのASCIIコードを集約し、その 結果をテキストファイル"c:\sortout.txt"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'フィールドはカラム位置で指定します。 PowerSORT1.FieldDefinition = 1 'キーフィールドとしてレコードの9バイトめから4バイトのASCIIコードを '昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "8.4asca" '集約フィールドとしてレコードの4バイトめから4バイトのASCIIコードを集約 'するように指定します。 PowerSORT1.SumCmdStr = "3.4asc" '指定したキーフィールドが同じ内容だった場合、レコード集約機能を用いて、 '集約フィールドを加算します。 PowerSORT1.HandlingSameKey = 3 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\sortin.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 257 付録A 使用例 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\sortout.txt" '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 '最大レコード長は15バイトです。 PowerSORT1.MaxRecordLength = 15 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.10 レコード選択機能、レコード再編成機能、レコード集約機能を組み合わ せた例 次のプログラムは、既に存在する最大レコード長15バイトのテキストファイル"c:\sortin.txt"を、 レコード選択、レコード再編成、レコード集約の中から1つを選んで実行し、テキストファイル "c:\sortout.txt"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'フィールドはカラム位置で指定します。 PowerSORT1.FieldDefinition = 1 'レコード選択をチェックした場合。 If Option1.Value = True Then '選択フィールドとしてレコードの先頭から3バイトが文字列'DDD'以外の 'レコードを選択するように指定します。 PowerSORT1.SelCmdStr = "0.3asc.ne.'DDD'" End If 'レコード再編成をチェックした場合。 If Option2.Value = True Then '再編成フィールドとしてレコードの9バイトめから4バイト、3バイトめから '5バイト、先頭から3バイトの順に再編成します。 PowerSORT1.RconCmdStr = "8.4 2.5 0.3" End If 'レコード集約をチェックした場合。 If Option3.Value = True Then 'キーフィールドとしてレコードの9バイトめから4バイトを指定します。 PowerSORT1.KeyCmdStr = "8.4asca" '集約キーのフィールドとしてレコードの4バイトめから4バイトのASCII 'コードを集約するように指定します。 PowerSORT1.SumCmdStr = "3.4asc" '指定したキーフィールドが同じ内容だった場合、レコード集約機能を用いて、 '集約フィールドを加算するように指定します。 PowerSORT1.HandlingSameKey = 3 258 A.3 PowerSORT OCXの使用例 End If '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\sortin.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\sortout.txt" '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 '最大レコード長は15バイトです。 PowerSORT1.MaxRecordLength = 15 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.11 サプレス機能を使った例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\sortin"を、レコード の20バイトめから4バイトの外部10進数をキーフィールドとして昇順に並べます。同値のキーフィー ルドを持つレコードが複数あった場合、1つのレコードのみ残して他のレコードを削除し、その結果 をバイナリファイル"c:\sortout"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'キーフィールドとしてレコードの20バイトめから4バイトの外部10進数を '昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "19.4zdla" '指定したキーフィールドが同じ内容だった場合、1つのレコードのみ残して '他のレコードを削除するように指定します。 PowerSORT1.HandlingSameKey = 2 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 259 付録A 使用例 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.12 FIFO機能を使った例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル"c:\sortin"を、レコード の20バイトめから4バイトの外部10進数をキーフィールドとして昇順に並べます。同値のキーフィー ルドを持つレコードが複数あった場合、先に入力したレコードを先に出力し、その結果をバイナリフ ァイル"c:\sortout"に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'キーフィールドとしてレコードの20バイトめから4バイトの外部10進数を '昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "19.4zdla" '指定したキーフィールドが同じ内容だった場合、先に入力したレコードを '先に出力するように指定します。 PowerSORT1.HandlingSameKey = 1 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.13 富士通COBOL索引ファイルのソート例 次のプログラムは、既に存在する最大レコード長20バイトの富士通COBOL索引固定長ファイル "c:\sortcob"を、レコードの5バイトめから3バイトのASCIIコードをキーフィールドとして昇順に並 べ、その結果を富士通COBOL索引ファイル"c:\sortout"に出力するコードの記述例です。 260 A.4 BSORT関数の使用例 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:\sortcob" '入力ファイル種別に富士通COBOL索引固定長ファイルを指定します。 PowerSORT1.InputFileType = 4 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:\sortout" '出力ファイル種別に富士通COBOL索引ファイルを指定します。 PowerSORT1.OutputFileType = 3 'キーフィールドとしてレコードの5バイトめから3バイトのASCIIコードを '昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "4.3asca" '富士通COBOL索引ファイルの主キーとしてレコードの5バイトめから3バイトを '指定します。 PowerSORT1.FjcobPrimeKey = "D(4,3)" 'レコード長は20バイトです。 PowerSORT1.MaxRecordLength = 20 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORT で エ ラ ー を 検 出 し ま し た 。 " & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.4 BSORT関数の使用例 BSORT関数の使用例を説明します。 この例では、テキストファイルからレコードを入力し、ソート結果を出力ファイルに出力します。C 言語のライブラリ関数、システムコールに対するエラー判定は行っていないため、このような関数で エラーが発生した場合、本プログラムの動作は保証されません。 なお、この使用例は、製品のインストールフォルダのSamples\c\sample7.cとして添付されています。 /* ヘッダファイルの宣言 #include "sample.h" #include "bsrt.h" #include <memory.h> #include <malloc.h> #include <stdlib.h> */ /* 共通定義ファイルの宣言 */ /* DLLの呼び出しに使用する構造体変数の宣言 */ BSRTFUNC func; /* 関数アドレス格納領域の宣言 BSRTPRIM prim; /* 主要情報テーブル領域の宣言 BSRTREC rec; /* レコード情報領域の宣言 */ */ */ 261 付録A 使用例 BSRTFILE BSPTR_BSRTKEY BSRTOPT file; key; opt; int sample() { int rcd; HGLOBAL hHdlFile; HGLOBAL hHdlKey; char szStr[80]; /* /* /* /* /* /* /* /* ファイル情報領域の宣言 */ キー情報領域の宣言 */ オプション情報領域の宣言 */ 関数復帰値 */ 入力ファイルテーブル領域ハンドル キーテーブル領域ハンドル */ エラー詳細コード表示用領域 */ bsrtopen関数の引数情報設定・・・(1) */ /* BSRTPRIMの設定処理 ・・・(2) memset(&prim, 0x00, sizeof(BSRTPRIM)); prim.function = BS_SORT; prim.optionfunc = 0; prim.msglevel = BSMSG_LEVEL0; prim.cdmode = BSZD_AU; prim.chklevel = BSCHK_LEVEL0; prim.rec_len = 15; prim.fieldmode = BS_FLTFLD; */ */ BSRTPRIM(prim)領域の初期化 */ ソート機能 */ レコード処理指定なし */ 処理情報を出力しない */ 入力データのコード系はASCII */ BSORT関数のチェックをしない */ レコード長は15バイト */ 浮動フィールド指定 */ /* BSRTFILE(file)領域の初期化 /* BSRTFILEの設定処理 */ memset(&file, 0x00, sizeof(BSRTFILE)); /* /* /* /* /* /* /* /* */ /* 入力ファイルテーブル領域の確保・・・(3) */ hHdlFile = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, BS_FILESIZE(1)); file.inpfile_tbl = (BSPTR_BSFILE)GlobalLock((HGLOBAL)hHdlFile); file.inpfile_tbl->entry_no = 1; /* 入力ファイル数は1個 */ file.inpfile_tbl->file_addr[0] = (BSPTR_UCHAR)"sortin.txt"; /* ファイル名はsortin.txt */ /* 出力ファイル名の指定(ファイル名をポイントするアドレスを指定) */ file.outfile_addr = (BSPTR_UCHAR)"sortout.txt"; /* ファイル名はsortout.txt */ /* キーテーブル領域の確保・・・(4) */ hHdlKey = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, BS_KEYTABSIZE(1)); key = (BSPTR_BSRTKEY)GlobalLock((HGLOBAL)hHdlKey); /* キーテーブル領域の確保 */ memset(key, 0x00, BS_KEYTABSIZE(1)); /* BSRTKEY(key)領域の初期化 */ 262 /* BSRTKEYの設定処理 */ key->entry_no key->key_entry[0].key_position key->key_entry[0].key_length key->key_entry[0].key_type key->key_entry[0].key_order = = = = = /* */ BSRTRECの設定処理(初期化) 1; 0; 4; BSKEY_ASC; BS_ASCND; /* /* /* /* /* キーの個数は1個 */ 比較位置は第1フィールド */ キー長は4バイト */ データ形式はASCII文字 */ 昇順に並べる */ A.4 BSORT関数の使用例 memset(&rec, 0x00, sizeof(BSRTREC)); /* BSRTREC(rec)領域の初期化 /* BSRTOPTの設定処理(初期化) */ memset(&opt, 0x00, sizeof(BSRTOPT)); /* BSRTOPTの設定処理(初期化) */ */ /* bsrtopen関数の発行・・・(5) */ rcd = bsrtopen(BSRTVL, &func, &prim, &rec, key, &file, &opt); /* bsrtopen関数の復帰値・・・(6) */ if(rcd != 0) /* エラーの表示例 */ { wsprintf((LPSTR)szStr, "bsrtopen関数で詳細コード %d のエラーが発生しました.", rec.errdetail); MessageBox(NULL, szStr, "PowerSORT 関数呼び出しサンプル", MB_OK | MB_ICONSTOP); } if(rcd == -1) /* bsrtopen関数実行環境構築後にエラー発生 */ { bsrtclse(BSRTVL, &func, &prim, &rec); GlobalUnlock((HGLOBAL)hHdlKey); GlobalFree((HGLOBAL)hHdlKey); GlobalUnlock((HGLOBAL)hHdlFile); GlobalFree((HGLOBAL)hHdlFile); return -1; } else if(rcd == -2) /* bsrtopen関数実行環境構築前にエラー発生 */ { GlobalUnlock((HGLOBAL)hHdlKey); GlobalFree((HGLOBAL)hHdlKey); GlobalUnlock((HGLOBAL)hHdlFile); GlobalFree((HGLOBAL)hHdlFile); return -1; } /* bsrtclse関数の発行 */ rcd = bsrtclse(BSRTVL, &func, &prim, &rec); /* bsrtclse関数の復帰値・・・(7) */ if(rcd == -1 ) /* bsrtclse関数でエラー発生 { GlobalUnlock((HGLOBAL)hHdlKey); GlobalFree((HGLOBAL)hHdlKey); GlobalUnlock((HGLOBAL)hHdlFile); GlobalFree((HGLOBAL)hHdlFile); return -2; } GlobalUnlock((HGLOBAL)hHdlKey); GlobalFree((HGLOBAL)hHdlKey); */ 263 付録A 使用例 GlobalUnlock((HGLOBAL)hHdlFile); GlobalFree((HGLOBAL)hHdlFile); return 0; /* } 正常終了 */ 上記使用例の括弧付き数字は、以下の数字と対応しています。 1. 使用例で設定する情報は以下に示すものです。なお、これらの領域は必ず初期化してから 使用してください。 ― BSRTPRIM:主要情報 ― BSRTFILE:ファイル情報 ― BSRTOPT:オプション情報(初期化のみ) ― BSRTKEY:キー情報 ― BSRTREC:レコード情報(初期化のみ) ― BSRTFUNC:その他(初期化のみ) 2. テキストファイル処理時の注意を示します。 ― レコード長(prim.rec_len)には、最大レコード長を指定します。 テキストファイルの場合の最大レコード長とは、改行コードを含んだ最大行長のこ とをいいます。 ― フィールドの指定(prim.fieldmode)を必ず指定します。 ― prim.fieldmodeにBS_FLTFLD(浮動フィールド指定)を指定している場合、浮動フィ ールド指定だけに有効なフィールド分離文字(prim.fldchar_addr)が指定可能にな ります。フィールド分離文字の指定を省略すると、空白とタブがフィールド分離文 字となります。 3. ファイル数が1つなので、BS_FILESIZEマクロのパラメタ値は1です。 複数個指定する場合はその数を指定します。PowerSORTでは、複数の入力ファイルと1つの 出力ファイルを指定できます。 4. キーフィールドの数が1つなので、BS_KEYTABSIZEマクロのパラメタ値は1です。 複数個指定する場合はその数を指定します。 5. 本使用例の処理では、入出力ファイルを指定しているため、レコードの入出力処理は PowerSORTが行います。したがって、ユーザアプリケーションは、bsrtopen関数とbsrtclse 関数だけを発行します。 6. bsrtopen関数の復帰値には、0、-1および-2があります。 それぞれの値の意味は以下のとおりです。 ― 0 : bsrtopen関数は正常終了(bsrtclse関数を発行する必要があります)。 ― -1 : bsrtopen関数で実行環境構築後にエラー発生(bsrtclse関数を発行する必要 があります)。 ― -2 : bsrtopen関数で実行環境構築前にエラー発生(bsrtclse関数を発行する必要 はありません)。 7. bsrtclse関数の復帰値には、0、1および-1があります。 それぞれの値の意味は以下のとおりです。 ― 0 : bsrtclse関数は正常終了。 ― 1 : bsrtclse関数は正常に中断処理を終了。 ― -1 : bsrtclse関数で異常終了。 264 付録B 留意事項 B.1 メモリ不足への対処方法 PowerSORT実行中にメモリ不足が発生した場合、以下のように対処してください。 ● bsortコマンドのメモリサイズオプション(-y)、bsortexコマンドの実行環境オプション (-option)のmemsizeオペランドまたは環境変数BSORT_MEMSIZEを指定している場合は、 PowerSORTが使用するメモリサイズの指定を省略します。メモリサイズの指定を省略する ことにより、PowerSORTが動作条件に応じたメモリサイズを自動設定します。 ● bsortコマンドのメモリサイズオプション(-y)、bsortexコマンドの実行環境オプション (-option)のmemsizeオペランドまたは環境変数BSORT_MEMSIZEを指定している場合、メモ リサイズの指定を増加することも有効です。メモリサイズの上限値は2097151キロバイト (2ギガバイト)です。ただし、使用可能な物理メモリ量を超えないように指定します。 B.2 一時ファイルのフォルダ指定方法 環境変数BSORT_TMPDIRまたはbsortexコマンドにおける-optionオプションのtmpdirオペランドによ って一時ファイルを作成するフォルダを指定する場合は、以下の点に注意してください。 ● 存在するドライブおよびフォルダ、使用可能なドライブおよびフォルダを指定してくださ い。 ● 一時フォルダ名の指定は、最後に円記号( \ )を付けて指定してください。円記号( \ ) を付けないと誤動作の原因となります。 ● フォルダを複数指定する場合は、空白を入れずにセミコロン( ; )で区切って指定してく ださい。 [正しい例]C:\;D:\ [誤った例] C:\ ; D:\ ● 充分な空きスペースがあるフォルダを指定してください。 B.3 レコード集約機能使用時の留意事項 レコード集約機能を使用する場合は、以下の点に注意してください。 ● 集約フィールドは、レコード内に完全に含まれている必要があります。 ● 集約フィールドは、キーフィールドまたは他の集約フィールドと重ならないように指定し ます。 ● 集約フィールドの加算処理中にオーバフローが生じた場合の動作は、環境変数 BSORT_SUMOVERCONTの指定によります。 ● 小数点を含む数字を集約することはできません。 付録B 留意事項 B.4 フィールド位置の指定方法 PowerSORTは以下に示す順番で各機能を処理します。 1. 2. 3. 4. 5. 6. 7. 8. データ入力処理 入力レコード選択処理 入力レコード再編成処理 ソート処理、マージ処理およびコピー処理 レコード集約処理 出力レコード選択処理 出力レコード再編成処理 データ出力処理 したがって、入力レコード再編成処理によりフィールドの位置が変わると、以降に指定するフィール ドの位置は、入力ファイルのレコード内のフィールドの位置とは異なったものになります。 フィールドの位置は、以下の規則にしたがって指定してください。 入力選択フィールド 常に入力レコードをもとにフィールドを指定します。 入力再編成フィールド 常に入力レコードをもとにフィールドを指定します。 キーフィールド 通常は入力レコードをもとに指定しますが、入力レコード再編成機能を使用する場合は、再編成後の レコードをもとにフィールドを指定します。 集約フィールド 通常は入力レコードをもとに指定しますが、入力レコード再編成機能を使用する場合は、再編成後の レコードをもとにフィールドを指定します。 出力選択フィールド 通常は入力レコードをもとに指定しますが、入力レコード再編成機能を使用する場合は、再編成後の レコードをもとにフィールドを指定します。 出力再編成フィールド 通常は入力レコードをもとに指定しますが、入力レコード再編成機能を使用する場合は、再編成後の レコードをもとにフィールドを指定します。 266 B.5 文字/数字混在のデータの並びに関する留意事項 B.5 文字/数字混在のデータの並びに関する留意事項 文字/数字混在データをNオプションを使って並べ換える場合、数字部分の並びは値の大小だけを比較 しています。したがって、以下のようなデータでは、出力される順序が特定できません。 キーフィールドの指定例1 0.9ascaN 入力データ 出力結果のケース1 出力結果のケース2 data001 data001 data00001 data2 data00001 data1 data1 data1 data001 data00001 data2 data2 数字部の“1”、 “001”および“00001”は、値としてはどれも1であるため、data1、data001、data00001 は同じキー値であると判断します。先入力先出力(FIFO)機能オプション(fifo(-option)または-f)を 指定している場合は入力順を保って出力されますが、先入力先出力(FIFO)機能オプション (fifo(-option)または-f)の指定がない場合は上記の例のように出力順は不定になります。 数字部分の桁数も考慮して並べ換えたい場合は、以下のように指定します。 キーフィールドの指定例2 0.9ascaN0.9ascr 出力結果 入力データ data001 data1 data2 data001 data1 data00001 data00001 data2 ● 第1キー(0.9ascaN)の比較でdata001/data1/data00001とdata2の順序が決まります。第1 キーの比較で大小関係が確定したdata2については、以降の第2キーでの比較は行いません。 ● 次にdata001/data1/data00001はキーの値が等しいので、第2キー(0.9ascr)で比較します。 ● 第2キーは文字列として比較して大きい順に並べます。この例では、dataの次の文字で最 初の大小関係が決まります。したがってdata1がdata001/data00001よりも大きい値となり、 最初に出力されます。同様にdata001とdata00001ではdata001の1の部分がdata00001では0 なので、data001が大きい値と判断され、2番目に出力されます。残ったdata00001と既に 順序が決定したdata2が順に出力され、上記の出力結果が得られます。 B.6 ファイル種別に関する留意事項 ファイル種別について、以下の点にご注意ください。 ● 実際のファイル種別と異なるファイル種別を指定すると誤動作の原因となります。 ● 入力ファイルと出力ファイルでファイル種別が異なる場合も、レコード形式は入力ファイ ルと出力ファイルで同じレコード形式になります。 ● 入力ファイルがテキストファイルの場合、入力ファイル中にEOF(End Of File)のコードが 含まれると、そのEOFコード以降のデータは処理対象となりません。なお、bsortexコマン ドでは、EOF以降のデータを処理対象とすることが可能です。詳細は、入力ファイル情報 オプション(-input)のeofオペランドを参照してください。 267 付録B 留意事項 ● 入力ファイルがテキストファイルの場合、入力ファイル中にEOFコードが存在した場合は、 出力ファイルの終わりにEOFコードが付加されます。なお、bsortexコマンドでは、出力フ ァイルの終わりのEOFコードを削除することが可能です。詳細は、出力ファイル情報オプ ション(-output)のremoveeofオペランドを参照してください。 ● 入力ファイルがテキストファイルの場合、入力ファイル中にEOFコードが存在しない場合 は、出力ファイルの終わりにもEOFコードは付加されません。 ● 入力ファイルがテキストファイルの場合、EOFコードが存在する入力ファイルが複数ある 場合でも、出力ファイル1つに対して付加されるEOFコードは1つです。 ● 出力ファイルがBtrieveファイルの場合、既存のファイルに上書きすることはできません。 新規のファイル名を指定してください。 B.7 富士通COBOLファイルシステムの行順ファイルに関する 留意事項 富士通COBOLファイルシステムの行順ファイルは、PowerSORTではテキストファイルとして処理するこ とができます。富士通COBOLファイルシステムの行順ファイルを処理する場合は、以下のように指定 してください。ただし、富士通COBOLファイルシステムがオープン処理で行っているファイルの共用・ 排他などの制御は行われませんので、ファイルの指定には注意してください。 ● ファイルシステムの指定は「システムの標準ファイルシステム」とします。 指定方法については以下を参照してください。 ― bsortコマンドの場合: 入出力ファイルシステムオプション(-F) ― bsortexコマンドの場合: 入力ファイル情報オプション(-input)のfilesysオペラ ンドおよび出力ファイル情報オプション(-output)のfilesysオペランド ― BSORT関数の場合: BSRTFILE構造体のinpfsys_tblおよびoutfsys ― PowerSORT OCXの場合: InputFileTypeプロパティおよびOutputFileTypeプロパテ ィ ● 入力ファイル種別の指定は「テキストファイル固定フィールド指定」とします。 指定方法については以下を参照してください。 ― bsortコマンドの場合: テキストファイルオプション(-T) ― bsortexコマンドの場合: 入力レコード情報オプション(-record)のrecformオペラ ンド ― BSORT関数の場合: BSRTPRIM構造体のfieldmode ― PowerSORT OCXの場合: FieldDefinitionプロパティ 268 B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関係 B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関 係 PowerSORTで扱うデータ形式とVisual Basicで扱うデータ型の対応を以下に示します。 データ型 データ 形式 1996 意味 String asc Byte asc Integer fbl CC07 34F8 整数型 Long fbl CC070000 34F8FFFF 長整数型 Single ifl 0080F944 0080F9C4 単精度浮動小数点数型 Double ifl 0000000000309F40 0000000000309FC0 倍精度浮動小数点数型 Currency - C090300100000000 406FCFFFFFFFFFFF 通貨型 Date - 0000000000309F40 00000000000309FC0 日付型 Boolean - - - ブール型 Variant - - - バリアント型 データ型 3139393620 -1996 2D31393936 文字列型 - バイト型 - バイト数 値の範囲 String 文字あたり2バイト、または 半角1文字あたり1バイト 0 ~ 約65,500バイト Byte 1バイト 0 ~ 255 Integer 2バイト -32,768 ~ 32,767 Long 4バイト -2,147,483,648 ~ 2,147,483,647 Single 4バイト -3.402823E38 ~ -1.401298E-45 (負の値) Double 8バイト 1.401298E-45 ~ 3.402823E38 (正の値) -1.79769313486231E308 -4.94065645841247E-324 (負の値) ~ 4.94065645841247E-324 1.79769313486231E308 (正の値) ~ ~ Currency 8バイト -922,337,203,685,477.5808 922,337,203,685,477.5807 Date 8バイト 西暦100年1月1日 ~ 西暦9999年12月31日 Boolean 2バイト True または False Variant 16バイト、文字列の場合は1 文字あたり1バイト データ型:Visual Basic データ形式:PowerSORT ――――― B.9 PowerSORT VBXからの移行方法 PowerSORT OCXのプロパティは、PowerSORTカスタムコントロール(以降、PowerSORT VBX)のプロパテ ィといくつかの違いがあります。以下に変更点と対応について説明します。 ● PowerSORT OCXで削除されたプロパティの一覧 ― CompareAsNumberプロパティ(CollationOrderプロパティで指定) ― ContainWideCharプロパティ(CollationOrderプロパティで指定) ― Actionプロパティ(Actionメソッドで指定) 269 付録B 留意事項 ● 追加されたプロパティの一覧 ― CollationOrderプロパティ ― DisposalNumberプロパティ ● 追加されたメソッドの一覧 ― Actionメソッド ● 値の指定方法が変更されたプロパティの一覧 ― FieldDefinitionプロパティ ― UsableMemorySizeプロパティ 追加されたプロパティについて ● PowerSORT VBXではCompareAsNumberプロパティとContainWideCharプロパティは別々に指 定するものでしたが、実際は、同時に有効にできないため、CollationOrderプロパティに まとめました。CollationOrderプロパティと各値の指定については、CollationOrderプロ パティの説明を参照してください。 ● PowerSORT VBXでは、Actionプロパティによって、PowerSORTの主機能であるソート、マー ジおよびコピー処理を指定すると同時にPowerSORTを起動していましたが、PowerSORT OCX では、処理の指定にDisposalNumberプロパティ、PowerSORTの起動にActionメソッドを使 用します。 値の指定方法が変更になったプロパティについて ● FieldDefinitionプロパティは、PowerSORT VBXではBOOL型でしたが、PowerSORT OCXでは short型に変更されています。値の指定方法については、FieldDefinitionプロパティの説 明を参照してください。 ● UsableMemorySizeプロパティの単位は、PowerSORT VBXではバイト単位でしたが、キロバ イト単位に変更しました。 その他のプロパティについて その他のプロパティにも型の変更がありますが、PowerSORT VBXのプロパティ指定と同じように指定 することが可能です。 記述例 DisposalNumberプロパティ、Actionメソッドについて PowerSORTの実行部分において、PowerSORT VBXでは以下のようにしてPowerSORTを実行しました。 PowerSORT VBXにおけるソート処理実行手順 object.Action = 0 PowerSORT OCXでは以下のようにDisposalNumberプロパティでどの処理を行うかを指定した後、 Actionメソッドを呼びます。 PowerSORT OCXにおけるソート処理実行手順 object.DisposalNumber = 0 object.Action FieldDefinitionプロパティについて PowerSORT VBXのFieldDefinitionプロパティは、設定値にFALSEまたはTRUEで指定しましたが、 PowerSORT OCXでは0または1を指定してください。 PowerSORT VBXにおける設定例 object.FieldDefinition = TRUE 270 B.9 PowerSORT VBXからの移行方法 PowerSORT OCXにおける設定例 object.FieldDefinition = 1 CollationOrderプロパティについて CollationOrderプロパティでは、PowerSORT VBXのContainWideCharプロパティを有効にする場合には 1を設定します。また、PowerSORT VBXのCompareAsNumberプロパティを有効にする場合には2を設定し ます。照合順序を指定しないときは0を設定します。その結果、PowerSORT VBXのContainWideCharプ ロパティとCompareAsNumberプロパティは同時に指定できなくなりました。 PowerSORT VBXにおける設定例 object.ContainWideChar = TRUE PowerSORT OCXにおける設定例 object.CollationOrder = 1 271 用語集 インコアソート すべての入力レコードがメモリ内に入る場合の、一時ファイルを使用せずにメモリ内だけで行うソー ト処理です。 漢字ソートマージ機能 漢字コードで表現された文字(日本語)を含むレコードを、文字の持つ属性に従って並べる機能です。 並べ方には、基本方式と国語辞典方式の2つの方式があります。 漢字フィールド 漢字ソートマージ機能で使用する、レコード内の漢字コードで表現されたフィールドです。 キーフィールド レコードの大小関係を決めるために使用するレコード中のフィールドです。 フィールドの位置、長さ、データ形式と操作方法の情報からなっています。 基本方式 漢字ソートマージ機能で実現している並べ方の1つで、文字の属性に従って並べます。 属性には、総画数、部首、音読み、訓読みおよびコードが指定できます。 固定フィールド バイト位置によって区分されるフィールドです。 フィールドの位置は全レコードで共通です。 国語辞典方式 漢字ソートマージ機能で実現している並べ方の1つで、国語辞典に採用されている読み(清音読み)を 基本とした並べ方です。 漢字コードで表現された文字に対応するふりがなのフィールドが必要となります。 コピー機能 入力ファイルを出力ファイルに複写する機能です。 入力ファイルを単純に連結する場合や、複写するレコードを選択する場合に利用できます。 再編成フィールド レコード再編成機能で使用する入力レコード中のフィールドです。 再編成フィールドは、フィールドの位置と長さの情報からなっています。 先入力先出力(FIFO)機能 同値のキーフィールドを持つレコードが複数あるファイルまたはレコード群をソートする際、先に入 力したレコードを先に出力する機能です。 ソート機能と組み合わせて使います。 サプレス機能 同値のキーフィールドを持つレコードが複数あるファイルまたはレコード群をソートまたはマージ する際、1つを残して他を削除する機能です。 ソートまたはマージ機能と組み合わせて使います。 用語集 自己規定値 レコード選択機能とレコード再編成機能で使用する10進数、16進数の定数または文字列定数です。 集約フィールド レコード集約機能で使用する、数値を加算するためのフィールドです。 集約フィールドは、フィールドの位置、長さ、データ形式の情報からなっています。 処理定義ファイル PowerSORT GUIのメニューやダイアログボックスで指定した内容を保存するファイルです。 処理定義ファイルを[ファイル]メニューの[実行]や[開く]コマンドで選択することにより、メニュー の選択やダイアログボックスでの項目設定を繰り返すことなく、実行や再利用が簡単にできるように なります。 ストリング ソート済みのレコードの集まりです。 選択フィールド レコード選択機能で使用する、処理の対象となるレコードを選択するためのフィールドです。 ソート機能 指定された1つ以上のキーフィールドにより昇順(0から9、AからZの順)、または降順(ZからA、9から0 の順)にレコードを並べ替える機能です。 通常、レコードをソートする場合、キーフィールドを指定します。 PowerSORTは、指定されたキーフィールドをもとにレコードの並べ替えを行います。 フィールド PowerSORTを使用するためのフィールドの種類には、ソートおよびマージ機能で使用するキーフィー ルドと、レコード選択機能で使用する選択フィールド、レコード再編成機能で使用する再編成フィー ルドおよびレコード集約機能で使用する集約フィールドがあります。 フィールド分離文字 テキストファイル浮動フィールド指定のときにフィールドを区分する文字列です。 省略時の値として、空白またはタブをフィールド分離文字として扱います。この他に任意の文字列を フィールド分離文字として指定することができます。ただし、レコード分離文字と同じ文字は指定で きません。 浮動フィールド フィールド分離文字によって区分されるフィールドです。 フィールドの位置を、フィールド分離文字によって区切られたフィールド番号によって指定します。 フィールド分離文字の位置によってフィールドの位置が決定されるため、レコードごとにフィールド の位置(カラム位置)が異なります。 ふりがなフィールド 漢字ソートマージ機能の国語辞典方式で使用する、漢字フィールドに対応する読みが入っているフィ ールドです。 ふりがなフィールドは、ひらがな文字およびカタカナ文字で表現します。 マージ機能 ソート済みの複数ファイルを1つのファイルに併合する(まとめる)機能です。 ソート処理と同じキーフィールドでの並びを保証します。 273 用語集 レコード選択機能 処理の対象となるレコードの選択方法を指定して、必要なレコードだけを選択する機能です。 ソート機能、マージ機能またはコピー機能と組み合わせて使います。レコード選択機能には、被比較 フィールドと比較フィールドを比較する方法、被比較フィールドと自己規定値を比較する方法があり ます。PowerSORTは、指定された2つのフィールドを比較方法に従って比較し、レコードを選択します。 レコード再編成機能 フィールドの位置を変更したり、自己規定値をレコードに埋め込む機能です。 レコードを再編成する場合は、出力レコードの左端から順番に詰めるフィールドを指定します。入力 レコードのフィールドを詰める場合はその位置と長さを、自己規定値を詰める場合はその自己規定値 を指定します。 レコード集約機能 同値のキーフィールドを持つレコードが複数あるファイルまたはレコード群をソートまたはマージ する際、集約フィールドの値を加算して1つのレコードにする機能です。 レコード分離文字 テキストファイルのときにレコードを区分する文字列です。 レコード分離文字は、CRLF(復帰改行)、CR(復帰)またはLF(改行)から選択できます。一般的な形式の テキストファイルは、CRLF(復帰改行)でレコードが区分されています。 BOM BOM(Byte Order Mark)は、Unicodeのエンディアンを指定するためにファイルの先頭に記入される特 定のコードです。 Big endian 何バイトかで整数を表す場合、上位の桁を前の方の番地に記憶する方法です。 bsrt.h BSORT関数で使用する情報が設定されているヘッダファイルです。 本ヘッダファイルは、PowerSORTインストール時に作成されるINCLUDEフォルダ内にあります。 Little endian 何バイトかで整数を表す場合、下位の桁を前の方の番地に記憶する方法です。 Unicode 世界中の文字を統一的に記述できる国際的な文字コードです。 PowerSORTでは、以下の形式をサポートしています。 ● UCS-2形式 1文字を2バイトで表現する形式です。 ● UTF-8形式 1文字を1~6バイトの可変長のバイトで表現する形式です。PowerSORTでは、1~3バイトま でをサポートしています。 274 索引 数字 10進形式2桁年号 .............................19 8086形式固定小数点2進数 .....................17 8086形式符号なし固定小数点2進数 .............17 A Actionメソッド .............................137 ADJUSTに関するエラーコード .................238 AlphaNumOnlyプロパティ .....................102 AlternateModeプロパティ ....................102 ASCIIコード .................................16 B Big endian .................................274 BOM ........................................274 BSCOL構造体 ................................162 BSFILE_BASE構造体 ..........................170 BSFILE_BTRV構造体 ..........................168 BSFILE_EXT構造体 ...........................167 BSFILE構造体 ...............................164 BSFSYS構造体 ...............................165 BSIDXKEY構造体 .............................166 BSIDX構造体 ................................166 BSKANJI構造体 ..............................161 BSKEY構造体 ................................158 bsortexコマンドオプション ...................64 bsortexコマンド記述上の注意事項 .............60 bsortexコマンドの形式 .......................60 bsortexコマンドの使用例 ....................249 BSORT関数一覧 ..............................140 BSORT関数で使用する構造体 ..................150 BSORT関数とは ..............................140 BSORT関数のエラー詳細コード(errdetail) ...227 BSORT関数の使用例 ..........................261 BSORT関数の使い方 ..........................141 bsortコマンドオプション .....................35 bsortコマンド記述上の注意事項 ...............33 bsortコマンドとbsortexコマンドの機能差につい て ........................................30 bsortコマンドの形式 .........................33 bsortコマンドの使用例 ......................247 BSRCON構造体 ...............................178 bsrt.h .....................................274 BSRTFILE構造体 .............................162 BSRTFUNC構造体 .............................180 bsrtget関数 ................................147 BSRTKEY構造体 ..............................158 bsrtmrge関数 ...............................148 BSRTOPT構造体 ..............................171 BSRTPRIM構造体 .............................150 bsrtput関数 ................................146 BSRTRCON構造体 .............................178 BSRTREC構造体 ............................. 156 BSRTSELE構造体 ............................ 174 BSRTSKIP構造体 ............................ 179 BSRTSUM構造体 ............................. 172 BSSELE構造体 .............................. 174 BSSUM構造体 ............................... 172 BtrieveFileInfoプロパティ ................. 103 BtrieveIndexKeyプロパティ ................. 104 BtrieveInfileOwnerNameプロパティ .......... 105 Btrieveファイルに関するエラーコード ....... 238 C COBOLプログラムからPowerSORTを使用する .... 138 CollationOrderプロパティ .................. 106 CompareAsUpperCaseプロパティ .............. 107 C言語プログラムからPowerSORTを使用する .... 139 D DispMessageプロパティ ..................... 108 DisposalNumberプロパティ .................. 108 E EBCDICコード ............................... 16 EnableOverwriteInputFileプロパティ ........ 109 ErrorCodeプロパティ ....................... 135 ErrorDetailプロパティ ..................... 135 F FieldDefinitionプロパティ ................. 110 FieldDelimiterプロパティ .................. 110 FjcobAlternateKeyプロパティ ............... 111 FjcobDataCompressionプロパティ ............ 113 FjcobKeyCompressionプロパティ ............. 113 FjcobPrimeKeyプロパティ ................... 114 H HandlingSameKeyプロパティ ................. 115 I ICONVに関するエラーコード ................. 238 IEEE形式浮動小数点2進数 .................... 18 IgnoreControlCodeプロパティ ............... 116 InputDataCodeプロパティ ................... 117 InputFilesSkiprecプロパティ ............... 120 InputFilesプロパティ ...................... 117 InputFileTypeプロパティ ................... 118 J JEFコード .................................. 16 K KeyCmdStrプロパティ ....................... 120 L LineDelimiterプロパティ ................... 122 Little endian ............................. 274 M MaxRecordLengthプロパティ ................. 122 MessageFileNameプロパティ ................. 123 索引 MessageLevelプロパティ .....................123 M形式浮動小数点2進数 ........................18 O OCX使用時のエラー詳細コード ................239 OCXを使用してPowerSORTを使用する ............94 OutputFileTypeプロパティ ...................125 OutputFileプロパティ .......................124 P PowerSORT OCXの使用例 ......................252 PowerSORT OCXのプロパティシート .............96 PowerSORT OLEカスタムコントロールとは .......95 PowerSORT VBXからの移行方法 ................269 PowerSORTのbsortexコマンドを使用する ........59 PowerSORTのbsortコマンドを使用する ..........32 PowerSORTの概要 ..............................1 PowerSORTの使い方 ...........................30 PowerSORTの入出力環境 .......................13 R RconCmdStrプロパティ .......................126 Reverseプロパティ ..........................128 S SelCmdStrプロパティ ........................128 SkipLeadingBlankプロパティ .................131 SubErrorCodeプロパティ .....................136 SumCmdStrプロパティ ........................131 T TempDirプロパティ ..........................133 U UCS-2形式 ...................................16 Unicode ................................16, 274 UsableMemorySizeプロパティ .................133 UTF-8形式 ...................................16 V Visual Basicのデータ型とPowerSORTのデータ形 式の関係 .................................269 あ アーギュメントファイルオプション(-a) ..35, 64 アプリケーションログへの出力メッセージ .....226 い 一時ファイルのフォルダ指定方法 .............265 インコアソート .............................272 インデックス作成方法オプション(-I) ........42 インデックス指定オプション(-X) ............55 え エラーコード ...............................227 エラーメッセージ ...........................183 お オーナーネームテーブル .....................169 オプション機能 ...............................3 オプション機能と主要機能の組合せ .............6 か 外部10進形式2桁年号 .........................19 276 外部10進数 ................................. 18 各フィールドで指定可能なデータ形式 ......... 20 環境設定 ................................... 29 環境変数 .................................... 9 漢字ソートマージオプション(-M) ........... 46 漢字ソートマージ機能 ................... 7, 272 漢字ソートマージ機能の留意事項 .............. 8 漢字フィールド ............................ 272 関数の組合せ .............................. 140 き キーフィールド ........................ 15, 272 キーフィールドオプション(-key-def) ....... 43 キーフィールドに指定可能なデータ形式 ....... 20 基本方式 ............................... 7, 272 こ 降順オプション(-r) ....................... 52 後置オーバパンチ符号付数字 ................. 20 後置別符号付数字 ........................... 19 国語辞典方式 ........................... 7, 272 固定小数点2進数 ............................ 17 固定フィールド ............................ 272 コピーオプション(-c) ..................... 52 コピーオプション(-copy) .................. 65 コピー機能 ............................. 2, 272 コピー機能を使用する場合 ............... 34, 63 さ 再編成フィールド ...................... 15, 272 再編成フィールドオプション(-e) ........... 36 再編成フィールドの自己規定値に指定可能なデー タ形式 ................................... 27 先入力先出力(FIFO)機能オプション(-f) ... 39 先入力先出力(FIFO)機能 ............... 5, 272 サプレスオプション(-u) ................... 55 サプレス機能 ........................... 4, 272 し 自己規定値 ................................ 273 システム依存形式固定小数点2進数 ............ 17 システム依存形式符号なし固定小数点2進数 .... 18 実行環境オプション(-option) .............. 79 実行後に参照するプロパティ ................ 135 実行前に設定するプロパティ ................ 102 シフトJISコード ............................ 16 集約フィールド ........................ 15, 273 集約フィールドオプション(-g) ............. 40 集約フィールドで指定可能なデータ形式 ....... 22 出力ファイルオプション(-o) ............... 47 出力ファイル情報オプション(-output) ...... 83 主要機能 .................................... 2 照合順序変更 ............................... 17 照合順序変更オプション(-x) ............... 56 使用するPowerSORTの機能と関連するBSORT関数一 覧 ...................................... 140 索引 情報メッセージ .............................182 使用例 .....................................247 処理定義ファイル ...........................273 処理定義ファイルオプション(-P) ............47 処理定義ファイルを使用する場合 ..............34 す 数字 ........................................19 数値 ........................................17 ストリング .................................273 せ 選択フィールド .........................15, 273 選択フィールドオプション(-p) ..............48 選択フィールドに指定可能なデータ形式 ........23 選択フィールド複合条件の指定方法 ...........177 前置オーバパンチ符号付数字 ..................20 前置別符号付数字 ............................19 そ ソートオプション(-s) ......................52 ソートオプション(-sort) ...................89 ソート機能 ..............................2, 273 ソート機能を使用する場合 ................33, 61 て 定義オプション(-define) ...................65 データ形式 ..................................16 テキストファイルオプション(-T) ............53 な 内部10進形式2桁年号 .........................19 内部10進数 ..................................18 に 入出力上書きオプション(-v) ................55 入出力ファイルシステムオプション(-F) ......38 入力コード系オプション(-q) ................51 入力ファイルオプション(infile) ............43 入力ファイル情報オプション(-input) ........66 入力レコード情報オプション(-record) .......88 ひ 被比較フィールドと自己規定値に指定可能なデー タ形式の組合せ ............................27 被比較フィールドと比較フィールドに指定可能な データ形式 ................................23 被比較フィールドと比較フィールドに指定可能な データ形式の組合せ ........................24 標準出力オプション(-w) ....................55 ふ ファイル種別に関する留意事項 ...............267 フィールド .............................15, 273 フィールド位置の指定方法 ...................266 フィールドとデータ形式 ..................... 15 フィールド分離文字 ........................ 273 フィールド分離文字オプション(-t) ......... 54 符号なし2進数 .............................. 17 符号なし外部10進数 ......................... 18 符号なし固定小数点2進数 .................... 17 符号なし数字 ............................... 19 符号なし内部10進数 ......................... 18 富士通COBOLファイルに関するエラーコード ... 238 富士通COBOLファイルシステムの行順ファイルに 関する留意事項 .......................... 268 浮動フィールド ............................ 273 ふりがなフィールド ........................ 273 ふりがなフィールドに含まれる特殊文字の扱い .. 8 へ ヘルプオプション(-h) ................. 42, 66 ま マージオプション(-m) ..................... 52 マージオプション(-merge) ................. 76 マージ機能 ............................. 2, 273 マージ機能を使用する場合 ............... 33, 62 め メソッド .................................. 137 メッセージ ................................ 182 メッセージとエラーコード .................. 181 メッセージファイルオプション(-G) ......... 39 メッセージレベルオプション(-l) ........... 45 メモリサイズオプション(-y) ............... 57 メモリ不足への対処方法 .................... 265 も 文字 ....................................... 16 文字/数字混在のデータの並びに関する留意事項 267 文字形式2桁年号 ............................ 17 文字コード系変換オプション(-Q) ........... 51 り 留意事項 .................................. 265 れ レコード形式オプション(-Z) ............... 57 レコード再編成機能 ..................... 3, 274 レコード集約オプション(-summary) ......... 90 レコード集約機能 ....................... 4, 274 レコード集約機能使用時の留意事項 .......... 265 レコード選択機能 ....................... 3, 274 レコード長オプション(-z) ................. 57 レコード分離文字 .......................... 274 レコード分離文字オプション(-L) ........... 45 レコード読み飛ばしオプション(-R) ......... 52 277