PowerSORT Server V6.0 ユーザーズガイド Windows B1WS-0501-02Z0(00) 2011年4月 まえがき このたびは、PowerSORT Serverをお買い上げいただきまして、誠にありがとうございます。 PowerSORT Serverは、サーバ上で行う事務処理で使用可能な高性能ソートマージ製品です。 グローバルサーバ上で培ってきた高度なソート技法をシステムに合わせて最適化し、事務処理で取り扱う少量のデータから大容量の データまで、効率よくソート処理できます。 製品の呼び名について 本書では、各製品を次のように略記しています。あらかじめご了承ください。 正式名称 略称 Microsoft® Windows Server® 2008 Foundation Microsoft® Windows Server® 2008 R2 Foundation Microsoft® Windows Server® 2008 Standard Microsoft® Windows Server® 2008 R2 Standard Microsoft® Windows Server® 2008 Standard without Hyper-V™ Microsoft® Windows Server® 2008 Enterprise Microsoft® Windows Server® 2008 R2 Enterprise Microsoft® Windows Server® 2008 Enterprise without Hyper-V™ Microsoft® Windows Server® 2008 Datacenter Microsoft® Windows Server® 2008 R2 Datacenter Microsoft® Windows Server® 2008 Datacenter without Hyper-V™ Windows Server 2008 Microsoft® Windows Server® 2003, Standard x64 Edition Microsoft® Windows Server® 2003 R2, Standard x64 Edition Microsoft® Windows Server® 2003, Enterprise x64 Edition Microsoft® Windows Server® 2003 R2, Enterprise x64 Edition Windows Server 2003 x64 Edition Microsoft® Windows Server® 2003, Standard Edition Microsoft® Windows Server® 2003 R2, Standard Edition Microsoft® Windows Server® 2003, Enterprise Edition Microsoft® Windows Server® 2003 R2, Enterprise Edition Windows Server 2003 Microsoft® Windows® 2000 Server Windows 2000 Server Microsoft® Windows® 2000 Advanced Server Windows 2000 Advanced Server PowerSORT Server PowerSORT 次の製品すべてを指す場合は、「Windows 2000」と表記しています。 ・ Windows 2000 Server ・ Windows 2000 Advanced Server 次の製品すべてを指す場合は、「Windows」と表記しています。 ・ Windows Server 2008 ・ Windows Server 2003 x64 Edition ・ Windows Server 2003 ・ Windows 2000 本書の目的 本書は、PowerSORTの使用方法について説明しています。 -i- 本書の対象読者 本書は、PowerSORTを使用する人を対象としています。 本書の構成 本書の構成と内容は、以下のとおりです。 第 1 章 リリース情報 旧版からの機能追加、障害修正、およびそれらに伴う互換に関する情報を説明しています。 第 2 章 PowerSORTの概要 PowerSORTの機能概要、PowerSORTの入出力環境およびオプション機能について説明しています。 第 3 章 PowerSORTの使い方 PowerSORTの実行方法について説明しています。 第 4 章 PowerSORTのbsortコマンドを使用する bsortコマンドの記述形式について説明しています。 第 5 章 PowerSORTのbsortexコマンドを使用する bsortexコマンドの記述形式について説明しています。 第 6 章 PowerSORT OCXからPowerSORTを使用する プロパティの仕様について説明しています。 第 7 章 COBOLプログラムからPowerSORTを使用する COBOLプログラムからPowerSORTを使用する方法を説明しています。 第 8 章 C言語プログラムからPowerSORTを使用する BSORT関数の仕様について説明しています。 第 9 章 メッセージとエラーコード bsort、bsortexの各コマンドおよびBSORT関数が出力するメッセージと、PowerSORT OCXおよびBSORT関数が返すエラー詳細コー ドについて説明しています。 付録 PowerSORTの使用例および使用時の留意事項について説明しています。 輸出管理規制について 本ドキュメントを輸出または提供する場合は、外国為替および外国貿易法および米国輸出管理関連法規等の規制をご確認の上、必 要な手続きをおとり下さい。 登録商標について 本書に記載されている登録商標を、以下に示します。 ・ Microsoft、Windows、Windows NT、Windows Server、Windows Vistaまたはその他のマイクロソフト製品の名称および製品名は、 米国 Microsoft Corporationの米国およびその他の国における商標または登録商標です。 - ii - ・ Pervasive、Pervasive Software、Pervasive SQL、Btrieve、およびPervasive Softwareロゴは、米国Pervasive Software,Inc.の米国お よびその他の国における商標または登録商標です。 ・ Micro Focusは、Micro Focus International Limited.の登録商標です。 ・ その他の会社名および製品名は、それぞれの会社の商標または登録商標です。 2011年4月 Copyright 2000-2011 FUJITSU LIMITED - iii - 目 次 第1章 リリース情報....................................................................................................................................................................1 1.1 追加機能の概要..................................................................................................................................................................................1 1.2 互換に関する情報..............................................................................................................................................................................4 1.2.1 機能追加、仕様変更に関する互換情報.....................................................................................................................................4 1.2.1.1 メッセージの変更について(その1).......................................................................................................................................4 1.2.1.2 Unicodeファイル時のBOMの読み飛ばしについて.............................................................................................................4 1.2.1.3 テキストファイル時に指定可能なデータ形式について.......................................................................................................5 1.2.1.4 テキストファイル浮動フィールド指定のキーフィールドについて.........................................................................................5 1.2.1.5 先入力先出力(FIFO)機能について....................................................................................................................................5 1.2.1.6 マージ機能について.............................................................................................................................................................6 1.2.1.7 富士通COBOLファイルシステムの可変長レコード形式について......................................................................................6 1.2.1.8 「+0」と「-0」を表現できるデータ形式について.....................................................................................................................7 1.2.1.9 メッセージの出力形式について...........................................................................................................................................7 1.2.1.10 一時ファイル容量不足時のメッセージについて................................................................................................................7 1.2.1.11 処理定義ファイルについて.................................................................................................................................................8 1.2.1.12 アプリケーションログへのメッセージ出力について............................................................................................................8 1.2.1.13 BSORT関数の定義値変更について..................................................................................................................................9 1.2.2 障害修正に関する互換情報.......................................................................................................................................................9 1.2.2.1 テキストファイル固定フィールド指定時のキーフィールドについて...................................................................................10 1.2.2.2 バイナリファイル時の選択フィールドについて...................................................................................................................10 1.2.2.3 アーギュメントファイルオプションの指定について.............................................................................................................10 1.2.2.4 テキストファイル固定フィールド指定時の集約フィールドについて...................................................................................11 1.2.2.5 テキストファイル指定時の集約フィールドについて...........................................................................................................11 1.2.2.6 bsortexコマンドのiconvオペランドについて.......................................................................................................................12 1.2.2.7 テキストファイル時のレコード集約結果(0詰め、空白詰め)について................................................................................12 1.2.2.8 bsortexコマンド使用時の再編成フィールドの自己規定値指定について.........................................................................13 1.2.2.9 テキストファイル浮動フィールド指定時のキーフィールドの操作(d、i)について...............................................................13 1.2.2.10 集約フィールド内のデータ誤りについて..........................................................................................................................13 1.2.2.11 マージ機能時のメモリ不足について................................................................................................................................14 1.2.2.12 キーフィールドにおける2桁年号データ形式について....................................................................................................14 1.2.2.13 bsortコマンド、bsortexコマンドの終了コードについて......................................................................................................14 1.2.2.14 ソート機能時の出力レコード減少について......................................................................................................................15 1.2.2.15 特定障害発生時のbsortコマンド、bsortexコマンドの終了コードについて......................................................................15 1.2.2.16 出力ファイルのレコード選択機能、またはレコード再編成機能指定時のエラーメッセージについて...........................15 1.2.2.17 テキストファイル時のレコード集約結果(0詰め、空白詰め、符号付加)について...........................................................15 1.2.2.18 テキストファイル浮動フィールド指定時のレコード集約結果について............................................................................16 1.2.2.19 テキストファイル指定時のUnicode UCS-2形式のレコード集約結果について...............................................................16 1.2.2.20 キーフィールドにおけるUnicode UCS-2形式のデータ形式について.............................................................................16 1.2.2.21 テキストファイル時のUnicode UCS-2形式のデータ形式について(その1).....................................................................17 1.2.2.22 テキストファイル時のUnicode UCS-2形式のデータ形式について(その2).....................................................................17 1.2.2.23 レコード選択機能における外部10進数のデータ形式について.....................................................................................17 1.2.2.24 選択フィールドのデータ形式が外部10進数、前置オーバパンチ符号付数字、または後置オーバパンチ符号付数字の 場合のレコード選択機能について............................................................................................................................18 1.2.2.25 メッセージの変更について(その2)...................................................................................................................................18 1.2.2.26 レコード再編成機能における「pos.END」の記述形式について......................................................................................18 1.2.2.27 出力件数が0件の時のBOM出力について......................................................................................................................19 1.2.2.28 テキストファイル時のシフトJISコードのデータ形式について...........................................................................................19 1.2.2.29 レコード全体をキーフィールドとする場合のキーフィールドの操作について.................................................................19 1.2.2.30 入力エラー発生時のメッセージについて.........................................................................................................................20 1.2.2.31 処理定義ファイルオプションについて..............................................................................................................................20 1.2.2.32 富士通COBOLのエラーコードについて..........................................................................................................................20 1.2.2.33 メッセージの変更について(その3)...................................................................................................................................21 1.2.2.34 メッセージの変更について(その4)...................................................................................................................................21 1.2.2.35 入力ファイルのコード系がUnicode系(UCS-2形式)の場合の再編成フィールドについて..............................................21 - iv - 1.2.2.36 入力ファイルのコード系がUnicode系(UCS-2形式)の場合のテキストファイル浮動フィールド指定について...............22 1.2.2.37 BSORT関数におけるキーフィールドの操作について(その1)........................................................................................22 1.2.2.38 BSORT関数におけるキーフィールドの操作について(その2)........................................................................................22 1.2.2.39 ファイルの分割出力機能について...................................................................................................................................23 1.2.2.40 キーフィールドの指定に誤りがある場合のメッセージ内の不適切な情報について.......................................................23 1.2.2.41 標準入力からのレコード入力について............................................................................................................................23 1.2.2.42 ファイルの分割出力機能(maxrecnum)について.............................................................................................................24 1.2.2.43 標準出力時におけるBOM出力について........................................................................................................................24 1.2.2.44 レコード集約機能における、集約フィールドの出力形式指定について(その1).............................................................24 1.2.2.45 標準入力時における、UnicodeファイルのBOMの読み飛ばしについて........................................................................25 1.2.2.46 マージ機能時のレコード集約結果について....................................................................................................................25 1.2.2.47 レコード集約機能における、集約フィールドの出力形式指定について(その2).............................................................25 1.2.2.48 テキストファイルCSV形式、テキストファイルTSV形式について(その1)..........................................................................26 1.2.2.49 テキストファイルCSV形式、テキストファイルTSV形式について(その2)..........................................................................26 1.3 プログラム修正一覧..........................................................................................................................................................................26 第2章 PowerSORTの概要...................................................................................................................................................... 40 2.1 主要機能...........................................................................................................................................................................................40 2.2 オプション機能..................................................................................................................................................................................40 2.3 オプション機能と主要機能の組合せ................................................................................................................................................43 2.4 漢字ソートマージ機能.......................................................................................................................................................................43 2.4.1 基本方式....................................................................................................................................................................................43 2.4.2 国語辞典方式............................................................................................................................................................................44 2.4.3 漢字ソートマージ機能の留意事項............................................................................................................................................44 2.5 環境変数...........................................................................................................................................................................................45 2.6 PowerSORTの入出力環境...............................................................................................................................................................50 2.6.1 対象となるファイル種別.............................................................................................................................................................50 2.6.2 入力と出力のファイル種別の組合せについて.........................................................................................................................51 2.7 フィールドとデータ形式.....................................................................................................................................................................51 2.7.1 フィールドの種類........................................................................................................................................................................51 2.7.2 フィールドの指定方法................................................................................................................................................................52 2.7.3 データ形式.................................................................................................................................................................................54 2.7.3.1 文字.....................................................................................................................................................................................54 2.7.3.2 数値.....................................................................................................................................................................................55 2.7.3.3 数字.....................................................................................................................................................................................57 2.7.4 各フィールドで指定可能なデータ形式.....................................................................................................................................59 2.7.4.1 キーフィールドに指定可能なデータ形式...........................................................................................................................59 2.7.4.2 集約フィールドに指定可能なデータ形式..........................................................................................................................61 2.7.4.3 選択フィールドに指定可能なデータ形式..........................................................................................................................62 2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式..............................................................................................67 2.8 環境設定...........................................................................................................................................................................................68 2.8.1 PowerSORTが使用する作業域(メモリ)の見積もり....................................................................................................................68 2.8.2 PowerSORTが使用する一時ファイル量の見積もり..................................................................................................................69 第3章 PowerSORTの使い方...................................................................................................................................................70 3.1 コマンド(bsortコマンド、bsortexコマンド)を使用する方法................................................................................................................70 3.2 OCXを使用してPowerSORTを使用する方法..................................................................................................................................70 3.3 COBOLプログラムから使用する方法...............................................................................................................................................71 3.4 C言語プログラムから使用する方法..................................................................................................................................................71 第4章 PowerSORTのbsortコマンドを使用する.........................................................................................................................72 4.1 bsortコマンドの形式..........................................................................................................................................................................72 4.1.1 ソート機能を使用する場合........................................................................................................................................................72 4.1.2 マージ機能を使用する場合.......................................................................................................................................................72 4.1.3 コピー機能を使用する場合.......................................................................................................................................................73 4.1.4 処理定義ファイルを使用する場合............................................................................................................................................73 4.2 bsortコマンドオプション.....................................................................................................................................................................73 4.2.1 アーギュメントファイルオプション(-a)........................................................................................................................................73 -v- 4.2.2 再編成フィールドオプション(-e)................................................................................................................................................74 4.2.3 入出力ファイルシステムオプション(-F).....................................................................................................................................78 4.2.4 先入力先出力(FIFO)機能オプション(-f)................................................................................................................................80 4.2.5 メッセージファイルオプション(-G).............................................................................................................................................80 4.2.6 集約フィールドオプション(-g)...................................................................................................................................................80 4.2.7 ヘルプオプション(-h)................................................................................................................................................................84 4.2.8 インデックス作成方法オプション(-I).........................................................................................................................................84 4.2.9 入力ファイルオプション(infile)..................................................................................................................................................84 4.2.10 キーフィールドオプション(-key-def)........................................................................................................................................84 4.2.11 レコード分離文字オプション(-L)............................................................................................................................................87 4.2.12 メッセージレベルオプション(-l)...............................................................................................................................................87 4.2.13 漢字ソートマージオプション(-M)............................................................................................................................................88 4.2.14 出力ファイルオプション(-o).....................................................................................................................................................90 4.2.15 処理定義ファイルオプション(-P)............................................................................................................................................90 4.2.16 選択フィールドオプション(-p).................................................................................................................................................91 4.2.17 文字コード系変換オプション(-Q)...........................................................................................................................................94 4.2.18 入力コード系オプション(-q)....................................................................................................................................................95 4.2.19 レコード読み飛ばしオプション(-R).........................................................................................................................................95 4.2.20 降順オプション(-r)...................................................................................................................................................................96 4.2.21 処理(ソート、マージ、コピー)オプション(-s、-m、-c).............................................................................................................96 4.2.22 テキストファイルオプション(-T)...............................................................................................................................................96 4.2.23 フィールド分離文字オプション(-t)..........................................................................................................................................97 4.2.24 サプレスオプション(-u)............................................................................................................................................................98 4.2.25 入出力上書きオプション(-v)...................................................................................................................................................98 4.2.26 標準出力オプション(-w).........................................................................................................................................................99 4.2.27 インデックス指定オプション(-X).............................................................................................................................................99 4.2.28 照合順序変更オプション(-x)................................................................................................................................................100 4.2.29 メモリサイズオプション(-y).....................................................................................................................................................100 4.2.30 レコード形式オプション(-Z)..................................................................................................................................................101 4.2.31 レコード長オプション(-z).......................................................................................................................................................101 第5章 PowerSORTのbsortexコマンドを使用する...................................................................................................................102 5.1 bsortexコマンドの形式.....................................................................................................................................................................102 5.1.1 ソート機能を使用する場合......................................................................................................................................................102 5.1.2 マージ機能を使用する場合.....................................................................................................................................................103 5.1.3 コピー機能を使用する場合.....................................................................................................................................................103 5.2 bsortexコマンドオプション................................................................................................................................................................104 5.2.1 アーギュメントファイルオプション(-a)......................................................................................................................................104 5.2.2 コピーオプション(-copy)..........................................................................................................................................................105 5.2.3 定義オプション(-define)..........................................................................................................................................................105 5.2.4 ヘルプオプション(-h)..............................................................................................................................................................106 5.2.5 入力ファイル情報オプション(-input)......................................................................................................................................106 5.2.5.1 reclenオペランド.................................................................................................................................................................107 5.2.5.2 fileオペランド.....................................................................................................................................................................107 5.2.5.3 filesysオペランド................................................................................................................................................................108 5.2.5.4 includeオペランド...............................................................................................................................................................109 5.2.5.5 omitオペランド...................................................................................................................................................................113 5.2.5.6 reconstオペランド...............................................................................................................................................................114 5.2.5.7 eofオペランド.....................................................................................................................................................................118 5.2.5.8 overwriteオペランド...........................................................................................................................................................118 5.2.6 マージオプション(-merge).......................................................................................................................................................119 5.2.6.1 keyオペランド.....................................................................................................................................................................119 5.2.6.2 jefオペランド......................................................................................................................................................................122 5.2.7 実行環境オプション(-option)..................................................................................................................................................123 5.2.7.1 colseqオペランド................................................................................................................................................................124 5.2.7.2 fifoオペランド.....................................................................................................................................................................124 5.2.7.3 icodeオペランド..................................................................................................................................................................124 - vi - 5.2.7.4 iconvオペランド.................................................................................................................................................................125 5.2.7.5 memsizeオペランド............................................................................................................................................................125 5.2.7.6 msgfileオペランド..............................................................................................................................................................126 5.2.7.7 msglevelオペランド............................................................................................................................................................126 5.2.7.8 tmpdirオペランド................................................................................................................................................................127 5.2.8 出力ファイル情報オプション(-output)....................................................................................................................................127 5.2.8.1 fileオペランド.....................................................................................................................................................................127 5.2.8.2 filesysオペランド................................................................................................................................................................128 5.2.8.3 maxfilesizeオペランド........................................................................................................................................................128 5.2.8.4 maxrecnumオペランド.......................................................................................................................................................129 5.2.8.5 includeオペランド ..............................................................................................................................................................129 5.2.8.6 omitオペランド...................................................................................................................................................................129 5.2.8.7 caseオペランド...................................................................................................................................................................130 5.2.8.8 reconstオペランド...............................................................................................................................................................130 5.2.8.9 idxflagオペランド...............................................................................................................................................................130 5.2.8.10 idxkeyオペランド.............................................................................................................................................................131 5.2.8.11 linedlmtオペランド...........................................................................................................................................................132 5.2.8.12 removeeofオペランド.......................................................................................................................................................132 5.2.9 入力レコード情報オプション(-record).....................................................................................................................................132 5.2.9.1 recformオペランド..............................................................................................................................................................132 5.2.9.2 fldsepオペランド.................................................................................................................................................................133 5.2.10 ソートオプション(-sort)...........................................................................................................................................................134 5.2.11 レコード集約オプション(-summary)......................................................................................................................................134 5.2.11.1 fieldオペランド.................................................................................................................................................................134 5.2.11.2 suppressオペランド...........................................................................................................................................................138 5.2.11.3 firstオペランド..................................................................................................................................................................138 5.2.11.4 lastオペランド...................................................................................................................................................................138 第6章 PowerSORT OCXからPowerSORTを使用する...........................................................................................................140 6.1 PowerSORT OLEカスタムコントロールとは....................................................................................................................................140 6.2 PowerSORT OCXのプロパティシート.............................................................................................................................................140 6.2.1 「File」プロパティページ............................................................................................................................................................140 6.2.2 「Disposal」プロパティページ....................................................................................................................................................142 6.2.3 「KeyField」プロパティページ...................................................................................................................................................142 6.2.4 「Record」プロパティページ......................................................................................................................................................143 6.2.5 「Option」プロパティページ.......................................................................................................................................................144 6.2.6 「Environment」プロパティページ.............................................................................................................................................144 6.3 実行前に設定するプロパティ.........................................................................................................................................................145 6.3.1 AlphaNumOnlyプロパティ........................................................................................................................................................145 6.3.2 AlternateModeプロパティ.........................................................................................................................................................146 6.3.3 BtrieveFileInfoプロパティ.........................................................................................................................................................147 6.3.4 BtrieveIndexKeyプロパティ......................................................................................................................................................148 6.3.5 BtrieveInfileOwnerNameプロパティ........................................................................................................................................149 6.3.6 CollationOrderプロパティ.........................................................................................................................................................149 6.3.7 CompareAsUpperCaseプロパティ............................................................................................................................................150 6.3.8 DispMessageプロパティ............................................................................................................................................................151 6.3.9 DisposalNumberプロパティ......................................................................................................................................................152 6.3.10 EnableOverwriteInputFileプロパティ.....................................................................................................................................153 6.3.11 FieldDefinitionプロパティ.......................................................................................................................................................154 6.3.12 FieldDelimiterプロパティ........................................................................................................................................................154 6.3.13 FjcobAlternateKeyプロパティ.................................................................................................................................................155 6.3.14 FjcobDataCompressionプロパティ..........................................................................................................................................157 6.3.15 FjcobKeyCompressionプロパティ..........................................................................................................................................157 6.3.16 FjcobPrimeKeyプロパティ......................................................................................................................................................158 6.3.17 HandlingSameKeyプロパティ.................................................................................................................................................159 6.3.18 IgnoreControlCodeプロパティ................................................................................................................................................160 6.3.19 InputDataCodeプロパティ.......................................................................................................................................................161 - vii - 6.3.20 InputFilesプロパティ...............................................................................................................................................................162 6.3.21 InputFileTypeプロパティ........................................................................................................................................................162 6.3.22 InputFilesSkiprecプロパティ...................................................................................................................................................164 6.3.23 KeyCmdStrプロパティ............................................................................................................................................................164 6.3.24 LineDelimiterプロパティ.........................................................................................................................................................166 6.3.25 MaxRecordLengthプロパティ.................................................................................................................................................167 6.3.26 MessageFileNameプロパティ..................................................................................................................................................167 6.3.27 MessageLevelプロパティ........................................................................................................................................................168 6.3.28 OutputFileプロパティ..............................................................................................................................................................168 6.3.29 OutputFileTypeプロパティ......................................................................................................................................................169 6.3.30 RconCmdStrプロパティ..........................................................................................................................................................170 6.3.31 Reverseプロパティ..................................................................................................................................................................172 6.3.32 SelCmdStrプロパティ..............................................................................................................................................................173 6.3.33 SkipLeadingBlankプロパティ.................................................................................................................................................175 6.3.34 SumCmdStrプロパティ............................................................................................................................................................176 6.3.35 TempDirプロパティ.................................................................................................................................................................177 6.3.36 UsableMemorySizeプロパティ................................................................................................................................................178 6.4 実行後に参照するプロパティ.........................................................................................................................................................178 6.4.1 ErrorCodeプロパティ................................................................................................................................................................178 6.4.2 ErrorDetailプロパティ...............................................................................................................................................................179 6.4.3 SubErrorCodeプロパティ..........................................................................................................................................................180 6.5 メソッド..............................................................................................................................................................................................180 6.5.1 Actionメソッド............................................................................................................................................................................180 第7章 COBOLプログラムからPowerSORTを使用する...........................................................................................................182 第8章 C言語プログラムからPowerSORTを使用する..............................................................................................................183 8.1 BSORT関数とは..............................................................................................................................................................................183 8.2 BSORT関数の使い方.....................................................................................................................................................................183 8.2.1 ソート機能を使用する場合......................................................................................................................................................184 8.2.2 マージ機能を使用する場合.....................................................................................................................................................185 8.2.3 コピー機能を使用する場合.....................................................................................................................................................186 8.3 ユーザアプリケーション開発時の留意事項...................................................................................................................................186 8.4 BSORT関数の種類.........................................................................................................................................................................186 8.4.1 bsrtopen関数.............................................................................................................................................................................186 8.4.2 bsrtclse関数..............................................................................................................................................................................188 8.4.3 bsrtput関数...............................................................................................................................................................................189 8.4.4 bsrtget関数................................................................................................................................................................................190 8.4.5 bsrtmrge関数............................................................................................................................................................................191 8.5 BSORT関数で使用する構造体......................................................................................................................................................192 8.5.1 BSRTPRIM構造体...................................................................................................................................................................192 8.5.2 BSRTREC構造体.....................................................................................................................................................................198 8.5.3 BSRTKEY構造体....................................................................................................................................................................200 8.5.4 BSKEY構造体.........................................................................................................................................................................201 8.5.5 BSKANJI構造体......................................................................................................................................................................203 8.5.6 BSCOL構造体..........................................................................................................................................................................205 8.5.7 BSRTFILE構造体....................................................................................................................................................................205 8.5.8 BSFILE構造体.........................................................................................................................................................................207 8.5.9 BSFSYS構造体........................................................................................................................................................................207 8.5.10 BSIDX構造体........................................................................................................................................................................208 8.5.11 BSIDXKEY構造体................................................................................................................................................................209 8.5.12 BSFILE_EXT構造体.............................................................................................................................................................210 8.5.13 BSFILE_BTRV構造体..........................................................................................................................................................211 8.5.14 BSFILE_BASE構造体...........................................................................................................................................................212 8.5.15 BSRTOPT構造体...................................................................................................................................................................213 8.5.16 BSRTSUM構造体..................................................................................................................................................................214 8.5.17 BSSUM構造体.......................................................................................................................................................................214 8.5.18 BSRTSELE構造体.................................................................................................................................................................217 - viii - 8.5.19 BSSELE構造体......................................................................................................................................................................218 8.5.20 BSRTRCON構造体...............................................................................................................................................................222 8.5.21 BSRCON構造体....................................................................................................................................................................222 8.5.22 BSRTSKIP構造体..................................................................................................................................................................224 8.5.23 BSRTFUNC構造体................................................................................................................................................................225 第9章 メッセージとエラーコード...............................................................................................................................................227 9.1 メッセージ........................................................................................................................................................................................227 9.1.1 情報メッセージ.........................................................................................................................................................................227 9.1.1.1 情報メッセージの説明形式...............................................................................................................................................227 9.1.1.2 情報メッセージ..................................................................................................................................................................228 9.1.2 警告メッセージ.........................................................................................................................................................................229 9.1.2.1 警告メッセージの説明形式...............................................................................................................................................229 9.1.2.2 警告メッセージ..................................................................................................................................................................229 9.1.3 エラーメッセージ.......................................................................................................................................................................233 9.1.3.1 エラーメッセージの説明形式............................................................................................................................................233 9.1.3.2 エラーメッセージ................................................................................................................................................................234 9.1.4 アプリケーションログへの出力メッセージ................................................................................................................................278 9.2 エラーコード.....................................................................................................................................................................................278 9.2.1 BSORT関数のエラー詳細コード(errdetail)............................................................................................................................279 9.2.2 富士通COBOLファイルに関するエラーコード........................................................................................................................289 9.2.3 Btrieveファイルに関するエラーコード.....................................................................................................................................289 9.2.4 ADJUSTに関するエラーコード................................................................................................................................................289 9.2.5 ICONVに関するエラーコード..................................................................................................................................................290 9.2.6 OCX使用時のエラー詳細コード.............................................................................................................................................290 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード.............................................................................................291 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード........................................................................................................297 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード........................................................................................................298 付録A 使用例........................................................................................................................................................................299 A.1 bsortコマンドの使用例....................................................................................................................................................................299 A.2 bsortexコマンドの使用例................................................................................................................................................................301 A.3 PowerSORT OCXの使用例...........................................................................................................................................................304 A.3.1 ソート処理(バイナリファイル)の例..........................................................................................................................................304 A.3.2 ソート処理(テキストファイル)の例..........................................................................................................................................305 A.3.3 マージ処理(バイナリファイル)の例........................................................................................................................................305 A.3.4 マージ処理(テキストファイル)の例........................................................................................................................................306 A.3.5 コピー処理(バイナリファイル)の例........................................................................................................................................306 A.3.6 コピー処理(テキストファイル)の例.........................................................................................................................................307 A.3.7 レコード選択機能を使った例..................................................................................................................................................307 A.3.8 レコード再編成機能を使った例..............................................................................................................................................308 A.3.9 レコード集約機能を使った例..................................................................................................................................................308 A.3.10 レコード選択機能、レコード再編成機能、レコード集約機能を組み合わせた例...............................................................309 A.3.11 サプレス機能を使った例.......................................................................................................................................................310 A.3.12 FIFO機能を使った例............................................................................................................................................................310 A.3.13 富士通COBOL索引ファイルのソート例...............................................................................................................................311 A.4 BSORT関数の使用例....................................................................................................................................................................311 付録B 留意事項.....................................................................................................................................................................315 B.1 メモリ不足への対処方法について.................................................................................................................................................315 B.2 一時ファイルのフォルダ指定方法について..................................................................................................................................315 B.3 フィールドの指定方法について.....................................................................................................................................................315 B.4 英字と数字の連結データに関する留意事項................................................................................................................................316 B.5 ASCIIコードをEBCDICコード順、EBCDICコードをASCIIコード順に並べる方法について.......................................................317 B.6 ファイル種別に関する留意事項....................................................................................................................................................318 B.7 富士通COBOLファイルシステムに関する留意事項.....................................................................................................................319 B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関係........................................................................................................320 B.9 PowerSORT VBXからの移行方法................................................................................................................................................320 - ix - 用語集...................................................................................................................................................................................323 索引......................................................................................................................................................................................326 -x- 第1章 リリース情報 ここでは、PowerSORTのリリース情報を記載します。 1.1 追加機能の概要 以前のバージョン・レベルより追加された機能について記載します。 なお、V/Lは機能追加が行われたバージョン・レベルです。 項番 V/L 機能名 内容 マニュアルの記載場所 1 V3.0L20 ファイルシステム PowerRW+でサポートするRDMファイ ルをサポートしました。 第4章 PowerSORTのbsortコマンドを使 用する ・ 4.2.3 入出力ファイルシステムオプ ション(-F) 第5章 PowerSORTのbsortexコマンドを 使用する ・ 5.2.5.3 filesysオペランド 第6章 PowerSORT OCXから PowerSORTを使用する ・ 6.3.21 InputFileTypeプロパティ ・ 6.3.29 OutputFileTypeプロパティ 第8章 C言語プログラムから PowerSORTを使用する ・ 8.5.9 BSFSYS構造体 2 V4.0L10 ファイルシステム 富士通COBOLファイルシステムの BSAMに対応しました。 第2章 PowerSORTの概要 ・ 2.5 環境変数 第4章 PowerSORTのbsortコマンドを使 用する ・ 4.2.3 入出力ファイルシステムオプ ション(-F) 第5章 PowerSORTのbsortexコマンドを 使用する ・ 5.2.5.3 filesysオペランド 第8章 C言語プログラムから PowerSORTを使用する ・ 8.5.9 BSFSYS構造体 付録B 留意事項 ・ B.7 富士通COBOLファイルシステ ムに関する留意事項 3 V4.0L10 アーギュメントファ イル機能 アーギュメントファイルと他のオプション との同時指定が可能となりました。 第4章 PowerSORTのbsortコマンドを使 用する ・ 4.2.1 アーギュメントファイルオプショ ン(-a) 第5章 PowerSORTのbsortexコマンドを 使用する -1- 項番 V/L 機能名 内容 マニュアルの記載場所 ・ 5.2.1 アーギュメントファイルオプショ ン(-a) 4 V4.0L10 レコード再編成機 能 指定した位置からレコードの終端まで を再編成することが可能となりました。 第4章 PowerSORTのbsortコマンドを使 用する ・ 4.2.2 再編成フィールドオプション (-e) 第5章 PowerSORTのbsortexコマンドを 使用する ・ 5.2.5.6 reconstオペランド 第8章 C言語プログラムから PowerSORTを使用する ・ 8.5.21 BSRCON構造体 5 6 V4.0L10 V4.0L10 レコード集約機能 レコード集約機能 オーバフローが発生した場合のレコー ド集約機能の動作を指定できるように なりました。 第2章 PowerSORTの概要 bsortexコマンドにおいて、集約フィー ルドに指定可能なデータ形式として以 下のデータ形式を追加しました。 第2章 PowerSORTの概要 ・ 2.5 環境変数 ・ 2.7.3.3 数字 ・ 2.7.4.2 集約フィールドに指定可能 ・ 符号なし数字 なデータ形式 ・ 前置別符号付数字 ・ 後置別符号付数字 ・ 前置オーバパンチ符号付数字 ・ 後置オーバパンチ符号付数字 7 V4.0L10 レコード集約機能 符号を表現できるデータ形式におい て、集約結果が "0" となった場合の符 号を "+0" としました(旧バージョンの場 合は "不定" でした)。 - 8 V4.0L10 レコード集約機能 テキストファイルの処理において、集約 フィールドの出力形式(0詰めや符号の 有無など)を統一できるようになりまし た。 第4章 PowerSORTのbsortコマンドを使 用する ・ 4.2.6 集約フィールドオプション(g) 第5章 PowerSORTのbsortexコマンドを 使用する ・ 5.2.11.1 fieldオペランド 第8章 C言語プログラムから PowerSORTを使用する ・ 8.5.17 BSSUM構造体 9 V4.0L10 照合順序変更機 能 照合順序を変更する機能をサポートし ました。 第4章 PowerSORTのbsortコマンドを使 用する ・ 4.2.28 照合順序変更オプション(x) 第5章 PowerSORTのbsortexコマンドを 使用する ・ 5.2.7.1 colseqオペランド -2- 項番 機能名 V/L 内容 マニュアルの記載場所 第8章 C言語プログラムから PowerSORTを使用する ・ 8.5.6 BSCOL構造体 10 V4.0L10 データ形式 符号なし内部10進数のデータ形式に、 符号部ありの形式を追加しました。 第2章 PowerSORTの概要 ・ 2.7.3.2 数値 ・ 2.7.4.1 キーフィールドに指定可能 なデータ形式 ・ 2.7.4.2 集約フィールドに指定可能 なデータ形式 ・ 2.7.4.3 選択フィールドに指定可能 なデータ形式 ・ 2.7.4.4 再編成フィールドの自己規 定値に指定可能なデータ形式 11 V4.0L10 データ形式 bsortコマンド、およびBSORT関数にお いて、各フィールドに指定可能なデー タ形式をbsortexコマンドと同等になるよ う拡大しました。 第2章 PowerSORTの概要 ・ 2.7.4.1 キーフィールドに指定可能 なデータ形式 ・ 2.7.4.2 集約フィールドに指定可能 なデータ形式 ・ 2.7.4.3 選択フィールドに指定可能 なデータ形式 ・ 2.7.4.4 再編成フィールドの自己規 定値に指定可能なデータ形式 12 V5.0L10 13 V6.0.0 - NetCOBOL for .NET V3.0に対応しま した。 - ファイル 浮動フィールド指定にテキストファイル CSV形式、およびテキストファイルTSV 形式を追加しました。 第2章 PowerSORTの概要 ・ 2.7.2 フィールドの指定方法 第4章 PowerSORTのbsortコマンドを使 用する ・ 4.2.22 テキストファイルオプション (-T) 第5章 PowerSORTのbsortexコマンドを 使用する ・ 5.2.9.1 recformオペランド 第8章 C言語プログラムから PowerSORTを使用する ・ 8.5.1 BSRTPRIM構造体 14 15 V6.0.0 V6.0.0 先入力先出力 (FIFO)機能 先入力先出力(FIFO)機能を環境変数 により一括して指定できるようになりま した。 第2章 PowerSORTの概要 ソート機能 マージ機能 レコード選択機 能 +0と-0を表現できるデータ形式におい て、+0と-0を同値と判断して処理できる ようになりました。 第2章 PowerSORTの概要 -3- ・ 2.5 環境変数 ・ 2.5 環境変数 項番 V/L 16 V6.0.0 機能名 メッセージ 内容 マニュアルの記載場所 PowerSORTのメッセージに、メッセー 第2章 PowerSORTの概要 ジ種別、日時、およびメッセージ番号 ・ 2.5 環境変数 を付加して出力できるようになりました。 第9章 メッセージとエラーコード ・ 9.1 メッセージ 17 V6.0.0 処理定義ファイ ル 処理定義ファイルによる実行時、メッ セージを出力できるようになりました。 第4章 PowerSORTのbsortコマンドを使 用する ・ 4.2.15 処理定義ファイルオプション (-P) 1.2 互換に関する情報 以前のバージョン・レベルから変更された互換に関する情報を記載します。 1.2.1 機能追加、仕様変更に関する互換情報 ここでは、機能追加、および仕様変更に関連した互換情報について記載します。 1.2.1.1 メッセージの変更について(その1) 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、「集約処理でオーバフローが発生したため,集約を中断しまし た.」というエラーメッセージを出力していました。 1. レコード集約機能を指定している。かつ、 2. レコード集約処理でオーバフローが発生した。 PowerSORT Server V4.0L10以降では、環境変数BSORT_SUMOVERCONTによりオーバフロー発生後のレコード集約処理の動作を 指定できるようになったため、「集約処理でオーバフローが発生しました.」に変更しました。 対処方法 ありません。 1.2.1.2 Unicodeファイル時のBOMの読み飛ばしについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、Unicodeファイルの入力開始時に無条件でBOMの長さ(注)分 のデータを読み飛ばしていました。 1. テキストファイル指定である。かつ、 2. 入力ファイルのコード系がUnicode(UCS-2形式、またはUTF-8形式)である。 PowerSORT Server V4.0L10以降では、テキストファイル指定の場合、Unicodeファイルの先頭にBOMが存在するときだけ読み飛ばす ように変更しました。また、環境変数BSORT_UNICODEBOMの指定により、BOMを読み飛ばさないようにすることも可能となりました。 注) Unicode系(UCS-2形式)の場合は2バイト、Unicode系(UTF-8形式)の場合は3バイト。 対処方法 ありません。 -4- 1.2.1.3 テキストファイル時に指定可能なデータ形式について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、キーフィールド、選択フィールド、および再編成フィー ルド(自己規定値)のデータ形式にUnicode UCS-2形式とUnicode UTF-8形式を混在して指定できました。 1. テキストファイル指定である。かつ、 2. 入力ファイルのコード系がUnicode(UCS-2形式、またはUTF-8形式)である。 PowerSORT Server V5.0L10以降では、Unicode UCS-2形式とUnicode UTF-8形式を混在して指定できないようにエラーチェックを強 化しました。この結果、以下のような指定をするとエラーとなります。 ・ テキストファイルの処理において、入力コード系がUnicode系(UCS-2形式)のとき、各フィールドのデータ形式にUnicode UTF-8形 式を指定 ・ テキストファイルの処理において、入力コード系がUnicode系(UTF-8形式)のとき、各フィールドのデータ形式にUnicode UCS-2形 式を指定 対処方法 ありません。 1.2.1.4 テキストファイル浮動フィールド指定のキーフィールドについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「キーフィールドが存在しないレコードが 入力されました.」というエラーメッセージを出力して終了していました。 1. テキストファイル浮動フィールド指定である。かつ、 2. キーフィールドが存在しないレコードが入力された。 PowerSORT Server V6.0.0以降では、テキストファイル固定フィールド指定の場合と同様に、キーフィールドの値を0x00として処理する ように変更しました。 対処方法 ありません。 1.2.1.5 先入力先出力(FIFO)機能について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、エラーメッセージを出力して終了してい ました。 1. 先入力先出力(FIFO)機能を指定している。かつ、 2. 同時にコピー機能、レコード集約機能、またはサプレス機能を指定している。 PowerSORT Server V6.0.0以降では、先入力先出力(FIFO)機能の指定を無視して動作するように変更しました。 対処方法 ありません。 -5- 1.2.1.6 マージ機能について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、同一なキーフィールドを持つレコードをレ コード入力順に並べていました。 1. マージ機能を指定している。かつ、 2. 同時に先入力先出力(FIFO)機能を指定している。 PowerSORT Server V6.0.0以降では、先入力先出力(FIFO)機能の指定を無視して動作するように変更しました。同一なキーフィール ドを持つレコードは、入力ファイルの指定順(同一ファイル内のレコードは、ファイル内の順)に出力されます。 また、以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、同一なキーフィールドを持つレコー ドの中から、レコード入力順の最初、または最後のレコードを出力していました。 1. bsortexコマンドを使用している。かつ、 2. マージ機能を指定している。かつ、 3. レコード集約機能、またはサプレス機能を指定している。かつ、 4. firstオペランド、またはlastオペランドを指定している。 PowerSORT Server V6.0.0以降では、同一なキーフィールドを持つレコードの中から、入力ファイルの指定順(同一ファイル内のレコー ドは、そのファイル内の順)の最初、または最後のレコードを出力するように変更しました。 対処方法 ありません。 参考 マージ機能では、各入力ファイルから1レコードずつ入力し、指定されたキーフィールドの順に出力ファイルへ出力していきます。また、 次のレコード入力は、出力されたレコードが属していた入力ファイルから行われます。このため、レコードの入力順は、各入力ファイル 内のレコードによって変わります。この結果、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10でマージ機能に先入 力先出力(FIFO)機能を組み合わせて指定した場合、またはマージ機能にレコード集約機能、またはサプレス機能を組み合わせて指 定し、firstオペランド、またはlastオペランドで出力するレコードを指定した場合、処理する入力ファイルによって結果が異なっていまし た。 1.2.1.7 富士通COBOLファイルシステムの可変長レコード形式について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、富士通COBOLファイルシステムによっ て、指定した最大レコード長を超える部分が切り捨てられることがありました。 1. 入力ファイルシステムが、富士通COBOLファイルシステム(順ファイル)、富士通COBOLファイルシステム(BSAM対応順ファイ ル)、または富士通COBOLファイルシステム(索引ファイル)である。かつ、 2. レコード形式が可変長レコード形式である。かつ、 3. 指定した最大レコード長より長いレコードが存在する。 PowerSORT Server V6.0.0以降では、「ファイル(※ファイル名)からのレコード入力中にエラー(miss match record-length)が発生しまし た.」というエラーメッセージを出力して終了するように変更しました。 -6- 対処方法 ありません。 富士通COBOLファイルシステム(順ファイル)、富士通COBOLファイルシステム(BSAM対応順ファイル)、または富士通COBOLファイ ルシステム(索引ファイル)の可変長レコード形式のファイルを処理する場合、レコード長には、実際の最大レコード長以上を指定してく ださい。 1.2.1.8 「+0」と「-0」を表現できるデータ形式について 変更内容 PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「+0」と「-0」を表現できるデータ形式において、「+0」と「-0」は 異なる値として処理(ソート処理、マージ処理、レコード集約処理、サプレス処理、およびレコード選択処理)していました。 PowerSORT Server V6.0.0以降では、同値として処理するように変更しました。 対処方法 PowerSORT Server V6.0.0以降において、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10と同様に「+0」と「-0」を異 なる値として処理する場合は、環境変数BSORT_SIGNEDZEROにEFFECTを指定してください。 参考 「+0」と「-0」を表現できるデータ形式を以下に示します。 ・ 内部10進数 ・ 外部10進数 ・ 前置別符号付数字 ・ 後置別符号付数字 ・ 前置オーバパンチ符号付数字 ・ 後置オーバパンチ符号付数字 ・ テキストファイルにおいて、キーフィールド、および選択フィールドの操作としてn(BSOPT_NUMERIC)を指定した場合、またはキー フィールドの操作としてN(BSOPT_CHARNUM)を指定した場合 1.2.1.9 メッセージの出力形式について 変更内容 PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、メッセージはメッセージ本文だけを出力していました。 PowerSORT Server V6.0.0以降では、メッセージは、メッセージ種別、日時、メッセージ番号、およびメッセージ本文を出力するように変 更しました。 対処方法 PowerSORT Server V6.0.0以降において、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10と同様にメッセージ本文 だけを出力したい場合は、環境変数BSORT_MSGSTYLEに1を指定してください。 1.2.1.10 一時ファイル容量不足時のメッセージについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「一時ファイルの容量が足りません.」とい うエラーメッセージを出力して終了していました。 -7- 1. ソート機能を指定している。かつ、 2. 一時ファイルの容量不足を検出した。 PowerSORT Server V6.0.0以降では、「一時ファイルの容量が足りません.」というエラーメッセージに続いて、「一時フォルダ(※フォル ダ名)を使用しました.」(注1)、または「一時ファイル(※ファイル名)を使用しました.」(注2)というエラーメッセージを出力するように変更 しました。 注1) 一時ファイルを作成するフォルダ名を指定した場合、または一時ファイルの指定を省略した場合に出力されます。 注2) 一時ファイルのファイルパス名を指定した場合に出力されます。 対処方法 ありません。 1.2.1.11 処理定義ファイルについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、環境変数BSORT_MSGLEVELの指定に 関わらず、「メッセージを何も出力しない」という設定で動作していました。 1. bsortコマンドを使用している。かつ、 2. 処理定義ファイルオプション(-P)を指定している。 PowerSORT Server V6.0.0以降では、環境変数BSORT_MSGLEVELの指定に従うよう変更しました。 対処方法 PowerSORT Server V6.0.0以降において、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10と同様に「メッセージを 何も出力しない」という設定で動作させる場合は、環境変数BSORT_MSGLEVELにNを指定してください。 1.2.1.12 アプリケーションログへのメッセージ出力について 変更内容 PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、環境変数BSORT_EVENTLOGにYESを指定した場合にア プリケーションログへ出力されるメッセージは、以下の表のとおりでした。また、イベントIDとしてBSORT関数のエラー詳細コード(errdetail) を設定していました。 イベントID メッセージ 52 PowerSORTの動作に必要なメモリを確保できませんでした。 200 ファイルからレコードの読込み中にエラーが発生しました。 201 ファイルへのレコード書込み中にエラーが発生しました。 224 一時ファイルへの書込み中にエラーが発生しました。 225 一時ファイルからの読込み中にエラーが発生しました。 231 COBOLのファイルシステムのエラーが発生しました。 242 Btrieveファイルシステムでエラーを検出しました。 243 COBOL索引ファイルシステムでエラーを検出しました。 250 PowerSORTの処理に誤りがあります。 600 漢字ソートマージ処理にエラーが発生しました。 601 ADJUST処理にエラーが発生しました。 -8- イベントID 602 メッセージ ICONV処理にエラーが発生しました。 PowerSORT Server V6.0.0以降では、9.1.4 アプリケーションログへの出力メッセージに記載されているメッセージを出力するよう変更し ました。また、イベントIDとしてメッセージ番号を設定するように変更しました。 対処方法 ありません。 1.2.1.13 BSORT関数の定義値変更について 変更内容 PowerSORT Server V6.0.0以降では、BSORT関数における各構造体のメンバーに設定可能な定義値を以下のように変更しました。 構造体 メンバー V5.0L10以前の定義値 V6.0.0以降の定義値 BS_BLANK BSOPT_BLANK BS_DICTIONARY BSOPT_DICTIONARY BS_IGNORE BSOPT_IGNORE BS_JUNBO BSOPT_JUMBO BS_NUMERIC BSOPT_NUMERIC BS_CHARNUM BSOPT_CHARNUM BS_WCHR BSOPT2_WCHR BSOPT_B BSOPT_BLANK BSOPT_D BSOPT_DICTIONARY BSOPT_I BSOPT_IGNORE BSOPT_J BSOPT_JUMBO BSOPT_K BSOPT_KANJI BSOPT_N BSOPT_NUMERIC BSOPT_LN BSOPT_CHARNUM BSOPT2_W BSOPT2_WCHR BSOPT_B BSOPT_BLANK BSOPT_D BSOPT_DICTIONARY BSOPT_I BSOPT_IGNORE BSOPT_J BSOPT_JUMBO BSOPT_N BSOPT_NUMERIC BSOPT2_W BSOPT2_WCHR keyoption BSRTPRIM keyoption2 key_option BSKEY key_option2 sele_option BSSELE sele_option2 対処方法 以前のバージョンとの互換のため、PowerSORT Server V5.0L10以前の定義値もV6.0.0以降で使用可能です。このため、以前のバー ジョンで作成したソースを修正する必要はありません。 1.2.2 障害修正に関する互換情報 ここでは、障害修正に関連した互換情報について記載します。 -9- 1.2.2.1 テキストファイル固定フィールド指定時のキーフィールドについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10では、指定の誤りを検出できずに動作することがありました。 1. bsortexコマンドを使用している。かつ、 2. テキストファイル固定フィールド指定である。かつ、 3. キーフィールドに「指定した最大レコード長-改行記号の長さ」を超えた位置を含んでいる。 PowerSORT Server V3.0L20以降では、「キーフィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー ジを出力して終了するように修正しました。 対処方法 テキストファイル固定フィールド指定の場合、キーフィールドには「指定した最大レコード長-改行記号の長さ」を超えた位置を含まな いよう、キーフィールドの指定を修正してください。 1.2.2.2 バイナリファイル時の選択フィールドについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10では、レコード外を選択フィールドに含んで動作していました。 1. bsortコマンド、またはBSORT関数を使用している。かつ、 2. バイナリファイル指定である。かつ、 3. 選択フィールドに「レコード長+1」の位置を含んでいる。 PowerSORT Server V3.0L20以降では、「選択フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー ジを出力して終了するように修正しました。 対処方法 選択フィールドにはレコード長を超えた位置を含まないよう、選択フィールドの指定を修正してください。 1.2.2.3 アーギュメントファイルオプションの指定について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10では、他のオプションを無視してアーギュメントファイル内の指定だけで動作すること がありました。 1. bsortコマンドを使用している。かつ、 2. アーギュメントファイルオプションと他のオプションを同時に指定している。 PowerSORT Server V3.0L20では、「オプション(-a)の指定に誤りがあります.」というエラーメッセージを出力して終了するように修正し ました。 PowerSORT Server V4.0L10以降では、アーギュメントファイルオプションと他のオプションを同時に指定できるようになりました。 対処方法 PowerSORT Server V3.0L20以前は、アーギュメントファイルオプションと他のオプションを混在して指定できません。必要なオプション は、アーギュメントファイル内で指定してください。 PowerSORT Server V4.0L10以降は、PowerSORT V3.0L10で無視されていたアーギュメントファイルオプション以外のオプションも有 効になります。必要のないオプションが指定されている場合は、削除してください。 - 10 - 1.2.2.4 テキストファイル固定フィールド指定時の集約フィールドについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10では、集約フィールドの指定誤りが検出されず、レコード集約処理が行われる際に 「集約フィールドが存在しないレコードが入力されたため,集約処理を中止します.」というエラーメッセージ(警告メッセージ)が出力される (注)ことがありました。 1. テキストファイル固定フィールド指定である。かつ、 2. レコード集約機能を指定している。かつ、 3. 集約フィールドに「指定した最大レコード長-改行記号の長さ」を超えた位置を含んでいる。 PowerSORT Server V3.0L20以降では、「集約フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー ジを出力して終了するように修正しました。 注) レコード集約処理は中止されますが、ソート処理、またはマージ処理は行われます。 対処方法 テキストファイル固定フィールド指定の場合、集約フィールドには「指定した最大レコード長-改行記号の長さ」を超えた位置を含まな いよう、集約フィールドの指定を修正してください。 1.2.2.5 テキストファイル指定時の集約フィールドについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10では、集約フィールドのデータ形式にASCIIコード(asc)を指定したとみなして動作して いました。 1. bsortコマンドを使用している。かつ、 2. テキストファイル指定である。かつ、 3. レコード集約機能を指定している。かつ、 4. 集約フィールドに以下のデータ形式を指定している。 - 固定小数点2進数(fbi) - 符号なし固定小数点2進数(ufb) - 8086形式固定小数点2進数(fbl) - 8086形式符号なし固定小数点2進数(ufl) - システム依存形式固定小数点2進数(fbm) - システム依存形式符号なし固定小数点2進数(ufm) - 内部10進数(pdl) - 符号なし内部10進数(pdu) - 外部10進数(zdl) - 符号なし外部10進数(zdu) PowerSORT Server V3.0L20以降では、「集約フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー ジを出力して終了するように修正しました。 対処方法 テキストファイルを処理する場合、集約フィールドに上記のデータ形式は指定できません。集約フィールドに指定できるデータ形式の 詳細は、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。 - 11 - PowerSORT Server V3.0L20以降において、PowerSORT Server V3.0L10と同じ動作にするためには、集約フィールドのデータ形式に ASCIIコード(asc)を指定してください。 1.2.2.6 bsortexコマンドのiconvオペランドについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10では、「EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換」を行っていま した。 1. bsortexコマンドを使用している。かつ、 2. ASCIIコードとEBCDICコード間の変換方式(iconvオペランド)に1を指定している。 PowerSORT Server V3.0L20以降では、「EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換」を行うように修正しました。 また、以下の条件のとき、PowerSORT Server V3.0L10では「EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換」を行っていまし た。 1. bsortexコマンドを使用している。かつ、 2. ASCIIコードとEBCDICコード間の変換方式(iconvオペランド)に2を指定している。 PowerSORT Server V3.0L20以降では、「EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換」を行うように修正しました。 この結果、以下の指定の場合に出力結果が異なることがあります。 ・ 入力ファイルのコード系(icodeオペランド)がASCIIコード系、かつキーフィールドのデータ形式がEBCDICコードの場合 ・ 入力ファイルのコード系(icodeオペランド)がEBCDICコード系、かつキーフィールドのデータ形式がASCIIコードの場合 ・ 選択フィールドのデータ形式がEBCDICコード、かつ文字列の自己規定値の場合 ・ 再編成フィールドのデータ形式がEBCDICコード、かつ文字列の自己規定値の場合 対処方法 PowerSORT Server V3.0L20以降で正しく動作します。 PowerSORT Server V3.0L20以降において、PowerSORT Server V3.0L10と同じ動作にするためには、iconvオペランドに1を指定して いた場合は2を、2を指定していた場合は1を指定してください。 1.2.2.7 テキストファイル時のレコード集約結果(0詰め、空白詰め)について 変更内容 テキストファイルにおけるレコード集約機能では、集約結果が集約フィールド長より短い場合、入力レコード内の集約フィールドの形式 にしたがって、集約フィールドの左余白に「0」、または空白を詰めます。 PowerSORT Server V3.0L10では、この処理が正しく動作しないことがありました。 PowerSORT Server V3.0L20以降では、入力レコード内の集約フィールドの形式にしたがって、集約フィールドの左余白に「0」、または 空白を詰めるように修正しました。 また、PowerSORT Server V4.0L10以降では、集約フィールドの出力形式を指定することもできるようになりました。 対処方法 ありません。PowerSORT Server V3.0L20以降で正しく動作します。 - 12 - 1.2.2.8 bsortexコマンド使用時の再編成フィールドの自己規定値指定について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10では、指定の誤りが検出されず動作していました。 1. bsortexコマンドを使用している。かつ、 2. レコード再編成機能を指定している。かつ、 3. 再編成フィールドに自己規定値を指定している。かつ、 4. 自己規定値のデータ形式と入力ファイルのコード系(icodeオペランド)が、以下の組み合わせである。 - 自己規定値のデータ形式がASCIIコード、またはシフトJISコードで、入力ファイルのコード系(icodeオペランド)がEBCDIC コード系である。 - 自己規定値のデータ形式がEBCDICコードで、入力ファイルのコード系(icodeオペランド)がASCIIコード系である。 PowerSORT Server V3.0L20以降では、「再編成フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッ セージを出力して終了するように修正しました。 対処方法 ありません。上記の自己規定値のデータ形式と入力ファイルのコード系の組み合わせは指定できません。 1.2.2.9 テキストファイル浮動フィールド指定時のキーフィールドの操作(d、i)について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10では、ソート機能、マージ機能、またはレコード選択機能の処理結果に誤りがあること がありました。 1. テキストファイル浮動フィールド指定である。かつ、 2. キーフィールド、または選択フィールドの操作にd、またはiを指定している。 PowerSORT Server V3.0L20以降では、正しく処理するように修正しました。 対処方法 ありません。PowerSORT Server V3.0L20以降で正しく動作します。 1.2.2.10 集約フィールド内のデータ誤りについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、データの誤りを検出できずに異常な集約結果を出力すること がありました。 1. テキストファイル指定である。かつ、 2. レコード集約機能を指定している。かつ、 3. 集約フィールド内に誤ったデータ(注1)が存在する。 PowerSORT Server V4.0L10以降では、「集約フィールド(※誤りのあるフィールド位置)の内部に不適切なコードが発見されたため,集 約処理を中断します.」というエラーメッセージ(警告メッセージ)を出力して集約処理を中断する(注2)ように修正しました。 注1) 数字の後に符号が存在するデータ。 注2) レコード集約処理は中断しますが、ソート処理、またはマージ処理は行われます。 - 13 - 対処方法 集約フィールド内のデータを修正してください。 1.2.2.11 マージ機能時のメモリ不足について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では「PowerSORTの処理で内部論理の矛盾を検出しました. (qha5ioff-61)」というエラーメッセージを出力して終了することがありました。 1. マージ機能を指定している。かつ、 2. 作業域の大きさ(メモリサイズ)を指定している。 3. 指定した作業域の大きさ(メモリサイズ)が、処理に必要なメモリサイズより少ない。 PowerSORT Server V4.0L10以降では、「PowerSORTの動作に必要な領域を確保できません.」というエラーメッセージを出力して終 了するように修正しました。 対処方法 正常に処理させるためには、指定した作業域の大きさ(メモリサイズ)を増加するか、またはメモリサイズの指定(bsortコマンド、またはbsortex コマンドのオプション、環境変数BSORT_MEMSIZEなど)を削除してください。 1.2.2.12 キーフィールドにおける2桁年号データ形式について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、誤りのあるデータが化けて出力されていました。 1. ソート機能、またはマージ機能を指定している。かつ、 2. キーフィールドのデータ形式に2桁年号データ形式(yyc、yyd、yyp、yyz)を指定している。かつ、 3. キーフィールド内に誤ったデータ(注)が存在する。 PowerSORT Server V4.0L10以降では、キーフィールド内の誤りのあるデータもそのまま出力するように修正しました。 注) 指定した2桁年号データ形式では許されないデータ。 対処方法 入力レコード内のキーフィールドのデータを修正してください。 1.2.2.13 bsortコマンド、bsortexコマンドの終了コードについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、終了コードが1になる場合と-1になる場合がありました。 1. bsortコマンド、またはbsortexコマンドを使用している。 2. bsortコマンド、またはbsortexコマンドでエラーが発生した。 PowerSORT Server V4.0L10以降では、終了コードが1となるように修正しました。 対処方法 bsortコマンド、およびbsortexコマンドの終了コードは、正常終了時が0、異常終了時が0以外という仕様です。コマンドの実行結果を終 了コードにより判断する場合は、0(正常)、または0以外(異常)で行ってください。 - 14 - 1.2.2.14 ソート機能時の出力レコード減少について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、「PowerSORTの処理で内部論理の矛盾を検出しました. (qha5term-72)」というエラーメッセージを出力し、出力レコードが減少してしまう場合がありました。 1. ソート機能を指定している。 なお、この場合、1.2.2.15 特定障害発生時のbsortコマンド、bsortexコマンドの終了コードについての障害により、bsortコマンド、または bsortexコマンドの終了コードが0となるため、終了コードからエラーが発生していることを判断できません。 PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V4.0L10以降で正しく動作します。 1.2.2.15 特定障害発生時のbsortコマンド、bsortexコマンドの終了コードについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、bsortコマンド、またはbsortexコマンドの終了コードが0で終了 することがありました。 1. 1.2.2.14 ソート機能時の出力レコード減少についての障害が発生した。または、 2. 1.2.2.16 出力ファイルのレコード選択機能、またはレコード再編成機能指定時のエラーメッセージについての障害が発生した。 PowerSORT Server V4.0L10以降では、終了コードが1になるよう修正しました。 対処方法 ありません。PowerSORT Server V4.0L10以降で正しく動作します。 1.2.2.16 出力ファイルのレコード選択機能、またはレコード再編成機能指定時のエラーメッ セージについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、「PowerSORTの処理で内部論理の矛盾を検出しました. (qha5term-72)」というエラーメッセージを出力して出力レコードが減少してしまう、または処理を返さなくなる場合がありました(注)。 1. bsortexコマンドを使用している。かつ、 2. 出力ファイルのレコード選択機能、または出力ファイルのレコード再編成機能を指定している。 なお、この場合、1.2.2.15 特定障害発生時のbsortコマンド、bsortexコマンドの終了コードについての障害により、bsortexコマンドの終 了コードが0となるため、終了コードからエラーが発生していることを判断できません。 PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。 注) 本障害は領域破壊を起こすため、その他にも様々な現象が起きる可能性があります。 対処方法 ありません。PowerSORT Server V4.0L10以降で正しく動作します。 1.2.2.17 テキストファイル時のレコード集約結果(0詰め、空白詰め、符号付加)について - 15 - 変更内容 テキストファイルにおけるレコード集約機能では、集約結果が集約フィールド長より短い場合、入力レコード内の集約フィールドの形式 にしたがって、集約フィールドの左余白に「0」、または空白を詰めます。また、「+」の符号についても、入力レコード内の集約フィール ドの形式にしたがって付加するか付加しないかを決定します。 PowerSORT Server V3.0L10、およびV3.0L20では、この処理が正しく動作しないことがありました。 PowerSORT Server V4.0L10以降では、入力レコード内の集約フィールドの形式にしたがって、0詰め、空白詰め、または「+」の符号の 付加を行うように修正しました。また、集約フィールドの出力形式を指定することもできるようになりました。 対処方法 ありません。PowerSORT Server V4.0L10以降で正しく動作します。 1.2.2.18 テキストファイル浮動フィールド指定時のレコード集約結果について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、レコード集約処理の結果に誤りがあることがありました。 1. テキストファイル浮動フィールド指定である。かつ、 2. レコード集約機能を指定している。かつ、 3. lastオペランドを指定している。かつ、 4. 集約フィールドに指定した長さと集約処理後のフィールドの長さが異なっている。 PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V4.0L10以降で正しく動作します。 1.2.2.19 テキストファイル指定時のUnicode UCS-2形式のレコード集約結果について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、レコード集約処理の結果に誤りがあることがありました。 1. テキストファイル指定である。かつ、 2. レコード集約機能を指定している。かつ、 3. 集約フィールドのデータ形式にUnicode UCS-2形式を指定している。かつ、 4. 集約フィールド内に誤った文字が存在する。 PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V4.0L10以降で正しく動作します。 1.2.2.20 キーフィールドにおけるUnicode UCS-2形式のデータ形式について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、およびV3.0L20では、ソート処理、またはマージ処理の結果に誤りがあることがあり ました。 1. bsortコマンドを使用している。かつ、 - 16 - 2. キーフィールドのデータ形式にUnicode UCS-2形式を指定している。かつ、 3. 環境変数BSORT_UCS2TYPEを指定していない。かつ、 4. キーフィールド内のバイトオーダーがLittle Endianである。 PowerSORT Server V4.0L10以降では、正常に動作するように修正しました。 対処方法 環境変数BSORT_UCS2TYPEにキーフィールド内のバイトオーダーを正しく設定することで、この問題を回避できます。 また、PowerSORT Server V4.0L10以降で正しく動作します。 1.2.2.21 テキストファイル時のUnicode UCS-2形式のデータ形式について(その1) 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、出力結果に誤りがあることがありました。 1. テキストファイル指定である。かつ、 2. キーフィールド、または選択フィールドのデータ形式がUnicode UCS-2形式である。かつ、 3. フィールドの操作にbを指定している。かつ、 4. フィールド内のデータが空白、またはタブで、その後ろにも空白、またはタブのデータが続いている。 PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V5.0L10以降で正しく動作します。 1.2.2.22 テキストファイル時のUnicode UCS-2形式のデータ形式について(その2) 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、出力結果に誤りがあることがありました。 1. テキストファイル指定である。かつ、 2. キーフィールド、または選択フィールドのデータ形式がUnicode UCS-2形式である。かつ、 3. フィールドの操作にnを指定している。かつ、 4. フィールド内のデータに数字を含まないレコードが存在している。かつ、 5. レコードの先頭に'9'よりも大きなデータが存在している。 PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V5.0L10以降で正しく動作します。 1.2.2.23 レコード選択機能における外部10進数のデータ形式について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、レコード選択処理の結果に誤りがあることがありまし た。 1. レコード選択機能を指定している。かつ、 - 17 - 2. 選択フィールドのデータ形式に外部10進数を指定している。かつ、 3. 入力ファイルのコード系にASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式)を指定している。 PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V5.0L10以降で正しく動作します。 1.2.2.24 選択フィールドのデータ形式が外部10進数、前置オーバパンチ符号付数字、また は後置オーバパンチ符号付数字の場合のレコード選択機能について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、レコード選択処理の結果に誤りがあることがありまし た。 1. レコード選択機能を指定している。かつ、 2. 選択フィールドに以下のデータ形式を指定している。かつ、 - 外部10進数(zdl) - 前置オーバパンチ符号付数字(alo) - 後置オーバパンチ符号付数字(ato) 3. 入力ファイルのコード系にUnicode系(UCS-2形式)、またはUnicode系(UTF-8形式)を指定している。 PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V5.0L10以降で正しく動作します。 1.2.2.25 メッセージの変更について(その2) 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、およびV4.0L10では、「テキストファイルで入力コード系にEBCDICコード 系を指定してます.」というエラーメッセージを出力することがありました。 1. BSORT関数を使用したC言語のアプリケーションを作成して実行している。かつ、 2. テキストファイル指定である。かつ、 3. 入力ファイルのコード系にEBCDICコード系を指定している。 PowerSORT Server V5.0L10以降では、「テキストファイルで入力コード系にEBCDICコード系を指定しています.」に修正しました。 対処方法 ありません。 1.2.2.26 レコード再編成機能における「pos.END」の記述形式について 変更内容 以下の条件のとき、PowerSORT Server V4.0L10では、出力結果に誤りがあることがありました。 1. バイナリファイル指定である。かつ、 - 18 - 2. レコード形式に可変長レコード形式を指定している。かつ、 3. レコード再編成機能を指定している。かつ、 4. 再編成フィールドの記述形式が「pos.END」である。 PowerSORT Server V5.0L10以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V5.0L10以降で正しく動作します。 1.2.2.27 出力件数が0件の時のBOM出力について 変更内容 以下の条件のとき、PowerSORT Server V4.0L10では、出力ファイルの先頭にBOMが出力されないことがありました。 1. テキストファイル指定である。かつ、 2. 入力ファイルのコード系がUnicode系(UCS-2形式)、またはUnicode系(UTF-8形式)である。かつ、 3. 入力ファイルの先頭にBOM(Byte Order Mark)が存在している。かつ、 4. 環境変数BSORT_UNICODEBOMにONを指定している、または指定を省略している。かつ、 5. 出力件数が0件である。 PowerSORT Server V5.0L10以降では、出力ファイルの先頭にBOMが出力されるよう修正しました。 対処方法 ありません。PowerSORT Server V5.0L10以降で正しく動作します。 1.2.2.28 テキストファイル時のシフトJISコードのデータ形式について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、ソート処理、マージ処理、またはレコード 選択処理の結果に誤りがあることがありました。 1. テキストファイル指定である。かつ、 2. キーフィールド、または選択フィールドのデータ形式がシフトJISコード(sji)である。かつ、 3. フィールドの操作に'i'を指定している。 PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.29 レコード全体をキーフィールドとする場合のキーフィールドの操作について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、不適切なエラーメッセージを出力するこ とがありました。 1. レコード全体をキーフィールドとしている。かつ、 - 19 - 2. レコード全体をキーフィールドとする場合のキーフィールドの操作に、n、N、およびwの排他関係にある操作を同時に指定して いる。 PowerSORT Server V6.0.0以降では、「レコード全体をキーフィールドとする場合のキーフィールドの操作に誤りがあります.」というエ ラーメッセージを出力するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しいメッセージを出力します。 1.2.2.30 入力エラー発生時のメッセージについて 変更内容 入力ファイルのファイルシステムがシステムの標準ファイルシステムの場合、入力ファイルに以下のような異常があったとき、PowerSORT は「ファイル(※入力ファイル名)からのレコード入力中にエラー(※補足情報)が発生しました.」というエラーメッセージを出力することが あります。 ・ バイナリファイルの場合、ファイルサイズが指定したレコード長の倍数でない。 ・ テキストファイルの場合、指定したレコード長より長いレコードが存在する。 ・ テキストファイル、かつ入力ファイルのコード系がUnicode系(UCS-2形式)の場合、レコード長が奇数であるレコードが存在する。 PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、補足情報に不適切なメッセージを出力することがありました。 PowerSORT Server V6.0.0以降では、補足情報に適切なメッセージを出力するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しいメッセージを出力します。 1.2.2.31 処理定義ファイルオプションについて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、指定されたオプションを無視して動作し てしまうことがありました。 1. bsortコマンドを使用している。かつ、 2. 処理定義ファイルオプション(-P)を指定している。かつ、 3. 同時に他のオプションを指定している。 PowerSORT Server V6.0.0以降では、「オプション(-P)の指定に誤りがあります.」というエラーメッセージを出力して終了するようになり ました。 対処方法 ありません。処理定義ファイルオプション(-P)と他のオプションは混在して指定できません。 1.2.2.32 富士通COBOLのエラーコードについて 変更内容 PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、富士通COBOLファイルシステムでエラーが発生した場合の エラーメッセージ内に、エラーコードとして不適切な記号が出力されることがありました。 - 20 - PowerSORT Server V6.0.0以降では、16進数のエラーコードが出力されるように修正しました。 対処方法 ありません。 1.2.2.33 メッセージの変更について(その3) 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「An necessary PowerSORT working area cannot be secured.」というエラーメッセージを出力していました。 1. 英語環境で動作している。かつ、 2. 作業域(メモリ)の不足を検出した。 PowerSORT Server V6.0.0以降では、「A necessary PowerSORT working area cannot be secured.」に修正しました。 対処方法 ありません。 1.2.2.34 メッセージの変更について(その4) 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、「Max output file size is specified with the file system which dose not support it.」というエラーメッセージを出力していました。 1. 英語環境で動作している。かつ、 2. 出力可能な最大ファイルサイズの指定に誤りがある。 PowerSORT Server V6.0.0以降では、「Max output file size is specified with the file system which does not support it.」に修正しました。 対処方法 ありません。 1.2.2.35 入力ファイルのコード系がUnicode系(UCS-2形式)の場合の再編成フィールドにつ いて 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、再編成フィールドの指定の誤りを検出で きずに動作していました。 1. テキストファイル指定である。かつ、 2. 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、 3. レコード再編成機能を指定している。かつ、 4. 再編成フィールドの長さが2の倍数でない。または、テキストファイル固定フィールド指定のときに再編成フィールドの位置が2の 倍数でない。 PowerSORT Server V6.0.0以降では、「再編成フィールド(※誤りのあるフィールド番号)の指定に誤りがあります.」というエラーメッセー ジを出力して終了するように修正しました。 - 21 - 対処方法 テキストファイル指定、かつ入力ファイルのコード系がUnicode系(UCS-2形式)の場合、再編成フィールドの長さには2の倍数を指定し てください。また、テキストファイル固定フィールド指定のときには、再編成フィールドの位置にも2の倍数を指定してください。 1.2.2.36 入力ファイルのコード系がUnicode系(UCS-2形式)の場合のテキストファイル浮動 フィールド指定について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、出力結果に誤りがあることがありました。 1. テキストファイル浮動フィールド指定である。かつ、 2. 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、 3. キーフィールド、選択フィールド、再編成フィールド、または集約フィールドを指定している。 PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.37 BSORT関数におけるキーフィールドの操作について(その1) 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、指定されたキーフィールドの操作に関す る排他エラーが検出できず、動作してしまうことがありました。 1. BSORT関数を使用したC言語のアプリケーションを作成し実行している。かつ、 2. キーフィールドの指定を省略している。かつ、 3. BSRTPRIM構造体のkeyoptionにBS_CHARNUMを指定している。かつ、 4. BSRTPRIM構造体のkeyoptionにBS_NUMERIC、またはkeyoption2にBS_WCHRを指定している。 PowerSORT Server V6.0.0以降では、「レコード全体をキーフィールドとする場合のキーフィールドの操作に誤りがあります.」というエ ラーメッセージを出力して終了するようになりました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.38 BSORT関数におけるキーフィールドの操作について(その2) 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、キーフィールドの操作にBSOPT_LNが指 定されたものとして動作していました。 1. BSORT関数を使用したC言語のアプリケーションを作成し実行している。かつ、 2. キーフィールドの操作にBSOPT_Nを指定している。 PowerSORT Server V6.0.0以降では、指定のとおり、キーフィールドの操作にBSOPT_Nが指定されたものとして動作するようになりまし た。 - 22 - 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.39 ファイルの分割出力機能について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、1つのファイルに出力可能な最大ファイル サイズ、または1つのファイルに出力可能な最大レコード数の指定によるファイルの分割出力が正常に動作しないことがありました。 1. bsortexコマンドを使用している。かつ、 2. -outputオプションでmaxfilesizeオペランド、またはmaxrecnumオペランドを指定している。かつ、 3. PowerSORTが用意した出力バッファ内に格納されているレコードを全て出力したタイミングでファイルの分割が行われた。 PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.40 キーフィールドの指定に誤りがある場合のメッセージ内の不適切な情報について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10が出力する「キーフィールド(※誤りのあるフィー ルド番号)の指定に誤りがあります.」というメッセージ内の“※誤りのあるフィールド番号”が不適切でした。 1. テキストファイル浮動フィールド指定である。かつ、 2. 入力ファイルのレコード再編成機能を指定している。かつ、 3. 入力ファイルのレコード再編成機能の指定によりキーフィールドが存在しないレコードとなる。 PowerSORT Server V6.0.0以降では、正しいメッセージを出力するように修正しました。 対処方法 キーフィールドが存在しないレコードとなるような、入力ファイルのレコード再編成機能の指定はできません。再編成フィールド、または キーフィールドの指定を修正してください。 1.2.2.41 標準入力からのレコード入力について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、レコードを正常に入力できず、出力結果 に誤りがあることがありました。 1. 入力ファイルが標準入力である。かつ、 2. 入力ファイルのコード系がUnicode UCS-2形式である。 PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 - 23 - 1.2.2.42 ファイルの分割出力機能(maxrecnum)について 変更内容 以下の条件のとき、PowerSORT Server V3.0L10、V3.0L20、V4.0L10、およびV5.0L10では、1つのファイルに出力可能な最大レコー ド数の指定によるファイルの分割出力が正常に動作しない、または「PowerSORTの処理で内部論理の矛盾を検出しました. (qha5term-72)」というメッセージを出力してエラー終了することがありました。 1. bsortexコマンドを使用している。かつ、 2. テキストファイル指定である。かつ、 3. -outputオプションでmaxrecnumオペランドを指定している。かつ、 4. 入力ファイル内にレコード分離文字だけのレコードが含まれる。 PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.43 標準出力時におけるBOM出力について 変更内容 以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、出力ファイル(標準出力)の先頭に余分なBOMが出力されるこ とがありました。 1. マージ機能、またはコピー機能を指定している。かつ、 2. テキストファイルの処理である。かつ、 3. 入力ファイルのコード系がUnicode系(UCS-2形式)、またはUnicode系(UTF-8形式)である。かつ、 4. 出力ファイルが標準出力である。 PowerSORT Server V6.0.0以降では、余分なBOMが出力されないように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.44 レコード集約機能における、集約フィールドの出力形式指定について(その1) 変更内容 以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、レコード集約フィールドが指定した出力形式で出力されない ことがありました。 1. テキストファイル浮動フィールド指定である。かつ、 2. レコード集約機能を指定している。かつ、 3. 集約フィールドの出力形式に'd'を指定している。 PowerSORT Server V6.0.0以降では、指定した出力形式で出力されるように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 - 24 - 1.2.2.45 標準入力時における、UnicodeファイルのBOMの読み飛ばしについて 変更内容 以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、Unicodeファイルの入力開始時に無条件でBOMの長さ(注)分 のデータを読み飛ばしていました。 1. マージ機能、またはコピー機能を指定している。かつ、 2. テキストファイル指定である。かつ、 3. 入力ファイルのコード系がUnicode(UCS-2形式、またはUTF-8形式)である。かつ、 4. 入力ファイルが標準入力である。 PowerSORT Server V6.0.0以降では、テキストファイル指定の場合、Unicodeファイルの先頭にBOMが存在するときだけ読み飛ばすよ うに修正しました。また、環境変数BSORT_UNICODEBOMの指定により、BOMを読み飛ばさないようにすることも可能です。 注) Unicode系(UCS-2形式)の場合は2バイト、Unicode系(UTF-8形式)の場合は3バイト。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.46 マージ機能時のレコード集約結果について 変更内容 以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、レコード集約処理の結果に誤りがあることがありました。 1. bsortexコマンドを使用している。かつ、 2. マージ機能を指定している。かつ、 3. レコード集約機能を指定している。かつ、 4. 集約フィールドの出力形式を指定している。かつ、 5. -summaryオプションでfirstオペランドを指定している。 PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.47 レコード集約機能における、集約フィールドの出力形式指定について(その2) 変更内容 以下の条件のとき、PowerSORT Server V4.0L10、およびV5.0L10では、「集約フィールド(※異常が検出されたフィールド番号)の内部 に不適切なコードが発見されたため,集約処理を中断します.」というメッセージを出力して集約処理を中断することがありました。 1. テキストファイル浮動フィールド指定である。かつ、 2. レコード集約機能を指定している。かつ、 3. 集約フィールドの出力形式を指定している。かつ、 4. 集約処理の対象とならないレコードの集約フィールド内に空白、またはタブが存在する。 PowerSORT Server V6.0.0以降では、正常に動作するように修正しました。 - 25 - 対処方法 ありません。PowerSORT Server V6.0.0以降で正しく動作します。 1.2.2.48 テキストファイルCSV形式、テキストファイルTSV形式について(その1) 変更内容 以下の条件のとき、PowerSORT Server V6.0.0では、実行結果誤り、無限ループ、または異常終了することがありました。 1. bsortコマンド、bsortexコマンド、またはBSORT関数を使用している。かつ、 2. ソート機能を指定している。かつ、 3. テキストファイルCSV形式またはテキストファイルTSV形式を指定している。かつ、 4. レコード集約機能または出力ファイルのレコード選択機能を指定している。かつ、 5. 集約フィールドまたは選択フィールドがダブルクォーテーションで囲まれている。 PowerSORT Server V6.0.0A以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0A以降で正しく動作します。 1.2.2.49 テキストファイルCSV形式、テキストファイルTSV形式について(その2) 変更内容 以下の条件のとき、PowerSORT Server V6.0.0では、実行結果誤り、または異常終了することがありました。 1. bsortexコマンドを使用している。かつ、 2. テキストファイルCSV形式またはテキストファイルTSV形式を指定している。かつ、 3. 出力ファイルのレコード再編成機能を指定している。 PowerSORT Server V6.0.0A以降では、正常に動作するように修正しました。 対処方法 ありません。PowerSORT Server V6.0.0A以降で正しく動作します。 1.3 プログラム修正一覧 以前のバージョン・レベルからの障害修正に関する情報を記載します。 なお、発生V/Lは障害が発生する最も古いバージョン・レベル、修正V/Lは障害を修正したバージョン・レベル、P番号は障害を一意に 示す番号です。 項番 発生V/L 修正V/L P番号 現象 1 V3.0L10 V3.0L20 - 以下の条件のとき、キーフィールドの指定の誤りが検出されないことがあ る問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) テキストファイル固定フィールド指定である。かつ、 3) キーフィールドが“指定した最大レコード長-改行記号の長さ”を超え た位置を含んでいる。 2 V3.0L10 V3.0L20 - 以下の条件のとき、PowerSORTが「キーフィールドの指定に誤りがありま す.」というメッセージを出力してエラー終了する問題を修正しました。 - 26 - 項番 発生V/L 修正V/L 現象 P番号 1) bsortexコマンドを使用している。かつ、 2) テキストファイル浮動フィールド指定である。かつ、 3) キーフィールドの指定で“フィールド番号+長さ”が最大レコード長を 超えている。 3 V3.0L10 V3.0L20 - 以下の条件のとき、PowerSORTが「選択フィールドの指定に誤りがありま す.」というメッセージを出力してエラー終了する問題を修正しました。 1) bsortコマンドを使用している。かつ、 2) レコード選択機能を指定している。かつ、 3) レコード選択機能の比較フィールドに自己規定値を文字列で指定し ている。かつ、 4) 自己規定値の文字列の長さが256バイトである。 4 V3.0L10 V3.0L20 - 以下の条件のとき、選択フィールドの指定の誤りが検出されない問題を 修正しました。 1) bsortコマンド、またはBSORT関数を使用している。かつ、 2) バイナリファイル指定である。かつ、 3) 選択フィールドの終了位置が“レコード長+1”である。 5 V3.0L10 V3.0L20 - 以下の条件のとき、オプション指定の誤りが検出されず、オプション指定 を無視して動作してしまう問題を修正しました。 1) bsortコマンドを使用している。かつ、 2) -aオプションの後ろに空白を置かずにアーギュメントファイルを指定し ている。かつ、 3) 他のオプションを1つ指定している。 6 V3.0L10 V3.0L20 - 以下の条件のとき、集約フィールドの指定の誤りが検出されないことがあ る問題を修正しました。 1) テキストファイル固定フィールド指定である。かつ、 2) 集約フィールドが“指定した最大レコード長-改行記号の長さ”を超え た位置を含んでいる。 7 V3.0L10 V3.0L20 - 以下の条件のとき、集約フィールドの指定の誤りが検出されず、指定した データ形式とは異なるレコード集約処理が行われる問題を修正しました。 1) bsortコマンドを使用している。かつ、 2) テキストファイル指定である。かつ、 3) 集約フィールドに指定できないデータ形式(fbi, ufb, fbl, ufl, fbm, ufm, pdl, pdu, zdl, zdu)を指定している。 8 V3.0L10 V3.0L20 - 以下の条件のとき、PowerSORTが「選択フィールドが存在しないレコード が入力されました.」というメッセージを出力してエラー終了することがあ る問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) テキストファイル指定である。かつ、 3) レコード選択機能、およびレコード再編成機能を、-inputオプション、 および-outputオプションの両方に指定している。 9 V3.0L10 V3.0L20 - 以下の条件のとき、PowerSORTが「PowerSORTの処理で内部論理の矛 盾を検出しました.」というメッセージを出力してエラー終了する問題を修 正しました。 1) bsortexコマンドを使用している。かつ、 - 27 - 項番 発生V/L 修正V/L 現象 P番号 2) テキストファイル指定である。かつ、 3) マージ機能、またはコピー機能を指定している。かつ、 4) -inputオプション、-outputオプションの両方でレコード選択機能を指定 している。かつ、 5) -inputオプションで指定したレコード選択機能で、1レコードも選択され なかった。 10 V3.0L10 V3.0L20 - 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) bsortexコマンドを使用している。かつ、 2) キーフィールドのデータ形式にascを指定し、入力ファイルのコード系 (icodeオペランド)にebを指定している。または、キーフィールドのデータ 形式にebcを指定し、入力ファイルのコード系にauを指定している。かつ、 3) ASCIIコードとEBCDICコード間の変換方式(iconvオペランド)に1、ま たは2を指定している。 11 V3.0L10 V3.0L20 - 以下の条件のとき、PowerSORTのレコード集約機能における空白設定、 または0設定が異常になることがある問題を修正しました。 1) レコード集約機能を指定している。かつ、 2) テキストファイル指定である。 12 V3.0L10 V3.0L20 - 以下の条件のとき、PowerSORTが「オペランドの指定に誤りがあります.」 というメッセージを出力してエラー終了する問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) -optionオプションでmemsizeオペランドに2097152以上を指定してい る。 13 V3.0L10 V3.0L20 PG09093 以下の条件のとき、PowerSORTが「キーフィールドの指定に誤りがありま す.」というメッセージを出力してエラー終了することがある、またはアプリ ケーションエラーとなることがある問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) 漢字ソートマージ機能を指定している。かつ、 3) 漢字ソートマージ機能を行うキーと漢字ソートマージ機能を行わない キーを混在して指定している。 14 V3.0L10 V3.0L20 - 以下の条件のとき、PowerSORTがアプリケーションエラーとなることがあ る問題を修正しました。 1) bsortコマンド、またはBSORT関数を使用している。かつ、 2) COPY機能を指定している。かつ、 3) キーフィールドを指定している。 15 V3.0L10 V3.0L20 - 以下の条件のとき、再編成フィールドの指定の誤りが検出されない問題 を修正しました。 1) bsortexコマンドを使用している。かつ、 2) レコード再編成機能で自己規定値を指定している。かつ、 3) 自己規定値のデータ形式がASCIIコード(asc)、またはシフトJISコード (sji)で-optionオプションのicodeオペランドがEBCDICコード系(eb)である。 または、自己規定値のデータ形式がEBCDICコード(ebc)で-optionオプ ションのicodeオペランドがASCIIコード系(au)、または省略している。 - 28 - 項番 発生V/L 修正V/L P番号 現象 16 V3.0L10 V3.0L20 - 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) テキストファイル浮動フィールド指定である。かつ、 2) キーフィールド、または選択フィールドの操作に'd'、または'i'を指定し ている。 17 V3.0L10 V3.0L20 P803892 以下の条件のとき、PowerSORTの出力結果が異常になる、または 「PowerSORTの処理で内部論理の矛盾を検出しました.」というメッセー ジを出力してエラー終了する問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) レコード集約機能を指定している。かつ、 3) レコード集約機能にfirst、またはlastオペランドを指定している。 18 V3.0L10 V4.0L10 PG32089 以下の条件のとき、PowerSORTが「ファイル(※一時ファイル名)からのレ コード入力中にエラー(※エラー番号)が発生しました.」というメッセージ を出力してエラー終了することがある問題を修正しました。 1) ソート機能を指定している。かつ、 2) 一時ファイルを使用している(メモリサイズの指定が入力ファイルサイズ より小さい)。かつ、 3) 入力ファイルサイズが2GB弱以上である。 19 V3.0L10 V4.0L10 - 以下の条件のとき、PowerSORTがアプリケーションエラーとなることがあ る問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) PowerSORT固有の環境変数指定に誤りがある。 20 V3.0L10 V4.0L10 - 以下の条件のとき、集約フィールド内のデータの誤りが検出されない問 題を修正しました。 1) レコード集約機能を指定している。かつ、 2) テキストファイルである。かつ、 3) 集約フィールド内のデータにおいて、数字の後に符号が存在する。 21 V3.0L10 V4.0L10 - 以下の条件のとき、指定したメモリサイズの不足が検出されず、 「PowerSORTの処理で内部論理の矛盾を検出しました.」というメッセー ジを出力してエラー終了することがある問題を修正しました。 1) マージ機能を指定している。かつ、 2) メモリサイズを指定している。かつ、 3) 指定したメモリサイズが、入力ファイル数、レコード長から計算される必 要メモリサイズより少ない。 22 V3.0L10 V4.0L10 P803978 以下の条件のとき、PowerSORTの出力結果が異常になる問題を修正し ました。 1) バイナリファイル指定である。かつ、 2) キーフィールドに2桁年号データ形式(yyc、yyd、yyp、yyz)を指定して いる。かつ、 3)指定したデータ形式として許されないコードがキーフィールド内に含ま れている。 23 V3.0L10 V4.0L10 - 以下の条件のとき、PowerSORTの復帰コードが-1になることがある現象 を修正しました。 1) bsortexコマンド、またはbsortコマンドを使用している。かつ、 - 29 - 項番 発生V/L 修正V/L 現象 P番号 2) PowerSORTの処理中にエラーを検出した。 24 V3.0L10 V4.0L10 P805506 以下の条件のとき、PowerSORTが「キーフィールドと集約フィールド,ま たは集約フィールドと集約フィールドが重なっています.」というメッセー ジを出力してエラー終了することがある問題を修正しました。 1) bsortコマンド、またはBSORT関数を使用している。かつ、 2) バイナリファイル、可変長レコード形式である。かつ、 3) キーフィールドの最終位置から4バイト以内に集約フィールドの先頭が 存在する。 25 V3.0L10 V4.0L10 PG22291 以下の条件のとき、PowerSORTが「PowerSORTの処理で内部論理の矛 盾を検出しました(qha5term-72).」というエラーメッセージを出力し、出力 レコード件数が減少する問題を修正しました。 1) ソート機能を指定している。かつ、 2) 一時ファイルに出力するデータブロックの最後から2番目が一時ファイ ルの空きディスク容量を超えた。 26 V3.0L10 V4.0L10 PG22317 以下の条件のとき、PowerSORTの復帰コードが0となる問題を修正しまし た。 1) bsortコマンド、またはbsortexコマンドを使用している。かつ、 2) 入出力件数の不一致、ファイルのクローズ処理でエラー、またはライブ ラリのクローズ処理でエラーのいずれかが発生した。 27 V3.0L10 V4.0L10 PG22337 以下の条件のとき、PowerSORTが「PowerSORTの処理で内部論理の矛 盾を検出しました(qha5term-72).」というエラーメッセージを出力すること がある、または処理を返さなくなることがある問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) 出力ファイルのレコード選択機能を指定している、または出力ファイル のレコード再編成機能を指定している。 28 V3.0L10 V4.0L10 - 以下の条件のとき、PowerSORTのレコード集約機能の結果が異常にな ることがある問題を修正しました。 1) ソート機能、またはマージ機能を指定している。かつ、 2) テキストファイル指定である。かつ、 3) レコード集約機能を指定している。 29 V3.0L10 V4.0L10 - 以下の条件のとき、PowerSORTの出力結果が異常になる問題を修正し ました。 1) bsortexコマンドを使用している。かつ、 2) テキストファイル浮動フィールド指定である。かつ、 3) レコード集約機能を指定している。かつ、 4) レコード集約機能にlastオペランドを指定している。かつ、 5) 集約フィールドに指定した長さと集約処理後のフィールドの長さが異 なる。 30 V3.0L10 V4.0L10 - 以下の条件のとき、PowerSORTの出力結果が異常になる問題を修正し ました。 1) テキストファイル指定である。かつ、 2) レコード集約機能を指定している。かつ、 3) 集約フィールドのデータ形式にUnicode UCS-2形式を指定している。 かつ、 - 30 - 項番 発生V/L 修正V/L 現象 P番号 4) 集約フィールドに誤りのある文字が存在する。 31 V3.0L10 V4.0L10 - 以下の条件のとき、PowerSORTの出力結果が異常になる問題を修正し ました。 1) bsortコマンドを使用している。かつ、 2) キーフィールドのデータ形式にUnicode UCS-2形式(uc2)を指定してい る。かつ、 3) 環境変数BSORT_UCS2TYPEを指定していない。かつ、 4) キーフィールドのバイトオーダーがLittle Endianである。 32 V3.0L10 V4.0L10 PG61267 以下の条件のとき、PowerSORTがアプリケーションエラーとなることがあ る問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) テキストファイル指定である。かつ、 3) 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、 4) 入力ファイルのレコード分離文字列がCRLFである。 33 V3.0L20 V4.0L10 - 以下の条件のとき、PowerSORTが出力する「ファイル(※ファイル名)の オープンでエラー(※エラー番号)が発生しました.」というエラーメッセー ジのエラー番号に誤りがある問題を修正しました。 1) 入力ファイル、または出力ファイルのファイルシステムにRDMファイル システムを指定している。かつ、 2) RDMファイルのオープン処理で何らかのエラーが発生した。 34 V3.0L10 V5.0L10 - 以下の条件のとき、PowerSORTがアプリケーションエラーとなることがあ る問題を修正しました。 1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい る。かつ、 2) BSRTPRIM構造体のmemory_addrメンバーで、PowerSORTが使用す る作業域のアドレスを指定している。かつ、 3) BSRTPRIM構造体のmemory_sizeメンバーで指定した作業域の大き さが4の倍数でない、または指定できる最大値(2147482624)を超えてい る。 35 V3.0L10 V5.0L10 - 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) テキストファイル指定である。かつ、 2) キーフィールド、または選択フィールドのデータ形式にUnicode UCS-2 形式を指定している。かつ、 3) キーフィールド、または選択フィールドの操作に、'b'、またはBSOPT_B を指定している。かつ、 4) キーフィールド、または選択フィールドが空白、またはタブである。か つ、 5) キーフィールド、または選択フィールドの後ろに空白、またはタブの データが存在する。 36 V3.0L10 V5.0L10 - 以下の条件のとき、PowerSORTが「PowerSORTの処理で内部論理の矛 盾を検出しました(qha5term-72).」というメッセージを出力してエラー終了 することがある、またはPowerSORTの出力結果が異常になることがある問 題を修正しました。 1) テキストファイル指定である。かつ、 - 31 - 項番 発生V/L 修正V/L 現象 P番号 2) キーフィールド、または選択フィールドのデータ形式にUnicode UCS-2 形式を指定している。かつ、 3) キーフィールド、または選択フィールドの操作に、'n'、またはBSOPT_N を指定している。かつ、 4) キーフィールド、または選択フィールドに数字を含まないレコードが存 在する。かつ、 5) レコードの先頭に'9'(Big Endianでは0x0039、Little Endianでは0x3900) より大きなデータが存在する。 37 V3.0L10 V5.0L10 - 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) レコード選択機能を指定している。かつ、 2) 選択フィールドのデータ形式に外部10進数を指定している。かつ、 3) 入力ファイルのコード系にASCIIコード系(Micro Focus COBL形式、 COBOL/2形式)を指定している。 38 V3.0L10 V5.0L10 PG42619 以下の条件のとき、PowerSORTが「文法的な誤りがあります.」というメッ セージを出力してエラー終了することがある、またはアプリケーションエ ラーとなることがある問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) レコード選択機能を指定している。かつ、 3) 一つのinclude/omit/caseオペランドで指定した選択条件が以下のいず れかに合致する。 a) 選択条件の指定数が38を超えている。 b) 選択条件が括弧を使用した指定のとき、 "選択指定数+括弧(閉じ/開 け)数+論理条件数" が選択指定数の5倍を超えている。 c) 選択条件が括弧を使用した指定のとき、括弧を展開したときの選択指 定数が、実指定数の10倍を超えている(注)。 注) "(AorB)and(CorD)" と指定した場合(実指定数:4)、括弧を展開すると "AandCorAandDorBandCorBandD" となり、選択指定数は8となる。 39 V3.0L10 V5.0L10 PG46785 以下の条件のとき、PowerSORTのレコード選択機能の結果が異常にな る問題を修正しました。 1) バイナリファイル指定である。かつ、 2) 入力ファイルのコード系がUnicode系(UCS-2形式、またはUTF-8形式) である。かつ、 3) レコード選択機能を指定している。かつ、 4) 選択フィールドのデータ形式に外部10進数(zdl)、前置オーバパンチ 符号付数字(alo)、後置オーバパンチ符号付数字(ato)のいずれかを指定 している。 40 V3.0L10 V5.0L10 PG46786 以下の条件のとき、PowerSORTが「bsrtopen関数で指定した BSRTPRIM(keyoption)に誤りがあります.」というメッセージを出力してエ ラー終了する問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) テキストファイル指定である。かつ、 3) キーフィールドにALLを指定している。かつ、 4) キーフィールドの操作に'n'を指定している。かつ、 - 32 - 項番 発生V/L 修正V/L 現象 P番号 5) 入力ファイルのコード系(icode)にASCIIコード系(au)、EBCDICコード系 (eb)以外を指定している。 41 V3.0L10 V5.0L10 - 以下の条件のとき、PowerSORTが出力する「テキストファイルで入力コー ド系にEBCDICコード系を指定してます.」というエラーメッセージを修正 しました。 1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい る。かつ、 2) テキストファイル指定である。かつ、 3) 入力ファイルのコード系にEBCDICコード系を指定している。 42 V4.0L10 V5.0L10 - 以下の条件のとき、PowerSORTが「再編成フィールドが存在しないレコー ドが入力されました.」というメッセージを出力してエラー終了することがあ る問題を修正しました。 1) ソート機能、またはマージ機能を指定している。かつ、 2) テキストファイル浮動フィールド指定である。かつ、 3) レコード再編成機能を指定している。かつ、 4) 再編成フィールドの記述形式が "pos.END" 以外である。 43 V4.0L10 V5.0L10 - 以下の条件のとき、PowerSORTが「ストリングが並んでいません.」という メッセージを出力してエラー終了することがある(注1)、または出力結果が 異常になることがある(注2)問題を修正しました。 1) ソート機能、またはマージ機能を指定している。かつ、 2) バイナリファイル、可変長レコード形式を指定している。かつ、 3) レコード再編成機能を指定している。かつ、 4) 再編成フィールドの記述形式が "pos.END" である。 注1) マージ機能を指定している場合に発生することがあります。 注2) ソート機能を指定している場合に発生することがあります。 44 V4.0L10 V5.0L10 - 以下の条件のとき、PowerSORTが「オペランド(colseq=※指定値)の指定 に誤りがあります.」というメッセージを出力してエラー終了することがある 問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) -optionオプションのcolseqオペランドを指定している。 45 V4.0L10 V5.0L10 PG45790 以下の条件のとき、PowerSORTの出力結果が異常になる(ファイルの先 頭にBOMが出力されない)ことがある問題を修正しました。 1) テキストファイル指定である。かつ、 2) 入力ファイルのコード系がUnicode系(UCS-2形式、またはUTF-8形式) である。かつ、 3) 入力ファイルの先頭にBOMが存在する。かつ、 4) 環境変数のBSORT_UNICODEBOMにONを指定している、または環 境変数のBSORT_UNICODEBOMが省略されている。かつ、 5) 出力件数が0件である。 46 V3.0L10 V6.0.0 PG61364 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) テキストファイル指定である。かつ、 2) キーフィールド、または選択フィールドのデータ形式にシフトJISコード - 33 - 項番 発生V/L 修正V/L 現象 P番号 (sji)を指定している。かつ、 3) キーフィールド、または選択フィールドの操作に'i'を指定している。 47 V3.0L10 V6.0.0 PG61365 以下の条件のとき、PowerSORTが「bsrtopen関数で指定した BSRTPRIM(keyoption2)に誤りがあります.」という不適切なエラーメッセー ジを出力する問題を修正しました。 1) bsortコマンドを使用している。かつ、 2) キーフィールドを指定していない。かつ、 3) テキストファイル指定である。かつ、 4) キーフィールドの操作に'w'と'N'を同時に指定している。 48 V3.0L10 V6.0.0 PG61366 以下の条件のとき、PowerSORTが不適切なメッセージを出力することが ある問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) キーフィールドにALLを指定している。かつ、 3) キーフィールドの操作に以下の組み合わせで指定している。 - 'n'と'N' - 'n'と'w' - 'N'と'w' 49 V3.0L10 V6.0.0 PG61367 以下の条件のとき、PowerSORTがアプリケーションエラーとなる問題を修 正しました。 1) bsortexコマンドを使用している。かつ、 2) 定義オプション(-define)を指定している。かつ、 3) 定義オプションのオペランドで簡略名しか指定していない(注)。 注) 例えば、"-define @KEY" など。 50 V3.0L10 V6.0.0 PG61368 以下の条件のとき、オプション指定の誤りが検出されず、指定されたオプ ションを無視して動作してしまうことがある問題を修正しました。 1) bsortコマンドを使用している。かつ、 2) -Pオプションの後ろに空白を置かずに処理定義ファイルを指定してい る。かつ、 3) 他のオプションを1つ指定している。 51 V3.0L10 V6.0.0 PG61369 以下の条件のとき、PowerSORTが出力するメッセージ内のエラー番号に 誤りがあることがある問題を修正しました。 1) 入力ファイル、または出力ファイルのファイルシステムに富士通COBOL ファイルシステムを指定している。かつ、 2) 富士通COBOLファイルシステムで何らかのエラーが発生した。 52 V3.0L10 V6.0.0 PG61370 以下の条件のとき、PowerSORTが出力する「An necessary PowerSORT working area cannot be secured.」というエラーメッセージを修正しました。 1) 英語環境でPowerSORTを使用している。かつ、 2) PowerSORTが必要とするメモリが割り当てられない。 53 V3.0L10 V6.0.0 PG61371 以下の条件のとき、PowerSORTが「再編成フィールドの指定に誤りがあ ります」というメッセージを出力してエラー終了する問題を修正しました。 1) bsortコマンドを使用している。かつ、 2) バイナリファイル指定である。かつ、 - 34 - 項番 発生V/L 修正V/L 現象 P番号 3) レコード再編成機能を指定している。かつ、 4) 再編成フィールドにおいて16進数による自己規定値の指定がある。か つ、 5) 再編成フィールドにおける自己規定値のデータ形式と入力ファイルの コード系の指定の組み合わせが以下のいずれかに該当する。 a) データ形式がASCIIである。かつ、入力ファイルのコード系がUnicode系 (UCS-2形式、またはUTF-8形式)である。 b) データ形式がUnicode UCS-2形式、またはUnicode UTF-8形式であ る。かつ、入力ファイルのコード系がASCIIコード系である。 54 V3.0L10 V6.0.0 PG61372 以下の条件のとき、PowerSORTが出力する「Max output file size is specified with the file system which dose not support it.」というエラーメッ セージを修正しました。 1) 英語環境でPowerSORTを使用している。かつ、 2) 出力ファイルシステムがシステムの標準ファイルシステム以外である。 かつ、 3) 出力可能な最大ファイルサイズを指定している。 55 V3.0L10 V6.0.0 PG61373 以下の条件のとき、PowerSORTが「再編成フィールドの指定に誤りがあ ります.」というメッセージを出力してエラー終了することがある問題を修 正しました。 1) テキストファイル指定である。かつ、 2) レコード再編成機能を指定している。かつ、 3) 再編成フィールドに自己規定値を指定している。かつ、 4) 入力ファイルのコード系がUnicode系(UCS-2形式)である。 56 V3.0L10 V6.0.0 PG61374 以下の条件のとき、再編成フィールドの指定の誤りが検出できず、 PowerSORTの出力結果が異常になる問題を修正しました。 1) テキストファイル指定である。かつ、 2) 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、 3) レコード再編成機能を指定している。かつ、 4) 再編成フィールドの長さが2の倍数でない。または、テキストファイル固 定フィールド指定のときに再編成フィールドの位置が2の倍数でない。 57 V3.0L10 V6.0.0 PG61375 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) テキストファイル浮動フィールド指定である。かつ、 2) 入力ファイルのコード系がUnicode系(UCS-2形式)である。かつ、 3) キーフィールド、選択フィールド、再編成フィールド、または集約フィー ルドを指定している。 58 V3.0L10 V6.0.0 PG61693 以下の条件のとき、PowerSORTが指定のエラーを検出できない問題を 修正しました。 1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい る。かつ、 2) キーフィールドの指定を省略している。かつ、 3) BSRTPRIM構造体のkeyoptionにBS_CHARNUMを指定している。か つ、 - 35 - 項番 発生V/L 修正V/L 現象 P番号 4) BSRTPRIM構造体のkeyoptionにBS_NUMERIC、またはkeyoption2に BS_WCHRを指定している。 59 V3.0L10 V6.0.0 PG61694 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい る。かつ、 2) キーフィールドの操作にBSOPT_Nを指定している。 60 V3.0L10 V6.0.0 PG61695 以下の条件のとき、PowerSORTが「キーフィールドの指定に誤りがありま す.」、または「選択フィールドの指定に誤りがあります.」というメッセージ を出力してエラー終了する問題を修正しました。 1) BSORT関数を使用したC言語のアプリケーションを作成し実行してい る。かつ、 2) キーフィールドの操作にBSOPT_LNを指定している。または、選択 フィールドの操作にBSOPT_Nを指定している。 61 V3.0L10 V6.0.0 PG62207 以下の条件のとき、1つのファイルに出力可能な最大ファイルサイズ、または 1つのファイルに出力可能な最大レコード数の指定によるファイルの分割 出力が正常に動作しないことがある問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) -outputオプションでmaxfilesizeオペランド、またはmaxrecnumオペラン ドを指定している。かつ、 3) PowerSORTが用意した出力バッファ内に格納されているレコードを全 て出力したタイミングでファイルの分割が行われた。 62 V3.0L10 V6.0.0 PG62208 以下の条件のとき、PowerSORTが出力する「キーフィールド(※誤りのあ るフィールド番号)の指定に誤りがあります.」というメッセージ内の“※誤 りのあるフィールド番号”が不適切である問題を修正しました。 1) テキストファイル浮動フィールド指定である。かつ、 2) 入力ファイルのレコード再編成機能を指定している。かつ、 3) 入力ファイルのレコード再編成機能の指定によりキーフィールドが存 在しないレコードとなる。 63 V3.0L10 V6.0.0 PG62209 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) 入力ファイルが標準入力である。かつ、 2) 入力ファイルのコード系がUnicode UCS-2形式である。 64 V3.0L10 V6.0.0 PG62210 以下の条件のとき、PowerSORTがメッセージを出力せずにエラー終了する (注1)問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) テキストファイル浮動フィールド指定である。かつ、 3) レコード選択機能を指定している。かつ、 4) 選択フィールドのデータ形式に文字形式2桁年号(yyc)を指定してい る。かつ、 5) 実際の選択フィールドのフィールド長が2バイト(注2)未満である。 注1) bsortexコマンドの終了コードが1となる。 注2) 入力ファイルのコード系がUnicode UCS-2形式の場合は4バイト未 満。 - 36 - 項番 発生V/L 修正V/L P番号 現象 65 V3.0L10 V6.0.0 PG62211 以下の条件のとき、1つのファイルに出力可能な最大レコード数の指定に よるファイルの分割出力が正常に動作しないことがある、または 「PowerSORTの処理で内部論理の矛盾を検出しました.(qha5term-72)」 というメッセージを出力してエラー終了することがある問題を修正しまし た。 1) bsortexコマンドを使用している。かつ、 2) テキストファイル指定である。かつ、 3) -outputオプションでmaxrecnumオペランドを指定している。かつ、 4) 入力ファイル内にレコード分離文字だけのレコードが含まれる。 66 V4.0L10 V6.0.0 PG61376 以下の条件のとき、PowerSORTの出力結果が異常になる(ファイルの先 頭に余分なBOMが出力される)ことがある問題を修正しました。 1) マージ機能、またはコピー機能を指定している。かつ、 2) テキストファイル指定である。かつ、 3) 入力ファイルのコード系がUnicode系(UCS-2形式、またはUTF-8形式) である。かつ、 4) 出力ファイルが標準出力である。 67 V4.0L10 V6.0.0 PG61377 以下の条件のとき、PowerSORTが「ファイル(※入力ファイル名)からのレ コード入力中にエラー(※補足情報)が発生しました.」という不適切なエ ラーメッセージ(注)を出力することがある問題を修正しました。 1) 入力ファイルのファイルシステムがシステムの標準ファイルシステムで ある。かつ、 2) 入力ファイルが以下である。 - バイナリファイルの場合、ファイルサイズが指定したレコード長の倍数で ない。 - テキストファイルの場合、指定したレコード長より長いレコードが存在す る。 - テキストファイル、かつ入力ファイルのコード系がUnicode系(UCS-2形 式)の場合、レコード長が奇数であるレコードが存在する。 注) 補足情報が不適切 68 V4.0L10 V6.0.0 PG61696 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) テキストファイル浮動フィールド指定である。かつ、 2) レコード集約機能を指定している。かつ、 3) 集約フィールドの出力形式に'd'を指定している。 69 V4.0L10 V6.0.0 PG61697 以下の条件のとき、入力ファイルのBOMの存在に関わらず、入力ファイ ルの先頭をBOMのバイト数分読み飛ばしてしまう問題を修正しました。 1) マージ機能、またはコピー機能を指定している。かつ、 2) テキストファイル指定である。かつ、 3) 入力ファイルのコード系がUnicode系(UCS-2形式、またはUTF-8形式) である。かつ、 4) 入力ファイルが標準入力である。 70 V4.0L10 V6.0.0 PG62212 以下の条件のとき、PowerSORTの出力結果が異常になることがある問題 を修正しました。 1) bsortexコマンドを使用している。かつ、 - 37 - 項番 発生V/L 修正V/L 現象 P番号 2) マージ機能を指定している。かつ、 3) レコード集約機能を指定している。かつ、 4) 集約フィールドの出力形式を指定している。かつ、 5) -summaryオプションでfirstオペランドを指定している。 71 V4.0L10 V6.0.0 PG62213 以下の条件のとき、PowerSORTが「集約フィールド(※異常が検出された フィールド番号)の内部に不適切なコードが発見されたため,集約処理を 中断します.」というメッセージを出力して集約処理を中断する問題を修 正しました。 1) テキストファイル浮動フィールド指定である。かつ、 2) レコード集約機能を指定している。かつ、 3) 集約フィールドの出力形式を指定している。かつ、 4) 集約処理の対象とならないレコードの集約フィールド内に空白、また はタブが存在する。 72 V3.0L10 V6.0.0A PG74094 以下の条件のとき、PowerSORTが「オプション(-P)の指定に誤りがありま す.」というメッセージを出力してエラー終了する、または処理を返さない ことがある問題を修正しました。 1) bsortコマンドを使用している。かつ、 2) 処理定義ファイルオプション(-P)を指定している。かつ、 3) 処理定義ファイルの"Keys="に漢字ソートマージ機能(Mで始まるキー ワード)が指定されている、または、処理定義ファイルの"Keys="に不正な 指定がされている。 73 V3.0L10 V6.0.0A PG76748 以下の条件のとき、PowerSORTが「ファイルシステムの指定に誤りがあり ます。」(PowerSORT OCXの場合)、または「ファイルシステム (F3BEBTRV.DLL)でエラーが発生しました.」(bsort/bsortexコマンド、 BSORT関数の場合)というメッセージを出力してエラー終了する問題を修 正しました。 1) PowerSORT OCXまたはBSORT関数でPowerSORTを呼び出すアプ リケーションを作成している、または、bsortコマンド、bsortexコマンドをイン ストールフォルダから他のフォルダへコピーまたはショートカットを作成し ている。かつ、 2) PowerSORTインストールフォルダ内の"PROGRAM"フォルダのパス が、環境変数PATHに含まれていない。かつ、 3) 入力ファイルシステムまたは出力ファイルシステムにBtrieveファイルシ ステムを指定している。 74 V3.0L10 V6.0.0A PG76750 以下の条件のとき、PowerSORTが「ファイルシステムの指定に誤りがあり ます。」(PowerSORT OCXの場合)、または「ファイル(※ファイル名)のオー プンでエラー(1)が発生しました.」(BSORT関数の場合)というメッセージ を出力してエラー終了する問題を修正しました。 1) PowerSORT OCXまたはBSORT関数を使用してPowerSORTを呼び出 すアプリケーションを実行している。かつ、 2) Btrieve 6.15Jより新しいBtrieve製品(Pervasive製品)を利用している。 かつ、 3) 出力ファイルシステムにBtrieveファイルシステムを指定している。 75 V6.0.0 V6.0.0A PG76059 以下の条件のとき、PowerSORTが実行結果誤り、無限ループ、または異 常終了することがある問題を修正しました。 - 38 - 項番 発生V/L 修正V/L 現象 P番号 1) bsortコマンド、bsortexコマンド、またはBSORT関数を使用している。か つ、 2) ソート機能を指定している。かつ、 3) テキストファイルCSV形式またはテキストファイルTSV形式を指定して いる。かつ、 4) レコード集約機能または出力ファイルのレコード選択機能を指定して いる。かつ、 5) 集約フィールドまたは選択フィールドがダブルクォーテーションで囲ま れている。 76 V6.0.0 V6.0.0A PG76539 以下の条件のとき、PowerSORTが実行結果誤り、または異常終了するこ とがある問題を修正しました。 1) bsortexコマンドを使用している。かつ、 2) テキストファイルCSV形式またはテキストファイルTSV形式を指定して いる。かつ、 3) 出力ファイルのレコード再編成機能を指定している。 - 39 - 第2章 PowerSORTの概要 PowerSORTは、本格的な事務処理で使用できる高性能ソートマージ機能を実現するソフトウェアです。 PowerSORTには、ソート機能、マージ機能、およびコピー機能の主要機能と各種オプション機能があり、これらの機能を組み合わせる ことでさまざまな処理を同時に使用できます。 2.1 主要機能 PowerSORTの代表的な機能には、ソート機能、マージ機能、およびコピー機能の3つがあります。PowerSORTでは、これら3つの機能 を主要機能と呼んでいます。 ・ ソート機能 ・ マージ機能 ・ コピー機能 ソート機能 指定された1つ以上のキーフィールドにより昇順(0から9、AからZの順)、または降順(ZからA、9から0の順)にレコードを並び替える機能 です。 マージ機能 ソート済みの複数のファイルを併合する(まとめる)機能です。 コピー機能 1つ以上の入力ファイルを出力ファイルに複写する機能です。 2.2 オプション機能 PowerSORTには、以下のオプション機能があります。オプション機能は、主要機能と同時に指定します。 ・ レコード選択機能 ・ レコード再編成機能 ・ レコード集約機能 ・ サプレス機能 ・ 先入力先出力(FIFO)機能 レコード選択機能 レコード選択機能とは、処理対象のレコードの選択方法を指定して、必要なレコードだけを選択する機能です。主要機能と組み合わ せて使用します。この機能を使用する場合は、被比較フィールドと比較フィールドとの比較方法、または被比較フィールドと自己規定 値との比較方法を指定します。また、bsortexコマンドではレコード件数を選択条件とすることが可能です。 以下にレコード選択機能を使用した例を示します。 例 キーフィールド順にソートし、被比較フィールドと比較フィールドを比較します。被比較フィールドが比較フィールドより大きい値のレコー ドを選択します。 - 40 - レコード再編成機能 レコード再編成機能とは、フィールドの位置を変更したり、自己規定値をレコードに埋め込む機能です。主要機能と組み合わせて使用 します。この機能を使用する場合は、出力レコードの左端から順番にフィールドを指定します。入力レコードのフィールドの位置を変更 する場合はその位置と長さを、自己規定値を埋め込む場合はその自己規定値を指定します。 以下にレコード再編成機能を使用した例を示します。 例 キーフィールド順にソートし、再編成フィールド1、再編成フィールド2、および再編成フィールド3で再編成します。 レコード集約機能 レコード集約機能とは、同値のキーフィールドをもつレコードが複数あるファイル、またはレコード群をソート処理、またはマージ処理す る際、集約フィールドの値を加算して1つのレコードにする機能です。ソート機能、またはマージ機能と組み合わせて使用します。コピー 機能、およびサプレス機能とは組み合わせて使用できません。また、先入力先出力(FIFO)機能と組み合わせた場合、先入力先出力(FIFO) 機能は無視されます。 以下にレコード集約機能を使用した例を示します。 例 キーフィールド順にソートし、同値のキーフィールドをもつレコードの集約フィールドを集約します。 - 41 - サプレス機能 サプレス機能とは、同値のキーフィールドをもつレコードが複数あるファイル、またはレコード群をソート処理、またはマージ処理する 際、1つを残して他を削除する機能です。ソート機能、またはマージ機能と組み合わせて使用します。コピー機能、およびレコード集約 機能とは組み合わせて使用できません。また、先入力先出力(FIFO)機能と組み合わせた場合、先入力先出力(FIFO)機能は無視され ます。 以下にサプレス機能を使用した例を示します。 例 キーフィールド順にソートし、同値のキーフィールドをもつレコードは1つを残して他を削除します。 先入力先出力(FIFO)機能 先入力先出力(FIFO)機能とは、同値のキーフィールドをもつレコードが複数あるファイル、またはレコード群をソート処理する際、先に 入力したレコードを先に出力する機能です。ソート機能と組み合わせて使用します。マージ機能、コピー機能、レコード集約機能、お よびサプレス機能と組み合わせた場合、先入力先出力(FIFO)機能は無視されます。 以下に先入力先出力(FIFO)機能を使用した例を示します。 例 キーフィールド順にソートし、同値のキーフィールドをもつレコードは入力順に出力します。 - 42 - 2.3 オプション機能と主要機能の組合せ オプション機能と主要機能の組合せの可否を以下に示します。 表2.1 オプション機能と主要機能の組合せの可否 オプション機能 主要機能 ソート機能 マージ機能 コピー機能 レコード選択機能 ○ ○ ○ レコード再編成機能 ○ ○ ○ レコード集約機能 ○ ○ × サプレス機能 ○ ○ × 先入力先出力(FIFO)機能 ○ - - ○:組合せ可能 ×:組合せ不可能 -:オプション機能の指定を無視します。 2.4 漢字ソートマージ機能 漢字ソートマージ機能は、漢字コードで表現された文字(日本語)を含むレコードを、文字の持つ属性に従って並べる機能です。 一般に漢字の読みは一意に決まらず、文字の属性(音読みや訓読み)だけでは使用者の意図どおり並ばないことがあります。このよう な場合、キーフィールドに対する読みがレコード内にあれば、それらを参照して並べることができます。漢字ソートマージ機能では、レ コード内の漢字コードで表現されたフィールドのことを漢字フィールド、それに対応する読みが入っているフィールドをふりがなフィー ルドと呼びます。ふりがなフィールドは、ひらがな文字、およびカタカナ文字で表現します。 漢字ソートマージ機能で実現している並べ方には、基本方式と国語辞典方式の2つの方式があります。 2.4.1 基本方式 基本方式は、文字の属性に従って並べます。 各属性は“JEF文字コード索引辞書”に従っています。必要に応じて“JEF文字コード索引辞書”を参照してください。基本方式では、漢 字フィールドだけで並べることができます。 照合順序 基本方式の照合順序は、以下の属性によって決まります。属性は最大4つまで指定でき、指定した順序で並べます。 ・ 総画数 総画数の小さいものから大きい順(またはその逆)に並べます。 - 43 - ・ 部首 部首の画数の小さいものから大きい順(またはその逆)に並べます。 ・ 音読み 音読みの50音順(またはその逆)に並べます。 ・ 訓読み 訓読みの50音順(またはその逆)に並べます。 ・ コード 漢字コードの小さいものから大きい順(またはその逆)に並べます。 2.4.2 国語辞典方式 国語辞典方式は、国語辞典に採用されている読み(清音読み)を基本として並べます。 国語辞典方式では、漢字フィールドに加えてふりがなフィールドが必要となります。 照合順序 国語辞典方式の照合順序は以下のとおりです。なお、昇順に並べることを例として説明します。 1. ふりがなフィールドのかな文字を50音順に並べます。 例 あ→が→き→っ→ぱ→ゅ 2. ふりがなフィールドのかな文字を濁点や半濁点の付いていない文字、濁点の付いている文字、半濁点の付いている文字の順に 並べます。 例 は→ば→ぱ フ→ブ→プ 3. ふりがなフィールドのかな文字を直音で表す文字、その小文字の順に並べます。 例 や→ゃ ヨ→ョ 4. ふりがなフィールドのかな文字をひらがな、カタカナの順に並べます。 例 け→ケ ゅ→ュ 5. 漢字フィールドに対する文字の属性の指定があれば、2.4.1 基本方式と同様の照合順序で並べます。 2.4.3 漢字ソートマージ機能の留意事項 漢字ソートマージ機能使用時の留意事項を以下に示します。 - 44 - 漢字フィールドに含まれる特殊文字の扱い ・ 漢字フィールド中の繰返し記号(々)は直前の文字に置き換えます。ただし、漢字フィールドの先頭に存在する場合は置き換えませ ん。 ・ 漢字フィールド内に1バイト系の文字が含まれていた場合には、その1バイト系の文字は無いものとして扱い、漢字コードの後に1バ イト系の文字が現れた場合はその後のコードを無視します。 例 漢字フィールドが以下の文字列の場合、すべて“漢字”として処理します。 - 漢字 - abc漢字 - 漢字abc - 漢字abc日本def - abc漢字def日本 ・ 文字の属性を取り出すことができなかったコード(たとえば、拡張漢字など)は空白として処理します。 ふりがなフィールドに含まれる特殊文字の扱い ・ ふりがなフィールド内の繰返し記号(ヽ、ゝ、ヾ、ゞ)は直前の文字に置き換えます。濁点付きの繰返し記号は直前の文字に濁点を付 けて置き換えます。また、ひらがな繰返しは直前の文字をひらがなとして置き換え、カタカナ繰返しは直前の文字をカタカナとして 置き換えます。 ・ ふりがなフィールド内の長音記号(ー、―、-、-)は直前の文字の母音を表す文字に置き換えます。 ・ ふりがなフィールド内の濁点(゛)は直前の文字に濁点を付けます。また、半濁点(゜)は直前の文字に半濁点を付けます。 ・ 以上の文字は、直前の文字がない場合には空白に置き換えます。その他の文字(たとえば、数字、特殊文字など)はすべて空白に 置き換えます。 2.5 環境変数 環境変数を設定することにより、PowerSORTの省略値や動作条件を設定することができます。 以下に、PowerSORTで設定可能な環境変数を示します。なお、環境変数は実行時オプションの省略値、または補助情報となります。 PowerSORTの実行時に、対応するオプションの指定がある場合は、指定したオプションの値が環境変数より優先されます。 環境変数 意味 BSORT_CHKLEVEL チェック機構の指定 BSORT_COBFSYS_MOD E 富士通COBOLファイルシステムオプションの指定 BSORT_EVENTLOG アプリケーションログへの出力指定 BSORT_FIFO 先入力先出力(FIFO)機能の指定 BSORT_MEMSIZE 作業域の大きさの指定 BSORT_MSGFILE メッセージを出力するファイル名の指定 BSORT_MSGLEVEL 出力するメッセージ種別(レベル)の指定 BSORT_MSGOUT メッセージの出力先の指定 BSORT_MSGSTYLE メッセージの出力形式の指定 BSORT_RDM_EMPTY 0件のRDMファイルを入力した場合の処理方法の指定 BSORT_SIGNEDZERO 「+0」と「-0」を同値と判定するか否かの指定 - 45 - 環境変数 意味 BSORT_SUMOVERCONT レコード集約処理実行中にオーバフローが発生した場合、それ以後のレコード集 約処理を継続するか否かの指定 BSORT_TMPDIR 一時ファイルフォルダ名の指定 BSORT_TOPYY 2桁年号データの照合順序定義の指定 BSORT_UCS2TYPE Unicode UCS-2形式のバイトオーダーの指定 BSORT_UNICODEBOM BOMの読み飛ばしの有無の指定 BSORT_CHKLEVEL={0 | 1} PowerSORTの内部のチェック機能を指定します。 指定値 意味 0 何もチェックしません。(省略値) 1 BSORT関数においてインターフェースをチェックします。 BSORT_COBFSYS_MODE={NORMAL | BSAM} 入出力ファイルのファイルシステムに"富士通COBOLファイルシステム(順ファイル)"を指定した場合に、動作させるファイルシステムを 指定します。 BSAM対応については富士通COBOLファイルシステム(BSAM対応順ファイル)に関する留意事項を参照してください。 指定値 意味 NORMAL "富士通COBOLファイルシステム(順ファイル)"として動作します。(省略値) BSAM "富士通COBOLファイルシステム(BSAM対応順ファイル)"として動作します。 参考 ・ この環境変数は、入出力ファイルのファイルシステムに"富士通COBOLファイルシステム(順ファイル)"を指定した場合に有効で す。 ・ BSAMを指定しても、使用する富士通COBOLファイルシステムがBSAMに対応していない場合はNORMALで動作します。 BSORT_EVENTLOG={N | E | W | I | YES | NO} PowerSORTがアプリケーションログへ出力するメッセージの種別(レベル)を指定します。 指定値 意味 N 何も出力しません。(省略値) E エラーメッセージを出力します。 W エラーメッセージ、および警告メッセージを出力します。 I エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 また、以下に示す以前のバージョンの指定値も指定可能です。 YESを指定すると、PowerSORTが検出した重大なエラー情報だけをアプリケーションログへ出力することができます。出力対象となる メッセージは、PowerSORTが動作するために必要なメモリサイズが不足した場合、ファイルシステムがI/Oエラーを検出した場合、およ び漢字ソートマージ機能でエラーを検出した場合に出力されるメッセージです。出力されるメッセージの詳細は、9.1.4 アプリケーショ ンログへの出力メッセージを参照してください。 - 46 - 指定値 意味 YES 重大なエラー情報をアプリケーションログへ出力します。 NO 何も出力しません。(省略値) BSORT_FIFO={ON | OFF} 先入力先出力(FIFO)機能を指定します。 指定値 意味 ON 指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。ソー ト機能のときに有効です。マージ機能、コピー機能、レコード集約機能、およびサプレス 機能と組み合わせた場合、先入力先出力(FIFO)機能の指定は無視されます。 OFF 指定したキーフィールドの値が同一なレコードの出力順は不定です。(省略値) BSORT_MEMSIZE=n PowerSORTが使用する作業域の大きさ(メモリサイズ)をキロバイト数で指定します。 メモリサイズは32~2097151キロバイトの範囲で指定します。0を指定した場合、または環境変数BSORT_MEMSIZEの指定を省略した 場合は、メモリサイズは自動的に設定されます。2097152以上の値を指定した場合は、2097151を指定したとみなされます。 メモリサイズは入力データ量の1/50以上とすることをお薦めします。ただし、入力データ量の1/50が8192キロバイト未満の場合は、8192 キロバイトとすることをお薦めします。 BSORT_MSGFILE=メッセージ出力ファイル名 PowerSORTが出力するメッセージを格納するファイルパス名を指定します。 ファイル名に空白を含む場合も、ファイル名をダブルクォーテーション( " )で囲む必要はありません。 BSORT_MSGLEVEL={N | E | W | I | 0 | 1 | 2} PowerSORTが出力するメッセージの種別(レベル)を指定します。 指定値 意味 N 何も出力しません。 E エラーメッセージを出力します。 W エラーメッセージ、および警告メッセージを出力します。(省略値) I エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 また、以前のバージョンとの互換用として、以下の種別(レベル)も指定できます。 指定値 意味 0 何も出力しません。 1 エラーメッセージ、および警告メッセージを出力します。(省略値) 2 エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 BSORT_MSGOUT={STDOUT | STDERR} 情報メッセージ、警告メッセージ、およびエラーメッセージの出力先を指定します。 指定値 STDOUT 意味 警告メッセージ、およびエラーメッセージを標準出力に出力します。情報メッセージは標 準出力に出力されません。 メッセージファイルの指定がある場合は、警告メッセージ、およびエラーメッセージを標 - 47 - 指定値 意味 準出力に出力するとともに、情報メッセージ、警告メッセージ、およびエラーメッセージを メッセージファイルに出力します。 STDERR 情報メッセージ、警告メッセージ、およびエラーメッセージを標準エラー出力に出力しま す。 メッセージファイルの指定がある場合は、警告メッセージ、およびエラーメッセージを標 準エラー出力に出力するとともに、情報メッセージ、警告メッセージ、およびエラーメッ セージをメッセージファイルに出力します。(省略値) 以下にPowerSORTの出力ファイルに標準出力を指定し、処理結果をリダイレクトして別ファイルに出力した場合の例を示します。 例 例1) 環境変数BSORT_MSGOUTにSTDOUTを指定した場合のエラーメッセージ、情報メッセージ、および処理結果の出力先は以下 のようになります。 PowerSORTの動作 警告メッセージ、およびエラー メッセージ 情報メッセージ 処理結果 正常終了 なし なし リダイレクトされたファイル 異常終了 リダイレクトされたファイル なし なし 例2) 環境変数BSORT_MSGOUTにSTDERRを指定した場合のエラーメッセージ、情報メッセージ、および処理結果の出力先は以下 のようになります。 PowerSORTの動作 警告メッセージ、およびエラー メッセージ 情報メッセージ 処理結果 正常終了 なし 画面(標準エラー出力) リダイレクトされたファイル 異常終了 画面(標準エラー出力) 画面(標準エラー出力) なし BSORT_MSGSTYLE={1 | 2} メッセージの出力形式を指定します。 指定値 意味 1 メッセージ本文だけを出力します。 以前のバージョンで出力されていた形式です。 2 メッセージ種別、日時、メッセージ番号、およびメッセージ本文を出力します。(省略値) BSORT_RDM_EMPTY={CONTINUE | ERROR} 0件のRDMファイルを入力した場合の処理方法を指定します。 指定値 意味 CONTINUE 格納レコード件数が0件のRDMファイルを入力した場合、0件のレコードを入力したもの として処理を継続します。この場合、格納レコード0件の出力ファイルが作成されます。 ERROR 格納レコード件数が件のRDMファイルを入力した場合、入力処理でエラーとします。こ の場合、出力ファイルは作成されません。(省略値) BSORT_SIGNEDZERO={EFFECT | IGNORE} 「+0」と「-0」を表現できるデータ形式において、「+0」と「-0」を同値と判定するか否かを指定します。 - 48 - 指定値 意味 EFFECT 「+0」と「-0」を同値と判定しません。 IGNORE 「+0」と「-0」を同値と判定します。(省略値) 参考 ・ この指定の影響を受ける「+0」と「-0」を表現できるデータ形式を以下に示します。 - 内部10進数 - 外部10進数 - 前置別符号付数字 - 後置別符号付数字 - 前置オーバパンチ符号付数字 - 後置オーバパンチ符号付数字 - テキストファイルのとき、キーフィールド、および選択フィールドの操作としてn(BSOPT_NUMERIC)を指定した場合、またはキー フィールドの操作としてN(BSOPT_CHARNUM)を指定した場合 ・ EFFECTを指定した場合、「+0」と「-0」の大小関係は、「+0」>「-0」となります。 ・ 以前のバージョンでは、EFFECTの指定で動作していました。 BSORT_SUMOVERCONT={ON | OFF} レコード集約処理でオーバフローが発生した場合に、それ以後のレコード集約処理の動作を指定します。 指定値 意味 ON オーバフローする直前まで集約されたレコードを出力し、それ以後の同値のキーフィー ルドを持つレコードに対しては、別レコードとしてレコード集約処理を継続します。以降、 オーバフローするたびに同様の処理を行います。 OFF オーバフローする直前まで集約されたレコードを出力し、それ以後の同値のキーフィー ルドを持つレコードに対しては、レコード集約処理を行いません。(省略値) BSORT_TMPDIR=一時ファイルフォルダ名[;一時ファイルフォルダ名...] PowerSORTのソート処理に必要となる一時ファイルを作成するフォルダ名を指定します。 メモリ内だけでは処理できない量のレコードをソート処理する場合、環境変数BSORT_TMPDIRで指定されたフォルダに一時ファイル を作成します。指定されたフォルダが存在しない場合は、エラーとなります。また、セミコロン( ; )で区切ることで複数のフォルダ名を指 定できます。ドライブの異なる複数のフォルダ名を指定すると、指定されたフォルダに一時ファイルが分散されるため、空きスペース不 足によるエラーを回避できることがあります。フォルダ名を複数指定する場合は、セミコロン( ; )の前後に空白などの不要な文字列を置 かないようにしてください。 なお、PowerSORTは以下の優先順位に従って、一時ファイルを作成するフォルダを決定します。 1. BSORT関数におけるBSRTFILE構造体のtmpfile_tbl、またはbsortexコマンドにおける-optionオプションのtmpdirオペランドで指 定されたフォルダ 2. 環境変数BSORT_TMPDIRで指定されたフォルダ 3. 環境変数TEMPで指定されたフォルダ 4. 環境変数TMPで指定されたフォルダ 5. Windowsシステムのフォルダ - 49 - BSORT_TOPYY=yy 2桁年号データ形式を使ってソートマージ処理する場合に、並替えのしきい値を設定します。 ここで指定したyy年が最小値となります。たとえば、BSORT_TOPYY=60とした場合、最小値が60、最大値が59となり、年号データを下 2桁で並べた場合は、1960年から2059年の順に大小関係が決定します。省略値は60です。キーフィールド、および選択フィールドの データ形式として2桁年号データ形式を指定した場合に有効となります。 BSORT_UCS2TYPE={LITTLE_ENDIAN | BIG_ENDIAN} Unicode UCS-2形式のバイトオーダーを指定します。 bsortexコマンド、およびbsortコマンドでUnicode UCS-2形式のデータ形式を指定した場合に有効です。 指定値 意味 LITTLE_ENDIAN Little endianとします。(省略値) BIG_ENDIAN Big endianとします。 BSORT_UNICODEBOM={ON | OFF} 入力ファイルがテキストファイルで、かつ入力ファイルのコード系がUnicode系(UCS-2形式、またはUTF-8形式)のとき、BOMの読み飛 ばしの有無を指定します。 入力ファイルにBOMが存在し、BOMを読み飛ばした場合、出力ファイルにBOMを付加します。複数の入力ファイルを指定している場 合は、先頭に指定した入力ファイルにBOMが存在し、BOMを読み飛ばした場合、出力ファイルにBOMを付加します。 指定値 意味 ON BOMを読み飛ばします。ただし、先頭がBOMでない場合は読み飛ばしません。入力ファ イルの先頭にBOMが存在する場合にレコードからBOMを除外することができます。(省 略値) OFF BOMを読み飛ばしません。 2.6 PowerSORTの入出力環境 PowerSORTの入出力の対象となるファイル種別について説明します。 2.6.1 対象となるファイル種別 PowerSORTでは、以下のファイルを使用できます。 テキストファイル 文字列データ、改行コード、およびEOFコードで構成されたシステムの標準ファイルシステム上の文書ファイルです。 バイナリファイル 文字列や16進データによる、長さが一定のレコード(固定長レコード形式)で構成されているシステムの標準ファイルシステム上のファ イルです。 富士通COBOL順編成、索引、相対ファイル 富士通のNetCOBOL、PowerCOBOL97、COBOL97、およびCOBOL85などでサポートしているファイル形式で、それぞれに固定長レ コード形式、可変長レコード形式があります。PowerSORTはBSAMに対応した富士通COBOL順編成ファイルにも対応しています。BSAM に対応した富士通COBOL順編成ファイルについては富士通COBOLファイルシステム(BSAM対応順ファイル)に関する留意事項を参 照してください。 Micro Focus COBOL順編成、索引、相対ファイル Micro Focus COBOLでサポートしているファイル形式で、それぞれに固定長レコード形式、可変長レコード形式があります。 - 50 - Btrieveファイル Btrieveで取り扱うファイルで、固定長レコード形式と可変長レコード形式があります。 RDMファイル PowerRW+でサポートしているファイル形式で、固定長レコード形式で構成されているファイルです。 2.6.2 入力と出力のファイル種別の組合せについて 入力と出力のファイル種別は、以下の組合せの範囲で異なるファイル種別を指定できます。 レコード形式は、入力ファイルのレコード形式が出力ファイルのレコード形式となり、変更することはできません。 入力ファイル種別 出力ファイル種別 テキストファイル テキストファイル バイナリファイル バイナリファイル 富士通COBOL順編成、索引、相対ファイル Micro Focus COBOL順編成、相対ファイル Btrieveファイル RDMファイル 上記以外のファイル バイナリファイル(入力ファイルのレコード形式が固定長レ コード形式の場合のみ) 富士通COBOL順編成、索引、相対ファイル Micro Focus COBOL順編成、相対ファイル Btrieveファイル RDMファイル(入力ファイルのレコード形式が固定長レコー ド形式の場合のみ) 注意 ・ データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイルに指定することはできません。 ・ 出力ファイルにMicro Focus COBOLファイルシステムの索引ファイルを指定することはできません。 ・ Btrieveファイルは、bsortコマンド、およびbsortexコマンドでは出力ファイルとして指定することはできません。 ・ PowerSORTで扱うことのできる最大ファイルサイズは、各ファイルシステムの制限値までとなっています。各ファイルシステムの制 限値については、各ファイルシステムのマニュアルを参照してください。 2.7 フィールドとデータ形式 ここでは、PowerSORTを使用するためのフィールドの種類、フィールドの指定方法、およびそれぞれのフィールドに指定できるデータ 形式について説明します。 2.7.1 フィールドの種類 フィールドの種類には、ソート機能、およびマージ機能で使用するキーフィールド、レコード集約機能で使用する集約フィールド、レ コード選択機能で使用する選択フィールド(被比較フィールド、および比較フィールド)、およびレコード再編成機能で使用する再編成 フィールドがあります。 キーフィールド キーフィールドは、レコードの大小関係を決めるために使用するレコード中のフィールドです。フィールドの位置、長さ、データ形式と 操作方法の情報からなっています。 - 51 - 集約フィールド 集約フィールドは、レコード集約機能で使用する、数値を加算するためのフィールドです。集約フィールドは、フィールドの位置、長さ、 データ形式、および出力形式の情報からなっています。 選択フィールド 選択フィールドは、レコード選択機能で使用するフィールドです。選択フィールドには、被比較フィールド、および比較フィールドがあり ます。 レコード中の2つのフィールドを比較する場合は、先に指定したフィールドを被比較フィールド、後に指定したフィールドを比較フィール ドといいます。レコード中のフィールドと自己規定値を比較する場合は、先に指定したフィールドを被比較フィールドといいます。 被比較フィールドは、レコード中のフィールドの位置、長さ、データ形式と操作方法の情報からなっています。比較フィールドは、レコー ド中のフィールドの位置、長さとデータ形式の情報からなっています。自己規定値は、10進数の定数、または16進数や文字列で表さ れる文字列定数です。 再編成フィールド 再編成フィールドは、レコード再編成機能で指定する入力、または出力レコード中のフィールドです。レコード中のフィールドの位置と 長さの情報からなっています。 再編成フィールドには、レコード再編成機能で使用する10進数の定数、または16進数や文字列で表される文字列定数を自己規定値 として指定できます。レコード再編成機能では、任意の数字や文字をレコードに埋め込むときに自己規定値を使用します。 2.7.2 フィールドの指定方法 フィールドの指定方法には、固定フィールド指定、および浮動フィールド指定があります。 固定フィールド指定 固定フィールド指定は、レコードの先頭からのバイト位置によって区分されるフィールドの指定方法です。 フィールドの位置は全レコードで共通です。 浮動フィールド指定 浮動フィールド指定は、フィールド分離文字によって区分されるフィールドの指定方法です。 テキストファイルのときに指定できます。フィールド分離文字の位置によってフィールドの位置が決定されるため、レコードごとにフィー ルドの位置は異なります。浮動フィールド指定には、以下に示す3つの形式があります。 ・ テキストファイル浮動フィールド指定の形式 任意のフィールド分離文字を指定可能で、フィールドを囲むダブルクォーテーションを考慮しません。 ・ テキストファイルCSV形式 コンマをフィールド分離文字とし、フィールドを囲むダブルクォーテーションを考慮します。 ・ テキストファイルTSV形式 タブをフィールド分離文字とし、フィールドを囲むダブルクォーテーションを考慮します。 注意 ・ テキストファイル浮動フィールド指定の注意事項 - フィールドの先頭のダブルクォーテーション( " )も、フィールドを囲むダブルクォーテーション( " )として扱いません。 - キーフィールド、集約フィールド、選択フィールド、および再編成フィールドに、フィールド分離文字、およびレコード分離文字 を含むことはできません。 - フィールド分離文字の指定を省略した場合は、空白とタブがフィールド分離文字となります。フィールド分離文字の指定を省略 し、空白が連続している場合は、最初の空白がフィールド分離文字となり、残りの空白はフィールドの一部とみなして動作しま す。 例) 空白が連続している場合(フィールド分離文字の指定を省略) - 52 - field1□□□field2□field3 2番目のフィールドは「□□field2」となります。なお、「□」は空白を意味します。 - フィールド分離文字を指定した場合は、フィールド分離文字が連続すると空フィールドが存在するとみなして処理します。 例) 2番目のフィールドが空フィールドの場合(「;」をフィールド分離文字として指定) field1;;field3 - 自己規定値にフィールド分離文字、およびレコード分離文字を含むことはできません。 ・ テキストファイルCSV形式の注意事項 - ダブルクォーテーション( " )で囲まれたフィールド中にレコード分離文字、およびフィールド分離文字(コンマ)が含まれている 場合、フィールドのデータとして扱います。なお、ダブルクォーテーション( " )で囲まれているとは、先頭がダブルクォーテーション ( " )で始まるフィールドで、囲みの終わりを表すダブルクォーテーション( " )までの範囲を指します。 例1) 2番目のフィールドがダブルクォーテーションで囲まれているレコード field1,"field2",field3 2番目のフィールドの値は「field2」となります。 例2) 2番目のフィールドの途中までがダブルクォーテーションで囲まれているレコード field1,"field2"data,field3 2番目のフィールドの値は「field2data」となります。 例3) 2番目のフィールドがダブルクォーテーションで囲まれているレコード field1,"field2,field2",field3 2番目のフィールドの値は「field2,field2」となります。 - ダブルクォーテーション( " )で囲まれたフィールド内のダブルクォーテーション( " )は2つ連続している必要があります。 例) 2番目のフィールドにダブルクォーテーションを含む場合 field1,"field2""field2",field3 2番目のフィールドの値は「field2"field2」となります。 - フィールド分離文字(コンマ)が連続した場合は、空フィールドが存在するとみなして処理します。また、ダブルクォーテーション ( " )が2つ連続するだけのフィールドは、空フィールドとして処理します。 例1) 2番目のフィールドが空フィールドの場合(ダブルクォーテーションで囲まれていない) field1,,field3 例2) 2番目のフィールドが空フィールドの場合(ダブルクォーテーションで囲まれている) field1,"",field3 - 自己規定値で指定したフィールド分離文字(コンマ)、レコード分離文字、およびダブルクォーテーション( " )は、フィールドの データとして扱います。 例1) 自己規定値にフィールド分離文字(コンマ)を含む場合 自己規定値: self,char ↓ 実際のデータ: "self,char" - 53 - 例2) 自己規定値にダブルクォーテーション( " )を含む場合 自己規定値: self"char ↓ 実際のデータ: "self""char" ・ テキストファイルTSV形式の注意事項(各注意事項に関する例はテキストファイルCSV形式を参照してください) - ダブルクォーテーション( " )で囲まれたフィールド中にレコード分離文字、およびフィールド分離文字(タブ)が含まれている場 合、フィールドのデータとして扱います。なお、ダブルクォーテーション( " )で囲まれているとは、先頭がダブルクォーテーション ( " )で始まるフィールドで、囲みの終わりを表すダブルクォーテーション( " )までの範囲を指します。 - ダブルクォーテーション( " )で囲まれたフィールド内のダブルクォーテーション( " )は2つ連続している必要があります。 - フィールド分離文字(タブ)が連続した場合は、空フィールドが存在するとみなして処理します。また、ダブルクォーテーション( " ) が2つ連続するだけのフィールドは、空フィールドとして処理します。 - 自己規定値で指定したフィールド分離文字(タブ)、レコード分離文字、およびダブルクォーテーション( " )は、フィールドのデー タとして扱います。 2.7.3 データ形式 ここでは、データ形式の概要を示します。 データ形式には、以下の3つの種類があり、それぞれの種類ごとに型があります。 ・ 文字 ・ 数値 ・ 数字 2.7.3.1 文字 文字の型には、以下の7つの型があります。 ・ ASCIIコード ・ EBCDICコード ・ シフトJISコード ・ JEFコード ・ Unicode ・ 文字形式2桁年号 ・ 照合順序変更 ASCIIコード 文字を8ビット透過なコード順に比較します。 複数バイト文字が混在している場合は、オプションを指定することによって文字ごとに比較します。 ASCIIコード、シフトJISコード、および8単位カナコード(半角カナ)を処理できます。漢字ソートマージ機能の漢字フィールド、およびふ りがなフィールドとしても指定可能です。 入力ファイルのコード系がEBCDICコード系の場合、ASCIIコード順に並べます。 EBCDICコード EBCDIC文字を8ビット透過なコード順に比較します。 漢字ソートマージ機能のふりがなフィールドとしても指定可能です。 入力ファイルのコード系がASCIIコード系の場合、EBCDICコード順に並べます。 - 54 - シフトJISコード シフトJISコードを文字ごとに比較します。 漢字ソートマージ機能の漢字フィールド、およびふりがなフィールドとしても指定可能です。 JEFコード 富士通の汎用計算機で用いられている日本語コードです。 文字を16ビット透過なコード順に並べます。 漢字ソートマージ機能の漢字フィールド、およびふりがなフィールドとしても指定可能です。 Unicode 世界中の文字を統一的に記述できる国際的な文字コードです。 PowerSORTでは、以下の2つの形式をサポートしています。 ・ UCS-2形式 1文字を2バイトで表現する形式です。 UCS-2、およびUTF-16を処理できます。 ・ UTF-8形式 1文字を1~6バイトの可変長のバイトで表現する形式です。 PowerSORTでは、1~3バイトまでをサポートしています。 文字形式2桁年号 環境変数BSORT_TOPYYの指定値に従って、2桁の数字を2桁年号として比較します。 照合順序変更 与えられた照合順序の情報に従って、1バイトの文字を他の文字に置き換えて比較します。 2.7.3.2 数値 数値の型には、以下の16の型があります。 ・ 符号なし2進数 ・ 固定小数点2進数 ・ 8086形式固定小数点2進数 ・ システム依存形式固定小数点2進数 ・ 符号なし固定小数点2進数 ・ 8086形式符号なし固定小数点2進数 ・ システム依存形式符号なし固定小数点2進数 ・ IEEE形式浮動小数点2進数 ・ M形式浮動小数点2進数 ・ 内部10進数 ・ 符号なし内部10進数 ・ 外部10進数 ・ 符号なし外部10進数 ・ 外部10進形式2桁年号 ・ 内部10進形式2桁年号 ・ 10進形式2桁年号 - 55 - 符号なし2進数 1バイト中の任意のビットを取り出してキーフィールド、被比較フィールド、または比較フィールドの比較値として使用します。 ビットの取り出しにはマスク値を使用します。マスク値とフィールドの値の論理積を比較値にします。 固定小数点2進数 先頭1ビットを符号とした固定小数点2進数のフィールドです。 固定小数点2進数の形式は、8086系MPUで使用されているLittle endianという形式と、Big endianの形式があります。単に固定小数点 2進数という場合、Big endianの形式です。 8086形式固定小数点2進数 8086系MPUで使用されている固定小数点2進数のフィールドです。 この形式はLittle endianという呼び名で知られています。 システム依存形式固定小数点2進数 システムの標準がBig endianの場合、固定小数点2進数を意味します。 システムの標準がLittle endianの場合、8086形式固定小数点2進数を意味します。 符号なし固定小数点2進数 符号フラグをもたない固定小数点2進数です。 8086系MPUで使用されているLittle endianという形式と、Big endianの形式があります。単に符号なし固定小数点2進数という場合、Big endianの形式です。 8086形式符号なし固定小数点2進数 8086系MPUで使用されている符号なし固定小数点2進数のフィールドです。 この形式はLittle endianという呼び名で知られています。 システム依存形式符号なし固定小数点2進数 システムの標準がBig endianの場合、符号なし固定小数点2進数を意味します。 システムの標準がLittle endianの場合、8086形式符号なし固定小数点2進数を意味します。 IEEE形式浮動小数点2進数 指数部と仮数部で表現され、符号は指数部の先頭1ビットに設定される2進数の表現形式です。 M形式浮動小数点2進数 富士通の汎用計算機で用いられている浮動小数点2進数です。 指数部と仮数部で表現され、符号は指数部の先頭1ビットに設定される2進数の表現形式です。 内部10進数 1バイトに2桁の10進数を格納した10進数の表現形式です。 xx xx … xx xS x:0x0~0x9 S:[正の場合]0xa、0xc、0xe、0xf [負の場合]0xb、0xd (注) 注) 4ビットで表す符号の位置(S)に、正、または負のコード以外が現れた場合、正の符号として扱います。 符号なし内部10進数 PowerSORTでは、以下の2つの形式をサポートしています。 - 56 - ・ 符号なし内部10進数(符号部あり) 1バイトに2桁の10進数を格納し、最終4ビットで符号なしを表した10進数の表現形式です。 xx … xx xx xS x:0x0~0x9 S:0xf (注) 注) 最終4ビットの値の正当性はチェックしません。 ・ 符号なし内部10進数(符号部なし) 1バイトに2桁の10進数を格納した符号部をもたない10進数の表現形式です。 xx … xx xx xx x:0x0~0x9 外部10進数 1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現形式です。 3x 3x … 3x Sx 3:0x3 x:0x0~0x9 S:[正の場合]0x4 [負の場合]0x5 (注) 注) 4ビットで表す符号の位置(S)に、正、または負のコード以外が現れた場合、正の符号として扱います。 符号なし外部10進数 1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した符号部をもたない10進数の表現形式です。 3x 3x … 3x 3x 3:0x3 x:0x0~0x9 外部10進形式2桁年号 環境変数BSORT_TOPYYの指定値に従って、2バイトの外部10進数を2桁年号として比較します。 内部10進形式2桁年号 環境変数BSORT_TOPYYの指定値に従って、2バイトの内部10進数を2桁年号として比較します。 10進形式2桁年号 環境変数BSORT_TOPYYの指定値に従って、1バイトの符号なし内部10進数を2桁年号として比較します。 注意 ここで記載しているデータ形式の図は、入力ファイルのコード系がASCIIコード系(富士通COBOL形式)の場合の形式です。 2.7.3.3 数字 数字の型には、以下の5つのデータ形式があります。 - 57 - ・ 符号なし数字 ・ 前置別符号付数字 ・ 後置別符号付数字 ・ 前置オーバパンチ符号付数字 ・ 後置オーバパンチ符号付数字 符号なし数字 符号なし外部10進数と同じ形式です。 前置別符号付数字 先頭の1バイトに符号部をもった、1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現 形式です。 SS 3x … 3x 3x 3:0x3 x:0x0~0x9 SS:[正の場合]0x2b [負の場合]0x2d (注) 注) 8ビットで表す符号の位置(SS)に、正、または負のコード以外が現れた場合、正の符号として扱います。 後置別符号付数字 最後の1バイトに符号部をもった、1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現 形式です。 3x 3x … 3x SS 3:0x3 x:0x0~0x9 SS:[正の場合]0x2b [負の場合]0x2d (注) 注) 8ビットで表す符号の位置(SS)に、正、または負のコード以外が現れた場合、正の符号として扱います。 前置オーバパンチ符号付数字 1バイトに1桁の10進数を表示可能形式(ASCIIコードの数字:0x30~0x39)で格納した10進数の表現形式です。 先頭の1バイトには、符号と数字を格納します。 Sx 3x … 3x 3x 3:0x3 x:0x0~0x9 S:[正の場合]0x4 [負の場合]0x5 (注) 注) 4ビットで表す符号の位置(S)に、正、または負のコード以外が現れた場合、正の符号として扱います。 後置オーバパンチ符号付数字 外部10進数と同じ形式です。 - 58 - 注意 ここで記載しているデータ形式の図は、入力ファイルのコード系がASCIIコード系(富士通COBOL形式)の場合の形式です。 2.7.4 各フィールドで指定可能なデータ形式 ここでは、各フィールドに指定できるデータ形式とその長さについて説明します。 ・ キーフィールドに指定可能なデータ形式 ・ 集約フィールドに指定可能なデータ形式 ・ 選択フィールドに指定可能なデータ形式 - 被比較フィールドと比較フィールドに指定可能なデータ形式 - 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ - 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ ・ 再編成フィールドの自己規定値に指定可能なデータ形式 2.7.4.1 キーフィールドに指定可能なデータ形式 以下に、キーフィールドで指定できるデータ形式とその長さを示します。 表中のtypは、bsortコマンド、bsortexコマンド、およびPowerSORT OCXで指定する場合に使用し、定義値は、BSORT関数で使用しま す。 表2.2 バイナリファイルの場合 種類 文字 数値 型 typ 定義値 長さ(バイト) ASCIIコード asc BSKEY_ASC 1~レコード長(注1) EBCDICコード(注2) ebc BSKEY_EBC 1~レコード長(注1) シフトJISコード(注3) sji BSKEY_SJI 1~レコード長(注1) JEFコード(注4) jef BSKEY_JEF 2~レコード長(注1) (2の倍数) Unicode UCS-2形式(注5) (システム標準のバイトオーダー) uc2 BSKEY_UCS2 2~レコード長(注1) (2の倍数) Big endian ― BSKEY_UCS2 B 2~レコード長(注1) (2の倍数) Little endian ― BSKEY_UCS2 L 2~レコード長(注1) (2の倍数) Unicode UTF-8形式(注5) ut8 BSKEY_UTF8 1~レコード長(注1) 文字形式2桁年号(注6) yyc BSKEY_YYC 2、または4(注7) 照合順序変更(注8) col BSKEY_COL 1~レコード長(注1) 符号なし2進数 bit BSKEY_BIT 1~8(ビット) 固定小数点2進数 fbi BSKEY_FBI 1~256 符号なし固定小数点2進数 ufb BSKEY_UFB 1~256 fbl BSKEY_FBL8 6 1~256 ufl BSKEY_UFB8 6 1~256 fbm BSKEY_FBIM 1~256 8086形式固定小数点2進数 8086形式符号なし固定小数点2進数 システム依存形式固定小数点2進数 - 59 - 種類 型 システム依存形式符号なし固定小数点2進数 数字 定義値 typ 長さ(バイト) ufm BSKEY_UFB M 1~256 IEEE形式浮動小数点2進数 ifl BSKEY_IFL 1~256 M形式浮動小数点2進数 mfl BSKEY_MFL 1~256 内部10進数 pdl BSKEY_PDL 1~256 符号なし内部10進数(符号部あり) (注8) pdf BSKEY_PDF 1~256 符号なし内部10進数(符号部なし) pdu BSKEY_PDU 1~256 外部10進数 zdl BSKEY_ZDL 1~256 符号なし外部10進数 zdu BSKEY_ZDU 1~256 外部10進形式2桁年号(注6) yyz BSKEY_YYZ 2 内部10進形式2桁年号(注6) yyp BSKEY_YYP 2 10進形式2桁年号(注6) yyd BSKEY_YYD 1 符号なし数字 azu BSKEY_AZU 1~256 前置別符号付数字 als BSKEY_ALS 2~256 後置別符号付数字 ats BSKEY_ATS 2~256 前置オーバパンチ符号付数字 alo BSKEY_ALO 1~256 後置オーバパンチ符号付数字 ato BSKEY_ATO 1~256 表2.3 テキストファイルの場合 種類 文字 型 定義値 typ 長さ(バイト) ASCIIコード(注3) asc BSKEY_ASC 1~レコード長(注1) EBCDICコード(注3) ebc BSKEY_EBC 1~レコード長(注1) シフトJISコード(注3) sji BSKEY_SJI 1~レコード長(注1) Unicode UCS-2形式(注9) (システム標準のバイトオーダー) uc2 BSKEY_UCS2 2~レコード長(注1) (2の倍数) Big endian ― BSKEY_UCS2 B 2~レコード長(注1) (2の倍数) Little endian ― BSKEY_UCS2 L 2~レコード長(注1) (2の倍数) Unicode UTF-8形式(注10) ut8 BSKEY_UTF8 1~レコード長(注1) 文字形式2桁年号(注6) yyc BSKEY_YYC 2、または4(注7) 照合順序変更(注8) col BSKEY_COL 1~レコード長(注1) 注1) 入力ファイルのレコード再編成機能を指定した場合は、入力ファイルのレコード再編成後のレコード長まで指定できます。 注2) 入力ファイルのコード系がASCIIコード系、またはEBCDICコード系の場合に指定できます。 注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。 注4) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。 注5) 入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。 注6) 環境変数BSORT_TOPYYで指定した値に従って年号処理を行います。 注7) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合、4バイトとなります。 注8) PowerSORT OCX使用時は指定できません。 注9) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。 - 60 - 注10) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。 2.7.4.2 集約フィールドに指定可能なデータ形式 以下に、集約フィールドで指定できるデータ形式とその長さを示します。 表中のtypは、bsortコマンド、bsortexコマンド、およびPowerSORT OCXで指定する場合に使用し、定義値は、BSORT関数で使用しま す。 表2.4 バイナリファイルの場合 種類 数値 型 長さ(バイト) 固定小数点2進数 fbi BSKEY_FBI 1~8 符号なし固定小数点2進数 ufb BSKEY_UFB 1~8 8086形式固定小数点2進数 fbl BSKEY_FBI86 1~8 ufl BSKEY_UFB8 6 1~8 fbm BSKEY_FBIM 1~8 ufm BSKEY_UFB M 1~8 内部10進数 pdl BSKEY_PDL 1~16 符号なし内部10進数(符号部あり) (注1) pdf BSKEY_PDF 1~16 符号なし内部10進数(符号部なし) pdu BSKEY_PDU 1~16 外部10進数 zdl BSKEY_ZDL 1~18 符号なし外部10進数 zdu BSKEY_ZDU 1~18 符号なし数字 azu ― 1~18 前置別符号付数字 als ― 2~18 後置別符号付数字 ats ― 2~18 前置オーバパンチ符号付数字 alo ― 1~18 後置オーバパンチ符号付数字 ato ― 1~18 8086形式符号なし固定小数点2進数 システム依存形式固定小数点2進数 システム依存形式符号なし固定小数点2進数 数字 (注2) 定義値 typ 表2.5 テキストファイルの場合 種類 文字 型 定義値 typ 長さ(バイト) ASCIIコード(注3) asc BSKEY_ASC 1~(注4) Unicode UCS-2形式(注5) (システム標準のバイトオーダー) uc2 BSKEY_UCS2 2~(注4) (2の倍数) Big endian ― BSKEY_UCS2 B 2~256 (2の倍数) Little endian ― BSKEY_UCS2 L 2~256 (2の倍数) ut8 BSKEY_UTF8 1~(注4) Unicode UTF-8形式(注6) 注1) PowerSORT OCX使用時は指定できません。 注2) bsortexコマンド使用時に指定できます。 注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。 注4) bsortコマンド、PowerSORT OCX、およびBSORT関数使用時は256バイトまで、bsortexコマンド使用時はレコード長まで指定でき ます。ただし、入力ファイルのレコード再編成機能を指定した場合は、入力ファイルのレコード再編成後のレコード長まで指定できま す。 注5) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。 - 61 - 注6) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。 2.7.4.3 選択フィールドに指定可能なデータ形式 レコード選択機能で指定する選択フィールドは、被比較フィールド、比較フィールドまたは自己規定値、および比較演算子からなって います。 ここでは、被比較フィールド、および比較フィールドに指定可能なデータ形式と、指定可能なデータ形式の組合せについて示します。 ・ 被比較フィールドと比較フィールドに指定可能なデータ形式 ・ 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ ・ 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ 被比較フィールドと比較フィールドに指定可能なデータ形式 以下に、被比較フィールドと比較フィールドで指定できるデータ形式とその長さを示します。 表中のtypは、bsortコマンド、bsortexコマンド、およびPowerSORT OCXで指定する場合に使用し、定義値は、BSORT関数で使用しま す。 表2.6 バイナリファイルの場合 種類 文字 数値 データ形式 定義値 typ 長さ(バイト) ASCIIコード(注1) asc BSKEY_ASC 1~256 EBCDICコード(注2) ebc BSKEY_EBC 1~256 シフトJISコード(注3) sji BSKEY_SJI 1~256 Unicode UCS-2形式(注1) (システム標準のバイトオーダー) uc2 BSKEY_UCS2 2~256 (2の倍数) Big endian ― BSKEY_UCS2 B 2~256 (2の倍数) Little endian ― BSKEY_UCS2 L 2~256 (2の倍数) Unicode UTF-8形式(注1) ut8 BSKEY_UTF8 1~256 文字形式2桁年号(注4) yyc ― 2、または4(注5) 照合順序変更(注6) col BSKEY_COL 1~256 符号なし2進数 bit BSKEY_BIT 1~8(ビット) 固定小数点2進数 fbi BSKEY_FBI 1~256 符号なし固定小数点2進数 ufb BSKEY_UFB 1~256 fbl BSKEY_FBI8 6 1~256 ufl BSKEY_UFB8 6 1~256 fbm BSKEY_FBIM 1~256 ufm BSKEY_UFB M 1~256 内部10進数 pdl BSKEY_PDL 1~256 符号なし内部10進数(符号部あり) (注6) pdf BSKEY_PDF 1~256 符号なし内部10進数(符号部なし) pdu BSKEY_PDU 1~256 外部10進数 zdl BSKEY_ZDL 1~256 符号なし外部10進数 zdu BSKEY_ZDU 1~256 内部10進形式2桁年号(注4) yyp ― 2 8086形式固定小数点2進数 8086形式符号なし固定小数点2進数 システム依存形式固定小数点2進数 システム依存形式符号なし固定小数点2進数 - 62 - 種類 数字 データ形式 定義値 typ 長さ(バイト) 外部10進形式2桁年号(注4) yyz ― 2 10進形式2桁年号(注4) yyd ― 1 符号なし数字 azu BSKEY_AZU 1~256 前置別符号付数字 als BSKEY_ALS 2~256 後置別符号付数字 ats BSKEY_ATS 2~256 前置オーバパンチ符号付数字 alo BSKEY_ALO 1~256 後置オーバパンチ符号付数字 ato BSKEY_ATO 1~256 表2.7 テキストファイルの場合 種類 文字 データ形式 定義値 typ 長さ(バイト) ASCIIコード(注3) asc BSKEY_ASC 1~256 シフトJISコード(注3) sji BSKEY_SJI 1~256 Unicode UCS-2形式(注7) (システム標準のバイトオーダー) uc2 BSKEY_UCS2 2~256 (2の倍数) Big endian ― BSKEY_UCS2 B 2~256 (2の倍数) Little endian ― BSKEY_UCS2 L 2~256 (2の倍数) Unicode UTF-8形式(注8) ut8 BSKEY_UTF8 1~256 文字形式2桁年号(注4) yyc ― 2、または4(注5) 照合順序変更(注6) col BSKEY_COL 1~256 注1) 入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。 注2) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。 注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。 注4) bsortexコマンド使用時に指定できます。環境変数BSORT_TOPYYで指定した値に従って年号処理を行います。 注5) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合、4バイトになります。 注6) PowerSORT OCX使用時は指定できません。 注7) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。 注8) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。 被比較フィールドと比較フィールドに指定可能なデータ形式の組合せ 以下に、被比較フィールドと比較フィールドで指定できるデータ形式の組合せを示します。 表2.8 バイナリファイルの場合 種類 文字 被比較フィールドのデータ形式 比較フィールドのデータ形式 ASCIIコード ASCIIコード EBCDICコード EBCDICコード シフトJISコード シフトJISコード Unicode UCS-2形式(システム標準のバイトオー ダー) Unicode UCS-2形式(システム標準のバイトオー ダー) Unicode UCS-2形式(Big endian) Unicode UCS-2形式(Big endian) Unicode UCS-2形式(Little endian) Unicode UCS-2形式(Little endian) - 63 - 種類 数値 被比較フィールドのデータ形式 比較フィールドのデータ形式 Unicode UTF-8形式 Unicode UTF-8形式 文字形式2桁年号 文字形式2桁年号 内部10進形式2桁年号 外部10進形式2桁年号 10進形式2桁年号 照合順序変更 照合順序変更 符号なし2進数 符号なし2進数 固定小数点2進数 固定小数点2進数 8086形式固定小数点2進数 システム依存形式固定小数点2進数 符号なし固定小数点2進数 符号なし固定小数点2進数 8086形式符号なし固定小数点2進数 システム依存形式符号なし固定小数点2進数 8086形式固定小数点2進数 固定小数点2進数 8086形式固定小数点2進数 システム依存形式固定小数点2進数 8086形式符号なし固定小数点2進数 符号なし固定小数点2進数、 8086形式符号なし固定小数点2進数、 システム依存形式符号なし固定小数点2進数 システム依存形式固定小数点2進数 固定小数点2進数 8086形式固定小数点2進数 システム依存形式固定小数点2進数 システム依存形式符号なし固定小数点2進数 符号なし固定小数点2進数 8086形式符号なし固定小数点2進数 システム依存形式符号なし固定小数点2進数 内部10進数 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) 外部10進数 符号なし外部10進数 符号なし内部10進数(符号部あり) 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) 外部10進数 符号なし外部10進数 符号なし内部10進数(符号部なし) 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) 外部10進数 符号なし外部10進数 外部10進数 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) 外部10進数 符号なし外部10進数 符号なし外部10進数 内部10進数 符号なし内部10進数(符号部あり) 符号なし内部10進数(符号部なし) - 64 - 種類 被比較フィールドのデータ形式 比較フィールドのデータ形式 外部10進数 符号なし外部10進数 数字 内部10進形式2桁年号 文字形式2桁年号 内部10進形式2桁年号 外部10進形式2桁年号 10進形式2桁年号 外部10進形式2桁年号 文字形式2桁年号 内部10進形式2桁年号 外部10進形式2桁年号 10進形式2桁年号 10進形式2桁年号 文字形式2桁年号 内部10進形式2桁年号 外部10進形式2桁年号 10進形式2桁年号 符号なし数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 前置別符号付数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 後置別符号付数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 前置オーバパンチ符号付数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 後置オーバパンチ符号付数字 符号なし数字 前置別符号付数字 後置別符号付数字 前置オーバパンチ符号付数字 後置オーバパンチ符号付数字 表2.9 テキストファイルの場合 種類 文字 被比較フィールドのデータ形式 比較フィールドのデータ形式 ASCIIコード ASCIIコード シフトJISコード シフトJISコード Unicode UCS-2形式(システム標準のバイトオー ダー) Unicode UCS-2形式(システム標準のバイトオー ダー) Unicode UCS-2形式(Big endian) Unicode UCS-2形式(Big endian) Unicode UCS-2形式(Little endian) Unicode UCS-2形式(Little endian) Unicode UTF-8形式 Unicode UTF-8形式 - 65 - 種類 被比較フィールドのデータ形式 比較フィールドのデータ形式 文字形式2桁年号 文字形式2桁年号 照合順序変更 照合順序変更 被比較フィールドと自己規定値に指定可能なデータ形式の組合せ 以下に、被比較フィールドと自己規定値で指定できるデータ形式の組合せを示します。 表2.10 バイナリファイルの場合 被比較フィールドのデータ形式 種類 文字 数値 数字 自己規定値 型 ASCIIコード 文字列、16進数 EBCDICコード 文字列、16進数 シフトJISコード 文字列 Unicode UCS-2形式 文字列、16進数 Unicode UTF-8形式 文字列、16進数 文字形式2桁年号 文字列、16進数、10進数 照合順序変更 文字列、16進数 符号なし2進数 10進数 固定小数点2進数 10進数 符号なし固定小数点2進数 10進数 8086形式固定小数点2進数 10進数 8086形式符号なし固定小数点2進数 10進数 システム依存形式固定小数点2進数 10進数 システム依存形式符号なし固定小数点2進数 10進数 内部10進数 10進数 符号なし内部10進数(符号部あり) 10進数 符号なし内部10進数(符号部なし) 10進数 外部10進数 10進数 符号なし外部10進数 10進数 内部10進形式2桁年号 10進数 外部10進形式2桁年号 10進数 10進形式2桁年号 10進数 符号なし数字 10進数 前置別符号付数字 10進数 後置別符号付数字 10進数 前置オーバパンチ符号付数字 10進数 後置オーバパンチ符号付数字 10進数 表2.11 テキストファイルの場合 被比較フィールドのデータ形式 種類 文字 自己規定値 型 文字列、16進数 ASCIIコード - 66 - 被比較フィールドのデータ形式 種類 自己規定値 型 シフトJISコード 文字列 Unicode UCS-2形式 文字列、16進数 Unicode UTF-8形式 文字列、16進数 文字形式2桁年号 文字列、16進数、10進数 照合順序変更 文字列、16進数 2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式 以下に、再編成フィールドの自己規定値で指定できるデータ形式とその長さを示します。 表中のtypは、bsortコマンド、bsortexコマンド、およびPowerSORT OCXで指定する場合に使用します。 表2.12 バイナリファイルの場合 自己規定値 文字列 16進数 10進数 型 typ 長さ(バイト) ASCIIコード(注1) asc 1~256 EBCDICコード(注2) ebc 1~256 シフトJISコード(注3) sji 1~256 Unicode UCS-2形式(注1) uc2 2~256 (2の倍数) Unicode UTF-8形式(注1) ut8 1~256 ASCIIコード(注1) asc 1~256 EBCDICコード(注2) ebc 1~256 Unicode UCS-2形式(注1) uc2 2~256 (2の倍数) Unicode UTF-8形式(注1) ut8 1~256 固定小数点2進数 fbi 1~8 符号なし固定小数点2進数 ufb 1~8 8086形式固定小数点2進数 fbl 1~8 8086形式符号なし固定小数点2進数 ufl 1~8 システム依存形式固定小数点2進数 fbm 1~8 システム依存形式符号なし固定小数点2進数 ufm 1~8 内部10進数 pdl 1~16 符号なし内部10進数(符号部あり)(注4) pdf 1~16 符号なし内部10進数(符号部なし) pdu 1~16 外部10進数 zdl 1~18 符号なし外部10進数 zdu 1~18 符号なし数字 azu 1~18 前置別符号付数字 als 2~18 後置別符号付数字 ats 2~18 前置オーバパンチ符号付数字 alo 1~18 後置オーバパンチ符号付数字 ato 1~18 - 67 - 表2.13 テキストファイルの場合 自己規定値 文字列 16進数 型 typ 長さ(バイト) ASCIIコード(注3) asc 1~256 シフトJISコード(注3) sji 1~256 Unicode UCS-2形式(注5) uc2 2~256 (2の倍数) Unicode UTF-8形式(注6) ut8 1~256 ASCIIコード(注3) asc 1~256 Unicode UCS-2形式(注5) uc2 2~256 (2の倍数) Unicode UTF-8形式(注6) ut8 1~256 注1) 入力ファイルのコード系がEBCDICコード系以外の場合に指定できます。 注2) 入力ファイルのコード系がEBCDICコード系の場合に指定できます。 注3) 入力ファイルのコード系がASCIIコード系の場合に指定できます。 注4) PowerSORT OCX使用時は指定できません。 注5) 入力ファイルのコード系がUnicode系(UCS-2形式)の場合に指定できます。 注6) 入力ファイルのコード系がUnicode系(UTF-8形式)の場合に指定できます。 2.8 環境設定 ここでは、PowerSORTが使用する作業域(メモリ)、および一時ファイル量の見積もりについて説明します。 2.8.1 PowerSORTが使用する作業域(メモリ)の見積もり PowerSORTは、指定された範囲内の作業域を使用して処理を行ないます。 指定が省略された場合は、次のように作業域の大きさを決定します。 ・ 入力がファイルの場合は、PowerSORTが適切な作業域を計算して使用します。 ・ 入力がファイル以外の場合、または標準入力の場合は、8MBの作業域を使用します。 割り当てた作業域内にすべての入力レコードが読み込めた場合、一時ファイルを使用せずに作業域内だけでソート処理を完了します (これをインコアソートといいます)。インコアソートは、一時ファイルへの入出力がないことなどから一般に処理時間が短くなります。この ため、入力レコードの量に合わせて適切な作業域の大きさを指定することで、処理時間の短縮が可能です。ただし、作業域の大きさ の指定には次のような注意が必要です。 ・ インコアソートを行うためには、入力レコードの全体量に対して少し多めの作業域(1.3倍程度。ただし、キーの種類、使用する機能 などにより大きくなる場合があります)を指定します。 ・ 使用可能な物理メモリ量を超えて作業域を指定すると、性能が悪化することがあるため、使用可能な物理メモリ量を超えないように 指定します。 参照 ・ 環境変数BSORT_MEMSIZE ・ メモリサイズオプション(-y) ・ 実行環境オプション(-option)のmemsizeオペランド ・ bsrtopen関数におけるBSRTPRIM構造体のmemory_size - 68 - 2.8.2 PowerSORTが使用する一時ファイル量の見積もり PowerSORTは、ソート処理を行う際に一時ファイルを作成します。 作成する一時ファイル量の概算式を以下に示します。なお、PowerSORTの作業域が入力データ量に対して充分与えられなかった場 合、オプション機能を使用している場合、または漢字ソートマージ機能を使用している場合には、以下の概算式を超えることがありま す。このため、一時ファイルを作成するフォルダには、充分な空きスペースのあるフォルダを指定してください。 一時ファイル量=(管理領域+キー長+レコード長)×レコード件数 ・ 管理領域 PowerSORTの管理領域(固定値12)。 ・ キー長 指定した各キーフィールドの長さを4の倍数に調整した値の総計 ・ レコード長 指定したレコード長を4の倍数に調整した値 ・ レコード件数 入力レコード件数 参照 ・ 環境変数BSORT_TMPDIR ・ 実行環境オプション(-option)のtmpdirオペランド ・ bsrtopen関数におけるBSRTFILE構造体のtmpfile_tbl - 69 - 第3章 PowerSORTの使い方 ここでは、PowerSORTの実行方法について説明します。 PowerSORTの実行方法には、以下の方法があります。 ・ コマンド(bsortコマンド、bsortexコマンド)を使用する方法 ・ OCXを使用してPowerSORTを使用する方法 ・ COBOLプログラムから使用する方法 ・ C言語プログラムから使用する方法 3.1 コマンド(bsortコマンド、bsortexコマンド)を使用する方法 サーバで行うバッチ処理などにコマンドを組み込んで、PowerSORTを使用することができます。 コマンドには、bsortコマンド、およびbsortexコマンドがあります。bsortexコマンドは、bsortコマンドを拡張したコマンドです。 詳細は、第4章 PowerSORTのbsortコマンドを使用する、および第5章 PowerSORTのbsortexコマンドを使用するを参照してください。 bsortコマンドとbsortexコマンドの機能差について bsortexコマンドは、bsortコマンドの機能を拡張したコマンドです。 bsortexコマンドだけで可能な機能は以下のとおりです。ただし、処理定義ファイルオプション(-P)は、bsortコマンドだけで使用できる機 能です。この機能を使用する場合は、bsortコマンドを使用してください。 ・ ファイルの分割出力機能(-outputオプションのmaxfilesizeオペランド、maxrecnumオペランド) 出力するデータを複数のファイルへ分割して出力できます。ひとつのファイルに出力する大きさは、ファイルサイズやレコード件数 で指定できます。 ・ 出力ファイルに対する選択機能(-outputオプションのincludeオペランド、omitオペランド、caseオペランド) 出力ファイルごとに出力するレコードの条件を指定して、条件別にファイルを分けて出力できます。 ・ 出力ファイルに対する再編成機能(-outputオプションのreconstオペランド) 入力時点のレコード再編成に加えて、出力ファイルへレコードを書き込む直前にもレコード再編成ができます。 ・ レコード集約機能、およびサプレス機能における特定レコード出力機能(-summaryオプション) レコード集約機能、およびサプレス機能では、キー値の等しい複数レコードの先頭レコード、または最終レコードに結果を残すこと ができます。 ・ EOF制御文字をファイルの最後と認識する機能(-inputオプションのeofオペランド) 入力ファイルがテキストファイルの場合、EOF制御文字をファイルの最後と認識するか否かを指定することができます。 3.2 OCXを使用してPowerSORTを使用する方法 PowerSORT OCXをフォームに配置して必要なプロパティを設定することにより、PowerSORTを使用することができます。 PowerSORT OCXは、デザイン時にはフォーム上に表示され、実行時には非表示となります。 詳細は、第6章 PowerSORT OCXからPowerSORTを使用するを参照してください。 注意 PowerSORT OCXを使ってソートマージ処理を行うには、PowerSORTがインストールされている必要があります。 - 70 - 3.3 COBOLプログラムから使用する方法 富士通のNetCOBOL、PowerCOBOL97、COBOL97、およびCOBOL85などで作成したCOBOLプログラムからPowerSORTを使用する ことができます。 詳細は、第7章 COBOLプログラムからPowerSORTを使用するを参照してください。 3.4 C言語プログラムから使用する方法 C言語プログラムにBSORT関数を組み込んでPowerSORTを使用することができます。 BSORT関数には5つの関数があり、それらの関数を組み合わせてPowerSORTの各機能を実行します。 詳細は、第8章 C言語プログラムからPowerSORTを使用するを参照してください。 - 71 - 第4章 PowerSORTのbsortコマンドを使用する ここでは、bsortコマンドについて説明します。 bsortコマンドをバッチ処理などに組み込むことで、大量データの高速ソートマージ処理を実現できます。 4.1 bsortコマンドの形式 bsortコマンドは、テキストファイル、およびバイナリファイルのデータに対して、ソート処理、マージ処理、またはコピー処理を行いま す。 指定された処理が正常に終了した場合は、0の終了コードを返します。エラーが発生した場合は、0以外の終了コードを返します。 bsortコマンドには、使用する機能により4つの記述形式があります。それぞれ、指定できるオプションに違いがありますので、使用する 機能に合わせて適切なオプションを指定してください。 bsortコマンド記述上の注意事項 注意 ・ 角括弧( [ ] )で囲まれた字句は省略可能です。 ・ 中括弧( { } )は棒線( | )で区切られた字句の選択を示します。 ・ 斜体は、必要に応じて利用者が値を設定します。 ・ ...は繰り返し指定できることを示します。 ・ オプション引数をもたないオプション( -s、-m、-c、-h、-f、-u、-w、-v、-r)は、連続して指定できます。 例) -sf ・ コンマ( , )で区切って指定するオプション引数は、オプション引数全体をダブルクォーテーション( " )で囲み、コンマ( , )の代わりに 空白で区切っても指定できます。 例) -p "sel-def sel-def..." 4.1.1 ソート機能を使用する場合 以下にソート機能を使用する場合のコマンド形式を示します。 bsort [ [ { [ [ [ [ [ [ [ { [ { [ [ [ [ -s ] [ -h ] [ -v ] -z recsize [ -Z recform ] -l msglevel ] [ -y memsize ] [ -G msgfile ] [ -key-def [ ,key-def...] ] | [ -r ] } -M kanji-def [ ,kanji-def...] ] -T { flt | fix | csv | tsv }[ ,{ n | w | N } bdij ] ] -t chars ] [ -L line-delimiter ] -R skiprec-no [ ,skiprec-no...] ] -p sel-def [ ,sel-def...] ] -e recon-def [ ,recon-def...] ] -f ] [ -u ] | [ -g sum-def [ ,sum-def...] ] } -a argfile ] -w | -o outfile [ -o outfile...] } -F ofs,ifs [ /ownername ] [ ,ifs [ /ownername ]...] ] -I flg ] [ -X index-def [ ,index-def...] ] infile [ infile...] ] [ -q cdmode ] [ -Q altmode ] -x col-def [ ,col-def...] ] 4.1.2 マージ機能を使用する場合 以下にマージ機能を使用する場合のコマンド形式を示します。 - 72 - bsort -m [ -h ] -z recsize [ -Z recform ] [ -l msglevel ] [ -y memsize ] [ -G msgfile ] { [ -key-def [ ,key-def...] ] | [ -r ] } [ -M kanji-def [ ,kanji-def...] ] [ -T { flt | fix | csv | tsv }[ ,{ n | w | N } bdij ] ] [ -t chars ] [ -L line-delimiter ] [ -R skiprec-no [ ,skiprec-no...] ] [ -p sel-def [ ,sel-def...] ] [ -e recon-def [ ,recon-def...] ] { [ -u ] | [ -g sum-def [ ,sum-def...] ] } [ -a argfile ] { -w | -o outfile [ -o outfile...] } [ -F ofs,ifs [ /ownername ] [ ,ifs [ /ownername ]...] ] [ -I flg ] [ -X index-def [ ,index-def...] ] infile [ infile...] [ -q cdmode ] [ -Q altmode ] [ -x col-def [ ,col-def...] ] 4.1.3 コピー機能を使用する場合 以下にコピー機能を使用する場合のコマンド形式を示します。 bsort -c [ -h ] -z recsize [ -Z recform ] [ -l msglevel ] [ -y memsize ] [ -G msgfile ] [ -T { flt | fix | csv | tsv } ] [ -t chars ] [ -L line-delimiter ] [ -R skiprec-no [ ,skiprec-no...] ] [ -p sel-def [ ,sel-def...] ] [ -e recon-def [ ,recon-def...] ] [ -a argfile ] { -w | -o outfile [ -o outfile...] } [ -F ofs,ifs [ /ownername ] [ ,ifs [ /ownername ]...] ] [ -I flg ] [ -X index-def [ ,index-def...] ] [ infile [ infile...] ] [ -x col-def [ ,col-def...] ] 4.1.4 処理定義ファイルを使用する場合 以下に処理定義ファイルを使用する場合のコマンド形式を示します。 bsort -P ProcDef-file 4.2 bsortコマンドオプション ここでは、bsortコマンドの各オプションについて説明します。 4.2.1 アーギュメントファイルオプション(-a) アーギュメントファイルを指定します。 アーギュメントファイルは、bsortコマンドの各種オプション引数を記述したテキストファイルです。アーギュメントファイルは、固定のオプ ション引数を別途指定しておきたい場合や、コマンドのオプション引数が長くなる場合などに使用します。 記述形式 -a argfile argfile アーギュメントファイルを指定します。 他のオプション引数とアーギュメントファイルオプションを同時に指定した場合、アーギュメントファイルオプションを指定した位置に、 アーギュメントファイルで記述したオプション引数が展開されます。アーギュメントファイルオプションは複数指定できます。アーギュメン - 73 - トファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。 アーギュメントファイルには、オプション引数を複数の行に記述できます。ただし、各オプション引数の途中で改行することはできませ ん。アーギュメントファイルにアーギュメントファイルオプションは指定できません。アーギュメントファイルには、bsortコマンドのオプショ ン引数だけを記述します。 アーギュメントファイルの記述例 例 以下にアーギュメントファイルの記述例を示します。 -s -z200 -32.12pdla,25.4fbia↓ -p 25.4fbi.ge.d35↓ -o bsortout↓ sortin↓(注) 注)↓印は復帰改行コード(CRLF)を示しています。 アーギュメントファイルの展開について アーギュメントファイル(argfile)には、以下の内容が記述されているものとします。 -s -z100 例 例1) 正しい指定 bsort infile1 -a argfile -ooutfile1 と指定した場合、以下の指定と同じです。 bsort infile1 -s -z100 -ooutfile1 例2) 誤った指定 bsort infile2 -z70 -a argfile -ooutfile2 と指定した場合、以下の指定と同じです。 bsort infile2 -z70 -s -z100 -ooutfile2 この場合、重複して指定できない-zオプションが2つ指定されているため、エラーになります。 4.2.2 再編成フィールドオプション(-e) レコード再編成機能を使用する場合に再編成フィールドを指定します。 再編成フィールドに指定したフィールドは、出力レコードの先頭から順に詰めて出力します。レコード再編成機能を使用する場合、キー フィールドと集約フィールドにはレコード再編成後のフィールド位置を指定します。 記述形式 -e recon-def [ ,recon-def ...] recon-def の記述形式 recon-def の記述形式には、以下の4つの形式があります。 - 74 - ・ recon-def の記述形式1 recon-def の記述形式1では、入力レコードのフィールドを指定します。 指定したフィールドが入力レコードに存在しない場合は、エラーになります。 pos.len ・ recon-def の記述形式2 recon-def の記述形式2では、自己規定値を指定します。 self.len typ [ opt ] ・ recon-def の記述形式3 recon-def の記述形式3では、入力レコードの指定位置から終端までを再編成フィールドに指定します。 指定したフィールドが入力レコードに存在しない場合は、エラーになります。 pos.END ・ recon-def の記述形式4 recon-def の記述形式4では、空フィールドを指定します。 テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定できます。 EMPTY [ opt ] pos 再編成フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 len 再編成フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 recon-def の記述形式1では、長さの制限はありません。recon-def の記述形式2で指定可能な各データ形式の長さについては、2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、再編成フィール ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ のダブルクォーテーション( " )として長さを計算します。 例) テキストファイルCSV形式における、再編成フィールドと長さ 再編成フィールド ABC "ABC" "A""B""C" "A,B,C" 再編成フィールドとして有効な文字 ABC ABC A"B"C A,B,C 再編成フィールドの長さ 3バイト 3バイト 5バイト 5バイト self 自己規定値を指定します。 self の記述形式を以下に示します。 - 75 - ・ self の記述形式1 self の記述形式1では、文字を直接指定します。 '文字列 ' ・ self の記述形式2 self の記述形式2では、文字を16進数で指定します。 x16進数 ・ self の記述形式3 self の記述形式3では、数値、または数字を10進数で指定します。 d10進数 注意 ・ オプション引数で自己規定値の文字列を指定する場合は、オプション引数全体をダブルクォーテーション( " )で囲みます。 ・ オプション引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、ダブルクォーテーション( " )の前 に円記号( ¥ )を指定します。 ・ オプション引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、クォーテーション( ' )を2つ続けて指定し ます。 ・ 自己規定値の10進数を指定する場合は、符号を指定できます。 ・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。 ・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま せん。 ・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールド分離文字、レコード分離文字(注)、 またはダブルクォーテーション( " )が含まれているときは、自己規定値をダブルクォーテーション( " )で囲んで出力します。この際、 自己規定値のダブルクォーテーション( " )は、2つ連続して出力します。 注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含ま れている場合、自己規定値をダブルクォーテーション( " )で囲みます。 例) 自己規定値にフィールド分離文字(コンマ)、またはダブルクォーテーション( " )を含む場合の再編成フィールドに出力される データ 自己規定値の指定 FIELD"2" FIELD2,3 FIELD"2",3 再編成フィールドに出力されるデータ "FIELD""2""" "FIELD2,3" "FIELD""2"",3" ・ 自己規定値で指定した値とlen で指定した長さが異なるときは、以下に示すように処理します。 - 自己規定値が文字列の場合 - 自己規定値で指定した文字列の長さが len で指定した長さより短い場合は、自己規定値を左詰めにして右余白に空白を 詰めます。 - 自己規定値で指定した文字列の長さがlen で指定した長さより長い場合は、エラーとなります。 - 自己規定値が数字、または数値の場合 - 自己規定値で指定した値をtyp とlen で指定したデータ形式と長さに変換して埋め込みます。 - 変換結果がlen を超える場合は、エラーとなります。 - 76 - ・ 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号なし固定小数点2進数、システム依 存形式固定小数点2進数、システム依存形式符号なしの自己規定値を10進数で指定する場合、その値は以下の範囲になります。 長さ 符号ありのデータ形式 符号なしのデータ形式 1バイト -128~127 0~255 2バイト -32768~32767 0~65535 3バイト -8388608~8388607 0~16777215 4バイト以上 -2147483648~2147483647 0~4294967295 typ 自己規定値のデータ形式を指定します。 指定可能なデータ形式については、2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。 注意 ・ ASCIIコードは、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テキストファ イルの場合、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。 ・ EBCDICコードは、入力コード系オプション(-q)がEBCDICコード系の場合に指定できます。 ・ シフトJISコードは、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。 ・ Unicode UCS-2形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テ キストファイルの場合、入力コード系オプション(-q)がUnicode系(UCS-2形式)の場合に指定できます。 ・ Unicode UTF-8形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テ キストファイルの場合、入力コード系オプション(-q)がUnicode系(UTF-8形式)の場合に指定できます。 END recon-def の記述形式3の場合に、'END'の固定文字列を指定します。 EMPTY recon-def の記述形式4の場合に、'EMPTY'の固定文字列を指定します。 opt 再編成フィールドの操作を指定します。 テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、recon-def の記述形式2、またはrecon-def の記述形式4のときに 指定できます。以下から選択して指定します。省略した場合は、Lを指定したものとして動作します。 opt 意味 A 再編成フィールドをダブルクォーテーション( " )で囲みます。 L 再編成フィールドをダブルクォーテーション( " )で囲みません。 ただし、再編成フィールドに、フィールド分離文字、レコード分離文字(注)、またはダブル クォーテーション( " )が含まれている場合は、ダブルクォーテーション( " )で囲みます。 注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含まれ ている場合、自己規定値をダブルクォーテーション( " )で囲みます。 - 77 - 参考 ・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、recon-def の記述形式1、またはrecon-def の記述形式3のと きに、再編成フィールドをダブルクォーテーション( " )で囲むかどうかは、入力レコードのフィールドに従います。入力レコードの フィールドがダブルクォーテーション( " )で囲まれているときは、レコード再編成後のフィールドもダブルクォーテーション( " )で囲み ます。 例) 再編成フィールドを「-e 1.3,2.2」と指定した場合 入力レコード 出力レコード "001","ABC",60 "ABC",60 "002","ABCDE",50 "ABC",50 "003","AB,CDE",40 "AB,",40 "004","AB"CDE,30 (注) "AB"C,30 注) 2番目のフィールドは、「AB」がダブルクォーテーションで囲まれ、「CDE」がそのあとに続いていると判断します。 記述例 例 例1) 入力レコードの5バイト目から長さ10バイトのフィールドを再編成する場合は、次のように指定します。 -e 4.10 例2) 自己規定値としてASCIIコードの「abc」を文字列で指定する場合は、以下のように指定します。 -e "'abc'.3asc" 例3) 自己規定値としてASCIIコードの「abc」を16進数で指定する場合は、以下のように指定します。 -e x616263.3asc 例4) 自己規定値として外部10進数の「-32」を長さ4バイトで指定する場合は、以下のように指定します。 -e d-32.4zdl 例5) 入力レコードの5バイト目からレコードの最後までを再編成する場合は、以下のように指定します。 -e 4.END 例6) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、自己規定値としてASCIIコードの「abc」を文字列で指定し、こ のフィールドをダブルクォーテーション( " )で囲むときは、以下のように指定します。 -e "'abc'.3ascA" 例7) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、入力レコードの1番目のフィールドと2番目のフィールドの間 にダブルクォーテーション( " )で囲まれた空フィールドを追加するときは、以下のように指定します。 -e 0.1,EMPTYA,1.END 4.2.3 入出力ファイルシステムオプション(-F) 入力ファイルと出力ファイルのファイルシステムを指定します。 記述形式 -F ofs,ifs [/ownername] [ ,ifs [/ownername] ...] - 78 - ofs 出力ファイルのファイルシステムを指定します。 ファイルシステムは識別子で指定します。詳細は指定可能なファイルシステムを参照してください。 ifs 入力ファイルのファイルシステムを指定します。 ファイルシステムは識別子で指定します。詳細は指定可能なファイルシステムを参照してください。 入力ファイルのファイルシステムは、入力ファイルごとに指定できます。複数のファイルシステムを指定する場合は、コンマ( , )で区切っ て入力ファイルの指定順に指定します。入力ファイルの数がファイルシステムで指定した数より多い場合、ファイルシステムに指定した 最後のファイルシステムが残りの入力ファイルに適用されます。入力ファイルの数がファイルシステムで指定した数より少ない場合、余 分に指定したファイルシステムは無視されます。 ownername Btrieveファイルで必要な場合には、ownernameに最大8文字までのオーナーネームを指定します。 オーナーネームでは、大文字と小文字が区別されます。 指定可能なファイルシステム 指定可能なファイルシステムを以下に示します。 識別子 ファイルシステムの説明 dos システムの標準ファイルシステム (省略値) cobseq 富士通COBOLファイルシステム(順ファイル) cobs64 富士通COBOLファイルシステム(BSAM対応順ファイル) corbel 富士通COBOLファイルシステム(相対ファイル) cobidx 富士通COBOLファイルシステム(索引ファイル) mfcseq Micro Focus COBOLファイルシステム(順ファイル) mfcrel Micro Focus COBOLファイルシステム(相対ファイル) mfcidx Micro Focus COBOLファイルシステム(索引ファイル) btrv Btrieveファイルシステム rdm RDMファイルシステム 注意 ・ PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、アクセスすることができません。また、富士通 COBOLファイルシステム(索引ファイル)を指定した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもア クセスすることができません。共用モード、排他モードについては、お使いの富士通COBOLファイルシステムのマニュアルを参照 してください。 ・ 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定しても、使用する富士通COBOLファイルシステムが対応していな い場合は富士通COBOLファイルシステム(順ファイル)として動作します。BSAM対応については、お使いの富士通COBOLファイ ルシステムのマニュアルを参照してください。 ・ 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定した場合は、富士通COBOLファイルシステムの仕様によりレコード 排他処理が行われません。 ・ Micro Focus COBOLファイルシステム(索引ファイル)、およびBtrieveファイルシステムは、入力ファイルのファイルシステムとしての み指定可能です。 ・ データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイルに指定することはできません。 - 79 - 4.2.4 先入力先出力(FIFO)機能オプション(-f) 先入力先出力(FIFO)機能を指定します。 指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。 先入力先出力(FIFO)機能は、ソート機能(-s)のときに有効です。先入力先出力(FIFO)機能を指定しなかった場合、キーフィールドの値 が同一なレコードの出力順序は不定です。マージ機能(-m)、コピー機能(-c)、レコード集約機能(-g)、およびサプレス機能(-u)と同時に 指定された場合、先入力先出力(FIFO)機能の指定は無視されます。 記述形式 -f 注意 先入力先出力(FIFO)機能オプション(-f)は、環境変数BSORT_FIFOの指定より優先されます。 4.2.5 メッセージファイルオプション(-G) メッセージを出力するファイルパス名を指定します。 記述形式 -G msgfile msgfile メッセージを出力するファイルパス名を指定します。 メッセージファイルオプションを省略した場合、環境変数BSORT_MSGFILEの指定があれば、そのファイルにメッセージを出力します。 メッセージファイル以外へのメッセージの出力は、環境変数BSORT_MSGOUTの指定に従います。メッセージファイルに空白を含む ファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。 注意 メッセージファイルオプション(-G)は、環境変数BSORT_MSGFILEの指定より優先されます。 4.2.6 集約フィールドオプション(-g) レコード集約機能を使用する場合に集約フィールドを指定します。 レコード集約機能は、指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1つのレコードにする機能です。レコー ド集約機能の対象となったレコードの中から、どのレコードが出力されるかは不定です。テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の対象とします。 レコード集約機能は、ソート機能、またはマージ機能の場合に有効です。サプレス機能(-u)とは排他関係にあります。先入力先出力(FIFO) 機能(-f、または環境変数BSORT_FIFO)と同時に指定された場合、先入力先出力(FIFO)機能の指定は無視されます。 記述形式 -g sum-def [ ,sum-def ...] sum-def の記述形式 pos.len typ [ opt ] - 80 - pos 集約フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 len 集約フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、指 定したフィールド長に拡張して処理します。 指定可能な各データ形式の長さについては、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、集約フィールド の長さに含みません。 例) テキストファイルCSV形式における、集約フィールドと長さ 集約フィールド 123 "123" 集約フィールドとして有効な文字 123 123 集約フィールドの長さ 3バイト 3バイト typ 集約フィールドのデータ形式を指定します。 指定可能なデータ形式については、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。 opt テキストファイルの場合に集約フィールドの出力形式を指定します。 バイナリファイルの場合に指定するとエラーとなります。指定可能な出力形式を以下に示します。 意味 opt i 集約フィールドの値に符号を付けます。 uとは排他関係にあります。 u 集約フィールドの値が負の値の場合だけ「-」の符号を付けます。 iとは排他関係にあります。 z 集約フィールドの値がフィールド長に満たない場合、左余白に「0」を詰めます。 例えば、集約フィールドの値が「1234」という4桁の数字であり、集約フィールド長が6バイ トの場合、「001234」という数字にします。b、dとは排他関係にあります。 b 集約フィールドの値がフィールド長に満たない場合、左余白に空白を詰めます。 例えば、集約フィールドの値が「1234」という4桁の数字であり、集約フィールド長が6バイ トの場合、「□□1234」(□は空白を表わす)という数字にします。z、dとは排他関係にあり ます。 d 集約フィールドの先頭から空白、タブ、および「0」を削除します。 集約フィールドの先頭に空白、タブ、および「0」がある場合、左から評価し、「0」以外の 数字が出現するまでの空白、タブ、および「0」を削除します。例えば、「00123」の場合、 「123」という数字にします。ただし、集約フィールドの値が「0」(「0」、「0000」、「+000」な ど)の場合、最後の「0」は削除されません。テキストファイル浮動フィールド指定の場合に 指定可能です。z、bとは排他関係にあります。 - 81 - 注意 ・ dは、テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定可能です。 テキストファイル固定フィールド指定の場合はエラーになります。 ・ iを指定し、集約した値が「0」になった場合は「+」の符号を付けます。 ・ bを指定し、符号が付く場合、符号は数字部の直前に付加されます。 ・ i、およびuを省略した場合は、以下のように処理します。 - 集約結果が負の値の場合は、集約結果に「-」の符号を付けます。 - 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を付けません。 - 符号なしデータ同士を集約した場合は、集約結果に符号を付けません。 - 符号なしデータと符号付きデータの集約結果が「0」の場合は、符号を付けません。 - 符号付きデータ同士を集約した場合は、集約結果に符号を付けます。集約した結果が「0」の場合は、「+」の符号を付けます。 ・ 集約フィールドの値に符号を付ける場合、集約フィールドの値が集約フィールド長を満たしており、符号が付けられないときはオー バフローとなります。 ・ z、b、およびdを省略した場合は、以下のように処理します。 - 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果が満たない場合は、集約フィールドの左余白に 「0」を詰めます。 - 左余白に「0」が詰められているデータ同士のとき - 左余白に「0」が詰められているデータと左余白に空白が詰められているデータのとき - 左余白に「0」が詰められているデータと左余白にタブが詰められているデータのとき - 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果が満たない場合は、集約フィールドの左余 白に空白を詰めます。 - 左余白に空白が詰められているデータ同士のとき - 左余白にタブが詰められているデータ同士のとき - 左余白に空白が詰められているデータと左余白にタブが詰められているデータのとき ・ レコード集約機能の対象とならなかったレコード(キーフィールドの値が同一である他のレコードが存在しないレコード)の集約フィー ルドは、以下のように処理します。 - optの指定がある場合は、optで指定された形式で出力します。 - optの指定がない場合は、入力されたままの形式で出力されます。 記述例 例 例1) 入力レコードの7バイト目から長さ8バイトの内部10進数のフィールドを集約フィールドに指定する場合は、次のように指定します。 -g 6.8pdl 例2) テキストファイルの場合、入力レコードの4バイト目から長さ8バイトのASCIIコードのフィールドを集約フィールドに指定するときは、 次のように指定します。なお、集約フィールドには符号をつけ、集約フィールドの値がフィールド長に満たないときには左余白に空白を 詰めます。 -g 4.8ascib - 82 - 注意 ・ レコード集約機能の対象となったレコードの中から、どのレコードが出力されるかは不定です。 ・ 集約フィールドは、キーフィールド、および他の集約フィールドと重なることはできません。 ・ 集約フィールドは、レコード内に存在する必要があります。 ・ レコード集約機能を使用する場合、キーフィールドは省略できません。 ・ 集約フィールドの集約処理中にオーバフローが生じた場合の動作は、環境変数BSORT_SUMOVERCONTの指定に従います。 ・ 小数点を含む数字の集約はできません。 ・ テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の 対象とします。 ・ テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現れたことにより集約フィールドの位置が変 わる場合は、正しく動作しません。 ・ テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れたときは、指定したフィールド長を超 える部分はレコード集約機能の対象とせず、そのまま出力されます。また、指定したフィールド長より短いフィールドが現れたとき は、指定したフィールド長に拡張します。 例) 集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合(フィールド分離文字は「,」とします) 入力レコード 出力レコード 001,12345ABC,OPQ (注1) 001,12456ABC,OPQ (注2) 001,111,RST 002,00127,UVW 002,15,UVW (注1) 002,00112DEF,XYZ 注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。 注2) 指定したフィールド長を超える部分(「ABC」)は、そのまま出力されます。 ・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、指定したフィールド長よりも長いフィールドが現れたときは、指 定したフィールド長を超える部分はレコード集約機能の対象とせず、出力もされません。また、指定したフィールド長より短いフィー ルドが現れたときは、指定したフィールド長に拡張します。 例) テキストファイルCSV形式で、集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合 入力レコード 出力レコード 001,12345ABC,OPQ (注1) 001,12468,OPQ (注2) 001,123,RST 002,00027,UVW 002,15,UVW (注1) 002,00012DEF,XYZ 注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。 注2) 指定したフィールド長を超える部分(「ABC」)は、出力されません。 ・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、集約フィールドをダブルクォーテーション( " )で囲むかどうか は、出力対象となる入力レコードのフィールドに従います。出力対象となる入力レコードのフィールドがダブルクォーテーション( " ) で囲まれているときは、レコード集約後のフィールドもダブルクォーテーション( " )で囲みます。 例) テキストファイルCSV形式で、集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合 入力レコード 出力レコード 001,"12345",OPQ (注) 001,"12468",OPQ 001,"123",RST 002,"00027",UVW 002,"15",UVW (注) 003,11900,GHI 002,00012,XYZ 004,98769,MNO 003,11111,GHI (注) 003,"00789",JKL 004,98765,MNO (注) 004,4,PQR 注) ここで示したレコードが、レコード集約機能で出力対象になるものとします。 - 83 - 4.2.7 ヘルプオプション(-h) bsortコマンドのコマンド形式の一覧を表示します。 他のオプションと共に指定された場合は、指定されたオプションのチェックを行い、エラーがあった場合はエラーメッセージを出力しま す。 このオプションが指定されている場合は、PowerSORTの処理は行われません。 記述形式 -h 4.2.8 インデックス作成方法オプション(-I) 富士通COBOLファイルシステムの索引ファイルにおける、インデックスの作成方法を指定します。 記述形式 -I flg flg 以下から選択して指定します。 複数指定する場合は、続けて指定します。 意味 flg c インデックスに圧縮キー指定を示します。 r レコードのデータ圧縮指定を示します。 4.2.9 入力ファイルオプション(infile) 入力ファイルのファイルパス名を指定します。 記述形式 infile [ infile ...] infile 入力ファイルのファイルパス名を指定します。 入力ファイルは複数指定できます。入力ファイルを複数指定する場合は、入力ファイルオプションを複数指定します。入力ファイルパ ス名に半角空白が含まれる場合は、入力ファイルパス名をダブルクォーテーション( " )で囲みます。入力ファイルオプションが省略され た場合は、標準入力からレコードを読み込みます。ただし、マージ機能では標準入力からレコードを読み込むことはできません。 記述例 例 半角空白を含む入力ファイルパス名は、次のように記述します。 "c:¥in files¥sortin01" 4.2.10 キーフィールドオプション(-key-def) キーフィールドを指定します。 1つのキーフィールドは、位置、長さ、データ形式、および操作で構成されます。 複数のキーフィールドを指定した場合、指定した順に比較が行われます。複数のキーフィールドを指定する場合は、キーフィールドをコンマ - 84 - ( , )で区切って指定します(-key-def,key-def)。また、1つ前のキーフィールドの指定に続けて指定(-key-def key-def)することや、キー フィールドオプションを複数指定することもできます(-key-def -key-def)。 キーフィールドの指定を省略した場合、レコード全体をキーフィールドとみなしてコードの昇順に並べます。キーフィールドを省略して 降順に並べる場合は、降順オプション(-r)を使用します。 注意 テキストファイルCSV形式、テキストファイルTSV形式の場合、キーフィールドは省略できません。 記述形式 -key-def [ ,key-def ...] key-def の記述形式 pos.len typ [ opt ] pos キーフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 len キーフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数でlen に指定します。この場合、pos の 位置にある1バイトのフィールド値とマスク値の論理積がキー値になります。 指定可能な各データ形式の長さについては、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、キーフィールドの 長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つのダ ブルクォーテーション( " )として長さを計算します。 例) テキストファイルCSV形式における、キーフィールドと長さ キーフィールド ABC "ABC" "A""B""C" "A,B,C" キーフィールドとして有効な文字 ABC ABC A"B"C A,B,C キーフィールドの長さ 3バイト 3バイト 5バイト 5バイト typ キーフィールドのデータ形式を指定します。 指定可能なデータ形式については、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。 opt キーフィールドの操作を指定します。 指定可能な操作を以下に示します。バイナリファイルの場合は、a、m、r、およびwが指定できます。テキストファイルの場合は、全ての - 85 - キーフィールドの操作が指定できます。複数の操作を指定する場合は、続けて記述します。aとrを両方とも省略した場合は、aを指定し たものとして動作します。 意味 opt a 昇順に並べます。 rとは排他関係にあります。 b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象とします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 m 漢字ソートマージ機能を使用します。 対応する漢字ソートマージオプション(-M)が必要となります。mを指定した場合は、a、b、 rの操作だけが有効となり、他の指定は無視します。漢字ソートマージ機能で指定可能 なデータ形式は、ASCIIコード、シフトJISコード、およびJEFコードです。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。データ形式が ASCIIコード、EBCDICコード、Unicode UCS-2形式、またはUnicode UTF-8形式の場合 に指定できます。 N、およびwとは排他関係にあります。 N 英字と数字の連結データ(例えば「data123」など)を英字と数値に分けて評価し並べま す。 英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。 指定フィールドの左から評価し、有効データ後に出現したデータは無視します。データ 形式がASCIIコード、EBCDICコード、Unicode UCS-2形式、またはUnicode UTF-8形式 の場合に指定できます。 n、およびwとは排他関係にあります。 r 降順に並べます。 aとは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較して並べます。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式、またはUnicode UTF-8 形式で、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。 n、およびNとは排他関係にあります。 注意 ・ 漢字ソートマージ機能では、キーフィールドの操作にbを指定した場合、全角の空白も無視します。 ・ キーフィールドのデータ形式に照合順序変更を指定した場合、キーフィールドの操作にa、またはr以外を指定することはできませ ん。 ・ キーフィールドのデータ形式に文字形式2桁年号を指定した場合、キーフィールドの操作にa、またはr以外を指定しても無視され ます。 記述例 例 例1) 入力レコードの先頭から長さ10バイトのASCIIコードのフィールドを昇順に並べる場合は、次のように指定します。 -0.10asca 例2) 入力レコードの5バイト目から長さ8バイトの外部10進数のフィールドを降順に並べる場合は、次のように指定します。 - 86 - -4.8zdlr 例3) テキストファイル固定フィールド指定の場合、入力レコードの10バイト目から長さ20バイトのASCIIコードのフィールドを昇順に並べ る場合は、次のように指定します。なお、キーフィールドの先頭の空白とタブは無視し、英小文字を英大文字として比較します。 -9.20ascabj 参考 バイナリファイルの可変長レコード形式、またはテキストファイルの場合、キーフィールドが存在しないレコードが入力されたときは、キー フィールドが存在しない部分の値を0とみなして処理します。 4.2.11 レコード分離文字オプション(-L) テキストファイル内のレコード分離文字を指定します。 テキストファイルのときに有効です。 記述形式 -L line-delimiter line-delimiter テキストファイル内のレコード分離文字を指定します。 指定可能なレコード分離文字列を以下に示します。 意味 line-delimiter cl CRLFをレコードの分離文字として扱います。(省略値) cr CRをレコードの分離文字として扱います。 lf LFをレコードの分離文字として扱います。 4.2.12 メッセージレベルオプション(-l) 出力するメッセージの種別を指定します。 記述形式 -l msglevel msglevel 出力するメッセージの種別(レベル)を指定します。 メッセージレベルオプション(-l)を省略した場合は、環境変数BSORT_MSGLEVELの指定に従います。メッセージレベルオプション(-l) も環境変数BSORT_MSGLEVELの指定も省略されている場合は、msglevel にW(エラーメッセージ、および警告メッセージを出力)を 指定したとみなします。メッセージの出力先は、メッセージファイルオプション(-G)、環境変数BSORT_MSGFILE、および環境変数 BSORT_MSGOUTの指定により決まります。 指定可能なメッセージの種別(レベル)を以下に示します。 意味 msglevel N 何も出力しません。 E エラーメッセージを出力します。 W エラーメッセージ、および警告メッセージを出力します。(省略値) I エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 - 87 - また、以前のバージョンとの互換用として、以下の種別(レベル)も指定できます。 意味 msglevel 0 何も出力しません。 1 エラーメッセージ、および警告メッセージを出力します。(省略値) 2 エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 注意 ・ 何も出力しないと指定した場合でも、コマンドシンタックスのエラーとコマンドヘルプは標準エラー出力に出力します。 ・ メッセージレベルオプション(-l)は、環境変数BSORT_MSGLEVELの指定より優先されます。 4.2.13 漢字ソートマージオプション(-M) 漢字ソートマージ機能を使用する場合に、漢字フィールド、およびふりがなフィールドを指定します。 漢字ソートマージオプション(-M)は、キーフィールドの操作としてmを指定したフィールドに対応します。このmを指定したキーフィール ドが漢字フィールドとなります。 記述形式 -M kanji-def [ ,kanji-def ...] kanji-def の記述形式 form [ odr ] [ pos.len typ ] form 漢字ソートマージ機能の方式を指定します。 指定可能な方式を以下に示します。 意味 form std 基本方式(漢字属性の順)に並べます。 ふりがなフィールドの指定は必要ありません。 dic 国語辞典方式(ふりがなの順)に並べます。 ふりがなフィールドの指定が必要となります。 odr 漢字フィールドの漢字属性を指定します。 漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで続けて指定できます。指定可能な 漢字属性を以下に示します。 意味 odr B 部首コード順に並べます。 S 総画数順に並べます。 O 音読み順に並べます。 K 訓読み順に並べます。 C 漢字コード順に並べます。 - 88 - pos ふりがなフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 len ふりがなフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、ふりがなフィール ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ のダブルクォーテーション( " )として長さを計算します。 typ ふりがなフィールドのデータ形式を指定します。 指定可能なデータ形式を以下に示します。 表4.1 バイナリファイルの場合 種類 文字 データ形式 長さ(バイト) typ ASCIIコード asc 1~レコード長(注1) EBCDICコード(注2) ebc 1~レコード長(注1) シフトJISコード sji 1~レコード長(注1) JEFコード(注2) jef 2~レコード長(2の倍数) (注1) 表4.2 テキストファイルの場合 種類 文字 データ形式 長さ(バイト) typ ASCIIコード asc 1~レコード長(注1) シフトJISコード sji 1~レコード長(注1) 注1) レコード再編成機能を指定した場合は、レコード再編成後のレコード長まで指定できます。レコード再編成機能については、4.2.2 再編成フィールドオプション(-e)を参照してください。 注2) 入力コード系オプション(-q)の指定がEBCDICコード系の場合に指定できます。 記述例 例 例1) 入力レコードの10バイト目から長さ2バイトの漢字フィールド(シフトJISコード)を総画数順、音読み順で昇順に並べる場合、次のよ うに指定します。 -9.2sjiam -M stdSO 例2) 入力レコードの10バイト目から長さ10バイトに漢字フィールド(シフトJISコード)があり、このフィールドに対するふりがなフィールド(シフト JISコード)がレコードの50バイト目から長さ20バイトに存在するとき、このレコードを国語辞典の並びで昇順に並べる場合、次のように指 定します。 -9.10sjiam -M dic49.20sji - 89 - 4.2.14 出力ファイルオプション(-o) 出力ファイルのファイルパス名を指定します。 記述形式 -o outfile [ -o outfile ...] outfile 出力ファイルのファイルパス名を指定します。 出力ファイルパス名に半角空白が含まれる場合は、出力ファイルパス名をダブルクォーテーション( " )で囲みます。標準出力オプション (-w)と同時に指定された場合は、出力ファイルオプション(-o)が優先されます。 出力ファイルオプション(-o)を複数指定した場合、出力ファイルがファイルシステムの許容量を超えたときのリカバリー処理として複数の ファイルに分割して出力します。このため、複数のファイルを指定する場合は、別ドライブに配置してください。リカバリー処理は、以下 のファイルを処理する場合に指定できます。 ・ システム標準のファイル(テキストファイル、バイナリファイル) 記述例 例 例1) 半角空白を含む出力ファイルパス名を指定する場合は、次のように指定します。 -o "c:¥out files¥sortout" 例2) 出力ファイルにc:¥out¥sortout1を指定し、出力ファイルがファイルシステムの許容量を超えたときのリカバリー処理として、続きをd: ¥out¥sortout2へ出力する場合は、次のように指定します。 -o c:¥out¥sortout1 -o d:¥out¥sortout2 4.2.15 処理定義ファイルオプション(-P) 処理定義ファイルを指定します。 PowerSORT V2.0以前、およびPowerSORT Workstationなどの製品に付属しているPowerSORT GUIでは、指定したオプション情報を 処理定義ファイルに保存できます。この処理定義ファイルのオプション情報に従ってbsortコマンドを実行します。 記述形式 -P ProcDef-file ProcDef-file 処理定義ファイルを指定します。 処理定義ファイルに空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。 記述例 例 処理定義ファイルオプションは、他のオプションと同時に指定できません。コマンドの記述形式は常に以下のようになります。 bsort -P ProcDef-file - 90 - 注意 ・ 処理定義ファイル内の一時ファイルフォルダ(TEMP_DIR)の指定は無効となります。bsortコマンド実行前に、環境変数 BSORT_TMPDIRで設定してください。 ・ 処理定義ファイルは、エディタ等を利用して作成、および変更をしないでください。 4.2.16 選択フィールドオプション(-p) レコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 複数の選択フィールドを指定することもできます。コンマ( , )で区切って複数の選択フィールドを指定した場合は、選択条件の論理積 となります。複数の選択フィールドオプションを指定した場合は、選択条件の論理和となります。 記述形式 -p sel-def [ ,sel-def ...] sel-def の記述形式 sel-def の記述形式には、以下の2つの形式があります。 ・ sel-def の記述形式1 sel-def の記述形式1では、2つの選択フィールドを比較します。 cmp の左辺は被比較フィールドを、右辺は比較フィールドを示します。 指定した被比較フィールド、または比較フィールドが入力レコードに存在しない場合は、エラーになります。 pos.len typ [ opt ] .cmp.pos.len typ ・ sel-def の記述形式2 sel-def の記述形式2では、選択フィールドと自己規定値を比較します。 cmp の左辺は被比較フィールドを、右辺は自己規定値を示します。 指定した被比較フィールドが入力レコードに存在しない場合は、エラーになります。 pos.len typ [ opt ] .cmp.self pos 被比較フィールド、または比較フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 len 被比較フィールド、または比較フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数でlen に指定します。この場合、pos の 位置にある1バイトのフィールド値とマスク値の論理積をフィールドの値とします。マスク値は、被比較フィールドと比較フィールドに同じ 値を指定します。 指定可能な各データ形式の長さについては、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、被比較フィール ド、または比較フィールドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォー テーション( "" )は、1つのダブルクォーテーション( " )として長さを計算します。 - 91 - 例) テキストファイルCSV形式における、被比較フィールドと長さ 被比較フィールド ABC "ABC" "A""B""C" "A,B,C" 被比較フィールドとして有効な文字 ABC ABC A"B"C A,B,C 被比較フィールドの長さ 3バイト 3バイト 5バイト 5バイト self 自己規定値を指定します。 self の記述形式を以下に示します。 ・ self の記述形式1 self の記述形式1では、文字を直接指定します。 '文字列 ' ・ self の記述形式2 self の記述形式2では、文字を16進数で指定します。 x16進数 ・ self の記述形式3 self の記述形式3では、数値、または数字を10進数で指定します。 d10進数 注意 ・ オプション引数で自己規定値の文字列を指定する場合は、オプション引数全体をダブルクォーテーション( " )で囲みます。 ・ オプション引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、ダブルクォーテーション( " )の前 に円記号( ¥ )を指定します。 ・ オプション引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、クォーテーション( ' )を2つ続けて指定し ます。 ・ 自己規定値の10進数を指定する場合は、符号を指定できます。 ・ 自己規定値は、被比較フィールドのデータ形式に合わせてから比較します。 ・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。 ・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま せん。 ・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールドを囲むダブルクォーテーション( " )を 指定する必要はありません。 ・ 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号なし固定小数点2進数、システム依 存形式固定小数点2進数、システム依存形式符号なしの自己規定値を10進数で指定する場合、その値は以下の範囲になります。 データ形式 指定可能な値 符号ありのデータ形式 -2147483648 ~ 2147483647 符号なしのデータ形式 0 ~ 4294967295 - 92 - typ 被比較フィールドと比較フィールドのデータ形式を指定します。 指定可能なデータ形式については、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 注意 ・ 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデータ形式に合わせてから比較します。 ・ 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールドの短い方の長さで比較します。 ・ 比較フィールドのデータ形式の種類が数値、または数字の場合、被比較フィールドと比較フィールドの短い方を長い方の長さに合 わせて比較します。 ・ ASCIIコードは、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テキストファ イルの場合、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。 ・ EBCDICコードは、入力コード系オプション(-q)がEBCDICコード系の場合に指定できます。 ・ シフトJISコードは、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。 ・ Unicode UCS-2形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テ キストファイルの場合、入力コード系オプション(-q)がUnicode系(UCS-2形式)の場合に指定できます。 ・ Unicode UTF-8形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テ キストファイルの場合、入力コード系オプション(-q)がUnicode系(UTF-8形式)の場合に指定できます。 opt 被比較フィールドの操作を指定します。 指定可能な操作を以下に示します。バイナリファイルの場合は、wだけ指定できます。テキストファイルの場合は、全ての被比較フィー ルドの操作が指定できます。複数の操作を指定する場合は、続けて記述します。 意味 opt b フィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象とします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。データ形式が ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式の場合に指定できま す。 wとは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較します。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式、またはUnicode UTF-8 形式で、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。 nとは排他関係にあります。 注意 被比較フィールド、および比較フィールドのデータ形式に照合順序変更を指定した場合、被比較フィールドの操作は指定できません。 cmp 比較演算子を指定します。 以下に比較演算子とその意味を示します。 - 93 - 比較演算子 意味(真の条件) eq 被比較フィールド = 比較フィールド、または自己規定値 ne 被比較フィールド ≠ 比較フィールド、または自己規定値 gt 被比較フィールド > 比較フィールド、または自己規定値 ge 被比較フィールド ≧ 比較フィールド、または自己規定値 lt 被比較フィールド < 比較フィールド、または自己規定値 le 被比較フィールド ≦ 比較フィールド、または自己規定値 記述例 例 例1) 12バイト目の位置から長さ4バイトの固定小数点2進数のフィールドが「30」以上のレコードを選択する場合は、次のように指定しま す。 -p 11.4fbi.ge.d30 例2) 10バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「abcde」があるレコードを選択する場合は、次のように指定 します。 -p "9.5asc.eq.'abcde'" 例3) 10バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「"abcd」があるレコードを選択する場合は、次のように指定 します。 -p "9.5asc.eq.'¥"abcd'" 例4) 10バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「abc'd」があるレコードを選択する場合は、次のように指定 します。 -p "9.5asc.eq.'abc''d'" 例5) 4バイト目の位置から長さ3バイトのASCIIコードのフィールドに文字列「abc」がある、かつ10バイト目の位置から長さ3バイトのASCII コードのフィールドに文字列「abc」があるレコード、または4バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「abcde」 があるレコードを選択する場合は、次のように指定します。 -p "3.3asc.eq.'abc'","9.3asc.eq.'abc'" -p "3.5asc.eq.'abcde'" 4.2.17 文字コード系変換オプション(-Q) ASCIIコードとEBCDICコード間の変換方式を指定します。 記述形式 -Q altmode altmode ASCIIコードとEBCDICコード間の変換方式を指定します。 以下から1つを選択して指定します。 altmode 意味 0 EBCDICコードとUS ASCIIコード間のコード変換を指定します。(省略値) 1 EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定します。 2 EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定します。 - 94 - 参考 以下の場合にASCIIコードとEBCDICコード間の変換が行われます。 ・ 入力ファイルのコード系(入力コード系オプション(-q))がASCIIコード系でキーフィールドのデータ形式がEBCDICコードの場合に おけるキーフィールドの比較 ・ 入力ファイルのコード系(入力コード系オプション(-q))がEBCDICコード系でキーフィールドのデータ形式がASCIIコードの場合に おけるキーフィールドの比較 ・ 選択フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己規定値の変換 ・ 再編成フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己規定値の変換 4.2.18 入力コード系オプション(-q) 入力ファイルのコード系を指定します。 記述形式 -q cdmode cdmode 入力ファイルのコード系を指定します。 以下から1つを選択して指定します。 意味 cdmode au ASCIIコード系 (富士通COBOL形式) (省略値) ac ASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式) eb EBCDICコード系 (注) u2 Unicode系 (UCS-2形式) u8 Unicode系 (UTF-8形式) 注) EBCDICコード系はバイナリファイルの場合に指定可能です。 4.2.19 レコード読み飛ばしオプション(-R) 入力ファイルの先頭から処理対象としないレコードを件数で指定します。 ファイルの先頭にヘッダー情報など処理の対象としないデータがある場合に使用します。 記述形式 -R skiprec-no [ ,skiprec-no ...] skiprec-no 処理対象としないレコードを件数で指定します。 省略した場合は全レコードが処理対象となります。入力ファイルが複数ある場合は、ファイルの指定順に合わせてコンマ( , )で区切っ て件数を指定します。 記述例 例 例1) 最初の入力ファイルの先頭から10件、2番目の入力ファイルの先頭から20件のレコードを読み飛ばします。 - 95 - -R 10,20 例2) 入力ファイルが3つある場合、3番目の入力ファイルの先頭から100件のレコードを読み飛ばします。 -R ,,100 例3) 入力ファイルが3つある場合、最初の入力ファイルの先頭から100件のレコードを読み飛ばします。2番目、3番目の入力ファイル のレコードの読み飛ばしは行われません。 -R 100 4.2.20 降順オプション(-r) 降順に並べて出力することを指定します。 キーフィールドの指定を省略したときに有効なオプションです。 記述形式 -r 4.2.21 処理(ソート、マージ、コピー)オプション(-s、-m、-c) 入力ファイルに対して行う処理を指定します。 記述形式 [ -s ] | -m | -c 以下に処理オプションと意味を示します。各処理オプションは互いに排他関係にあります。 処理オプション 意味 -s ソート機能 (省略値) -m マージ機能 -c コピー機能 4.2.22 テキストファイルオプション(-T) 入力ファイルがテキストファイルであることを指定し、同時にフィールドの指定方法を指定します。 記述形式 -T { flt | fix | csv | tsv } [ ,{ n | w | N } b d i j ] 参考 flt、fix、csv、およびtsvは、キーフィールド、選択フィールド、再編成フィールド、および集約フィールドの指定方法を表します。 続くn、w、N、b、d、i、およびjは、キーフィールドの指定を省略し、レコード全体をキーフィールドとする場合のキーフィールドの操作を 表します。複数の操作を指定する場合は、続けて記述します。なお、csv、およびtsvの場合、キーフィールドの指定は省略できません。 flt テキストファイル浮動フィールド指定を示します。 フィールド分離文字列で区切られた、フィールドの番号で指定する形式です。フィールド分離文字列については、4.2.23 フィールド分 離文字オプション(-t)を参照してください。fix、csv、およびtsvとは排他関係にあります。 - 96 - fix テキストファイル固定フィールド指定を示します。 先頭からのバイト位置で指定する形式です。flt、csv、およびtsvとは排他関係にあります。 csv テキストファイルCSV形式を示します。 コンマで区切られたフィールド番号で指定する形式です。flt、fix、およびtsvとは排他関係にあります。 tsv テキストファイルTSV形式を示します。 タブで区切られたフィールド番号で指定する形式です。flt、fix、およびcsvとは排他関係にあります。 n 符号を含んだ数字の文字列を算術的な値によって比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。w、およびNとは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較して並べます。 n、およびNとは排他関係にあります。 N 英字と数字の連結データ(例えば「data123」など)を英字と数値に分けて評価し並べます。 英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。指定フィールドの左から評価し、有効データ後 に出現したデータは無視します。n、およびwとは排他関係にあります。 b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象にします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 注意 ・ 入力ファイルがテキストファイルの場合は、テキストファイルオプション(-T)の指定が必要です。 ・ テキストファイルオプション(-T)を省略した場合は、バイナリファイルとして処理します。 4.2.23 フィールド分離文字オプション(-t) テキストファイル浮動フィールド指定の場合に、フィールド分離文字列を指定します。 記述形式 -t chars - 97 - chars テキストファイル浮動フィールド指定の場合に、フィールド分離文字列を指定します。 省略時は、タブ、および空白をフィールド分離文字として扱います。フィールド分離文字列に空白を含む場合は、フィールド分離文字 列をダブルクォーテーション( " )で囲みます。フィールド分離文字列にダブルクォーテーション( " )を指定する場合は、ダブルクォーテーション ( " )の前に円記号( ¥ )を指定します。 記述例 例 例1) フィールド分離文字列として、文字列「SEPARATE」を指定します。 -t SEPARATE 例2) フィールド分離文字列として、文字列「F S」を指定します。 -t "F S" 例3) フィールド分離文字列として、文字「'」を指定します。 -t ' 例4) フィールド分離文字列として、文字「"」を指定します。 -t ¥" 例5) フィールド分離文字列として、文字「¥」を指定します。 -t ¥ 例6) フィールド分離文字列として、文字列「**」を指定します。 -t ** 例7) フィールド分離文字列として、文字列「* *」を指定します。 -t "* *" 注意 フィールド分離文字列には、レコード分離文字列(レコード分離文字オプション(-L))と同じ文字を指定できません。 4.2.24 サプレスオプション(-u) サプレス機能を指定します。 サプレス機能は、指定したキーフィールドの値が同一のとき、1つのレコードを残して他を削除する機能です。このとき削除されるレコー ドは不定です。 サプレス機能は、ソート機能、またはマージ機能のときに有効です。レコード集約機能(-g)とは排他関係にあります。先入力先出力(FIFO) 機能(-f、または環境変数BSORT_FIFO)と同時に指定された場合、先入力先出力(FIFO)機能の指定は無視されます。 記述形式 -u 4.2.25 入出力上書きオプション(-v) 出力ファイルが入力ファイルと同じ場合に、処理を継続することを指定します。 入出力上書きオプション(-v)を指定し、出力ファイルに入力ファイルと同じファイルを指定すると、指定された入力ファイルに処理結果 - 98 - が上書きされるため、ディスクスペースを節約できます。入出力上書きオプション(-v)を省略して、出力ファイルに入力ファイルと同じファ イルを指定した場合は、エラーとなります。 入出力上書きオプション(-v)は、ソート機能のときに有効です。 記述形式 -v 注意 出力ファイルが入力ファイルと同じ場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場合がありますの で、注意してください。 4.2.26 標準出力オプション(-w) 出力ファイルの指定がない場合に、処理結果を標準出力に出力することを指定します。 出力ファイルオプション(-o)と同時に指定されたときは、出力ファイルオプション(-o)が優先されます。 記述形式 -w 4.2.27 インデックス指定オプション(-X) 出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを指定します。 富士通COBOLファイルシステムの索引ファイルの場合は、インデックス指定オプション(-X)を省略できません。 記述形式 -X index-def [ ,index-def ...] index-def インデックスフィールドを指定します。 最初に主キーを指定し、その後に副キーを指定します。 index-def の記述形式 pos.len typ opt pos インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。 len インデックスフィールドの長さをバイト数で指定します。 typ インデックスフィールドのデータ形式を指定します。 指定可能なデータ形式と長さを以下に示します。 種類 文字 データ形式 ASCIIコード typ asc 長さ(バイト) 1~254 - 99 - 意味 富士通COBOLの CHARTYPE 種類 データ形式 typ 長さ(バイト) 意味 Unicode UCS-2形式(注) uc2 2~254 (2の倍数) 富士通COBOLの CHARTYPE Unicode UTF-8形式 ut8 1~254 富士通COBOLの CHARTYPE 注) Unicode UCS-2形式のバイトオーダーはLittle endianとなります。 opt インデックスフィールドの操作を指定します。 指定可能な操作を以下に示します。最終セグメントには、必ずeを指定します。 意味 opt a 昇順に並べます。 d インデックスに重複キー指定を示します。 e セグメントの終りを示します。 4.2.28 照合順序変更オプション(-x) 照合順序を変更するための情報を指定します。 記述形式 -x col-def [ ,col-def ...] col-def 照合順序を変更するための情報を指定します。 col-defは、ccttの形式で記述します。照合順序変更機能では、フィールド中に16進数'cc'と等しいバイトがあれば、そのバイトを16進 数'tt'として比較します。コンマ( , )で区切って複数の照合順序を変更するための情報を指定できます。'cc'で指定されていない16進数 は、置き換えられずにそのまま比較します。 照合順序変更機能は、キーフィールドのデータ形式、選択フィールドの被比較フィールド、および比較フィールドのデータ形式にcol が指定されている場合に、照合順序変更オプション(-x)で指定した照合順序で比較します。 記述例 例 例1) 16進数0x20を、16進数0x23として比較する場合は、次のように指定します。 -x 2023 例2) 同じ16進数に対して複数の照合順序変更を指定した場合は、最後に指定した照合順序の変更が有効になります。以下の例で は、16進数0x20は16進数0x3Aとして比較します。 -x 2023,6141,203A 4.2.29 メモリサイズオプション(-y) PowerSORTが使用する作業域の大きさ(メモリサイズ)を指定します。 記述形式 -y memsize - 100 - memsize PowerSORTが使用する作業域の大きさをキロバイト数で指定します。 32~2097151キロバイトの範囲で指定します。メモリサイズオプション(-y)を省略した場合、または0を指定した場合、環境変数 BSORT_MEMSIZEの指定があればその大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。2097152以上 の値を指定した場合は、2097151を指定したとみなされます。 注意 メモリサイズオプション(-y)は、環境変数BSORT_MEMSIZEの指定より優先されます。 4.2.30 レコード形式オプション(-Z) バイナリファイルの場合にレコード形式を指定します。 システムの標準ファイルシステムのファイルの場合は省略可能です。指定する場合は、固定長レコード形式を指定します。富士通COBOL ファイルシステム、Micro Focus COBOLファイルシステム、Btrieveファイルシステム、およびRDMファイルシステムのファイルの場合は 指定が必要です。テキストファイルの場合は指定できません。指定可能なレコード形式については、2.6 PowerSORTの入出力環境を 参照してください。 記述形式 -Z recform recform 以下から選択して指定します。 意味 recform f 固定長レコード形式を示します。 v 可変長レコード形式を示します。 4.2.31 レコード長オプション(-z) 入力レコードのレコード長、または最大レコード長を指定します。 記述形式 -z recsize recsize レコード長をバイト数で指定します。 バイナリファイルの場合、レコード形式が固定長レコード形式のときは、レコード長を指定します。また、レコード形式が可変長レコード 形式のときは、ファイル内の最大レコード長を指定します。 テキストファイルの場合は、改行コードを含む最大レコード長を指定します。 - 101 - 第5章 PowerSORTのbsortexコマンドを使用する ここでは、bsortexコマンドについて説明します。 bsortexコマンドをバッチ処理などに組み込むことで、大量データの高速ソートマージ処理を実現できます。 5.1 bsortexコマンドの形式 bsortexコマンドは、テキストファイル、およびバイナリファイルのデータに対して、ソート処理、マージ処理、またはコピー処理を行いま す。指定された処理が正常に終了した場合は、0の終了コードを返します。エラーが発生した場合は、0以外の終了コードを返しま す。 bsortexコマンドには、使用する機能により3つの記述形式があります。それぞれ、指定できるオプションに違いがありますので、使用す る機能に合わせて適切なオプションを指定してください。 bsortexコマンド記述上の注意事項 注意 ・ ハイフン(-)が付いたものをオプションと呼び、オプションの後に続けて指定するものをオペランドと呼びます。 例) -sortオプションのkeyオペランド ・ 角括弧( [ ] )で囲まれた字句は省略可能です。 ・ 中括弧( { } )は棒線( | )で区切られた字句の選択を示します。 ・ 斜体は、必要に応じて利用者が値を設定します。 ・ ...は繰り返し指定できることを示します。 ・ イコール(=)で値を指定するオペランドの場合、イコール(=)の前後には空白を入れずに続けて指定します。 5.1.1 ソート機能を使用する場合 以下にソート機能を使用する場合のコマンド形式を示します。 bsortex [ [ [ [ -h ] -a argument-file ] -define keyword=word-definition [ keyword=word-definition...] [ -define...] ] -sort [ key=key-definition [ ,key-definition...] [ key=...] ] [ jef=jef-definition [ ,jef-definition...] [ jef=...] ] ] [ -record [ recform=record-format ] [ fldsep=field-separate ] ] -input reclen=record-length [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system [ /owner-name [ ,owner-name...] ] ] ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ eof= { effect | ignore } ] [ overwrite ] [ -summary { field=summary-definition [ ,summary-definition...] [ field=...] | suppress } [ { first | last } ] ] [ -output [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system ] ] [ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] | case= { condition-expression [ ,condition-expression ] | other } [ case=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ idxflag=index-flag ] [ idxkey=index-key [ ,index-key...] [ idxkey=...] ] - 102 - [ linedlmt=line-delimiter ] [ removeeof ] [ -output...] ] [ -option [ colseq=col-def [ ,col-def...] [ colseq=...] ] [ fifo ] [ icode=input-code ] [ iconv=input-conversion ] [ memsize=memory-size ] [ msgfile=message-file ] [ msglevel=message-level ] [ tmpdir=temp-directory [ ,temp-directory...] [ tmpdir=...] ] ] 5.1.2 マージ機能を使用する場合 以下にマージ機能を使用する場合のコマンド形式を示します。 bsortex [ -h ] [ -a argument-file ] [ -define keyword=word-definition [ keyword=word-definition...] [ -define...] ] -merge [ key=key-definition [ ,key-definition...] [ key=...] ] [ jef=jef-definition [ ,jef-definition...] [ jef=...] ] [ -record [ recform=record-format ] [ fldsep=field-separate ] ] -input reclen=record-length [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system [ /owner-name [ ,owner-name...] ] ] ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ eof= { effect | ignore } ] [ -summary { field=summary-definition [ ,summary-definition...] [ field=...] | suppress } [ { first | last } ] ] [ -output [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system ] ] [ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] | case= { condition-expression [ ,condition-expression ] | other } [ case=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ idxflag=index-flag ] [ idxkey=index-key [ ,index-key...] [ idxkey=...] ] [ linedlmt=line-delimiter ] [ removeeof ] [ -output...] ] [ -option [ colseq=col-def [ ,col-def...] [ colseq=...] ] [ icode=input-code ] [ iconv=input-conversion ] [ memsize=memory-size ] [ msgfile=message-file ] [ msglevel=message-level ] ] 5.1.3 コピー機能を使用する場合 以下にコピー機能を使用する場合のコマンド形式を示します。 bsortex [ -h ] [ -a argument-file ] [ -define keyword=word-definition [ keyword=word-definition...] [ -define...] ] -copy [ -record [ recform=record-format ] [ fldsep=field-separate ] ] -input reclen=record-length [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system [ /owner-name [ ,owner-name...] ] ] ] [ { include=condition-expression [ ,condition-expression ] [ include=...] | omit=condition-expression [ ,condition-expression ] [ omit=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ eof= { effect | ignore } ] [ -output [ file=file-name [ ,file-name...] [ file=...] [ filesys=file-system ] ] [ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ] [ { include=condition-expression [ ,condition-expression ] [ include=...] - 103 - | omit=condition-expression [ ,condition-expression ] [ omit=...] | case= { condition-expression [ ,condition-expression ] | other } [ case=...] } ] [ reconst=reconst-definition [ ,reconst-definition...] [ reconst=...] ] [ idxflag=index-flag ] [ idxkey=index-key [ ,index-key...] [ idxkey=...] ] [ linedlmt=line-delimiter ] [ removeeof ] [ -output...] ] [ -option [ colseq=col-def [ ,col-def...] [ colseq=...] ] [ icode=input-code ] [ iconv=input-conversion ] [ memsize=memory-size ] [ msgfile=message-file ] [ msglevel=message-level ] ] 5.2 bsortexコマンドオプション ここでは、bsortexコマンドの各オプションについて説明します。 5.2.1 アーギュメントファイルオプション(-a) アーギュメントファイルを指定します。 アーギュメントファイルは、bsortexコマンドの各種オプション引数を記述したテキストファイルです。アーギュメントファイルは、固定のオ プション引数を別途指定しておきたい場合や、コマンドのオプション引数が長くなる場合などで使用します。 記述形式 -a argument-file argument-file アーギュメントファイルを指定します。 他のオプション引数とアーギュメントファイルオプションを同時に指定した場合、アーギュメントファイルオプションを指定した位置に、 アーギュメントファイルで記述したオプション引数が展開されます。アーギュメントファイルオプションは複数指定できます。アーギュメン トファイル名に空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。 アーギュメントファイルには、オプション引数を複数の行に記述できます。ただし、オペランドの途中で改行することはできません。アー ギュメントファイルにアーギュメントファイルオプションは指定できません。アーギュメントファイルには、bsortexコマンドのオプション引数 だけを記述します。 アーギュメントファイルの記述例 例 例1) アーギュメントファイルの正しい記述例 -sort key=32.12pdla,25.4fbia↓ -input reclen=200↓ file=master.db↓ include=25.4fbi.ge.d35↓ -output file=bsortout↓(注) 注)↓印は改行コード(CRLF)を示しています。 例2) アーギュメントファイルの誤った記述例 この例のように、オペランド(keyオペランド)の途中では改行できません。 -sort key=32.12pdla,↓ 25.4fbia↓ -input reclen=200↓ file=master.db↓ include=25.4fbi.ge.d35↓ -output file=bsortout↓(注) - 104 - 注)↓印は改行コード(CRLF)を示しています。 アーギュメントファイルの展開について アーギュメントファイル(argument-file)には、以下の内容が記述されているものとします。 -sort key=0.10asca 例 例1) 正しい指定例 bsortex -a argument-file -input reclen=100 file=infile1 と指定した場合、以下の指定と同じです。 bsortex -sort key=0.10asca -input reclen=100 file=infile1 例2) 誤った指定例 bsortex -sort -a argument-file -input reclen=100 file=infile1 と指定した場合、以下の指定と同じです。 bsortex -sort -sort key=0.10asca -input reclen=100 file=infile1 この場合、重複して指定できない-sortオプションが2つ指定されているため、エラーになります。 5.2.2 コピーオプション(-copy) コピー機能を指定します。 コピーオプション(-copy)にはオペランドはありません。 コピーオプション(-copy)、ソートオプション(-sort)、およびマージオプション(-merge)は互いに排他関係にあります。 記述形式 -copy 5.2.3 定義オプション(-define) フィールド定義やファイルパス名に対して任意の簡略名を定義します。 ここで定義した任意の簡略名を他のオプションで使用することができます。 記述形式 -define keyword=word-definition [ keyword=word-definition ...][ -define ...] keyword=word-definition keyword には、先頭に@を付けた英数字を指定します。 word-definition には、keyword に定義する文字列を指定します。 注意 ・ オプション名(例えば-sort)、およびイコール(=)で値を指定するオペランドの左辺部(例えばkey)をword-definition に指定できませ ん。 - 105 - ・ 簡略名を複数定義した場合、指定順に置き換えられます。このため、ある簡略名を含む他の簡略名を定義する場合、簡略名の指 定順により結果が変わるため、注意が必要です。 例1) 置換え前 -define @HOK=hoken¥hoken1.dat @HOKEN2=hoken¥hoken2.dat -sort file=@HOKEN2 置換え後 -sort file=hoken¥hoken1.datEN2 例2) 置換え前 -define @HOKEN2=hoken¥hoken2.dat @HOK=hoken¥hoken1.dat -sort file=@HOKEN2 置換え後 -sort file=hoken¥hoken2.dat 記述例 例 -define @HOKEN1=hoken¥hoken1.dat @HOKEN2=hoken¥hoken2.dat @HOKEN34=hoken¥hoken3.dat,hoken¥hoken4.dat @NAME=12.8asc @AGE=20.2fbi -sort key=@AGEr,@NAMEa -input file=@HOKEN1,@HOKEN2 [email protected] 5.2.4 ヘルプオプション(-h) bsortexコマンドのコマンド形式の一覧を表示します。 他のオプションと共に指定された場合は、指定されたオプションのチェックを行い、エラーがあった場合はエラーメッセージを出力しま す。 このオプションが指定されている場合は、PowerSORTの処理は行われません。 記述形式 -h 5.2.5 入力ファイル情報オプション(-input) 入力ファイル情報を指定します。 標準入力から入力する場合は、fileオペランド、およびfilesysオペランドを省略します。 記述形式 -input reclen=record-length [ file=file-name [ ,file-name ...] [ file= ...] [ filesys=file-system [ /owner-name [ ,owner-name ...] ] ] ] [ { include=condition-expression [ ,condition-expression ] [ include= ...] | omit=condition-expression [ ,condition-expression ] [ omit= ...] } ] - 106 - [ reconst=reconst-definition [ ,reconst-definition ...] [ reconst= ...] ] [ eof= { effect | ignore } ] [ overwrite ] 5.2.5.1 reclenオペランド 入力レコードのレコード長、または最大レコード長を指定します。 記述形式 reclen=record-length record-length レコード長をバイト数で指定します。 バイナリファイルの場合、レコード形式が固定長レコード形式のときは、レコード長を指定します。また、レコード形式が可変長レコード 形式のときは、ファイル内の最大レコード長を指定します。 テキストファイルの場合は、改行コードを含む最大レコード長を指定します。 5.2.5.2 fileオペランド 入力ファイルのファイルパス名を指定します。 記述形式 file=file-name file-name 入力ファイルのファイルパス名を指定します。 コンマ( , )で区切って複数の入力ファイルを指定できます。 fileオペランド記述上の注意事項 注意 ・ オペランド引数でコンマ( , )を含んだファイルパス名を指定する場合は、file-name 全体をクォーテーション( ' )で囲み、さらにダブ ルクォーテーション( " )で囲みます。 ・ オペランド引数でクォーテーション( ' )を含んだファイルパス名を指定する場合は、クォーテーション( ' )を2つ続けて指定し、file-name 全体をダブルクォーテーション( " )で囲みます。 ・ オペランド引数で空白を含んだファイルパス名を指定する場合は、file-name 全体をダブルクォーテーション( " )で囲みます。 記述例 例 例1) コンマ( , )を含んだファイルパス名を指定する例を示します。 file="'abc,def'" 例2) クォーテーション( ' )を含んだファイルパス名を指定する例を示します。 file="abc''def" 例3) 空白を含んだファイルパス名を指定する例を示します。 file="abc def" - 107 - 例4) 複数の入力ファイルを指定する例を示します。 file=sortin1,sortin2 5.2.5.3 filesysオペランド fileオペランドで指定した入力ファイルのファイルシステムを指定します。 記述形式 filesys=file-system [ /owner-name [ ,owner-name ...] ] file-system 入力ファイルのファイルシステムを指定します。 ファイルシステムは識別子で指定します。指定可能なファイルシステムを以下に示します。 識別子 ファイルシステムの説明 dos システムの標準ファイルシステム (省略値) cobseq 富士通COBOLファイルシステム(順ファイル) cobs64 富士通COBOLファイルシステム(BSAM対応順ファイル) cobrel 富士通COBOLファイルシステム(相対ファイル) cobidx 富士通COBOLファイルシステム(索引ファイル) mfcseq Micro Focus COBOLファイルシステム(順ファイル) mfcrel Micro Focus COBOLファイルシステム(相対ファイル) mfcidx Micro Focus COBOLファイルシステム(索引ファイル) btrv Btrieveファイルシステム rdm RDMファイルシステム 注意 ・ PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、アクセスすることができません。また、富士通 COBOLファイルシステム(索引ファイル)を指定した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもア クセスすることができません。共用モード、排他モードについては、お使いの富士通COBOLファイルシステムのマニュアルを参照 してください。 ・ 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定しても、使用する富士通COBOLファイルシステムが対応していな い場合は富士通COBOLファイルシステム(順ファイル)として動作します。BSAM対応については、お使いの富士通COBOLファイ ルシステムのマニュアルを参照してください。 ・ 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定した場合は、富士通COBOLファイルシステムの仕様によりレコード 排他処理が行われません。 ・ Micro Focus COBOLファイルシステム(索引ファイル)、およびBtrieveファイルシステムは、入力ファイルのファイルシステムとしての み指定可能です。 ・ データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイルに指定することはできません。 owner-name Btrieveファイルシステムで必要な場合には、owner-name に最大8文字までのオーナーネームを指定します。 オーナーネームでは、大文字と小文字が区別されます。また、入力ファイルの指定順にコンマ( , )で区切って複数のオーナーネーム を指定できます。入力ファイルの数がオーナーネームの数より多い場合、残りの入力ファイルに対するオーナーネームは省略されたと みなします。入力ファイルの数がオーナーネームの数より少ない場合、余分に指定したオーナーネームは無視されます。 - 108 - 記述例 例 例1) 入力ファイルのファイルシステムに富士通COBOLファイルシステム(BSAM対応順ファイル)を指定する場合、以下のように指定し ます。 filesys=cobs64 例2) 最初の入力ファイルのオーナーネームにowner1、2番めの入力ファイルのオーナーネームにowner2を指定する場合、以下のよう に指定します。 filesys=btrv/owner1,owner2 例3) 入力ファイルが2つある場合、2番めの入力ファイルのオーナーネームにowner2を指定する場合、以下のように指定します。 filesys=btrv/,owner2 5.2.5.4 includeオペランド 入力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 条件が成立したレコードを処理の対象とします。 includeオペランドは、omitオペランドとは排他関係にあります。 記述形式 include=condition-expression condition-expression 選択フィールド(選択条件)を指定します。 コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となります。複数のincludeオペランドを指定 した場合は、選択条件の論理和となります。 condition-expression の記述形式 condition-definition [ { .and. | .or. } [ ( ]condition-expression [ ) ] ] and 選択条件の論理積を示します。 コンマ( , )で区切って複数指定した場合と同等です。 or 選択条件の論理和を示します。 includeオペランドを複数指定した場合と同等です。 condition-definition 1つの選択フィールド(選択条件)を指定します。 condition-definition の記述形式 condition-definition の記述形式には、以下の3つの形式があります。 ・ condition-definition の記述形式1 condition-definition の記述形式1では、2つの選択フィールドを比較します。 cmp の左辺は被比較フィールドを、右辺は比較フィールドを示します。 指定した被比較フィールド、または比較フィールドが入力レコードに存在しない場合は、エラーになります。 - 109 - pos.len typ [ opt ].cmp.pos.len typ ・ condition-definition の記述形式2 condition-definition の記述形式2では、選択フィールドと自己規定値を比較します。 cmp の左辺は被比較フィールドを、右辺は自己規定値を示します。 指定した被比較フィールドが入力レコードに存在しない場合は、エラーになります。 pos.len typ [ opt ].cmp.self-def ・ condition-definition の記述形式3 condition-definition の記述形式3では、レコード件数によって選択します。 RECNUM.cmp.num pos 被比較フィールド、または比較フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 len 被比較フィールド、または比較フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数でlen に指定します。この場合、pos の 位置にある1バイトのフィールド値とマスク値の論理積をフィールドの値とします。マスク値は、被比較フィールドと比較フィールドに同じ 値を指定します。 指定可能な各データ形式の長さについては、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、被比較フィール ド、または比較フィールドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォー テーション( "" )は、1つのダブルクォーテーション( " )として長さを計算します。 例) テキストファイルCSV形式における、被比較フィールドと長さ 被比較フィールド ABC "ABC" "A""B""C" "A,B,C" 被比較フィールドとして有効な文字 ABC ABC A"B"C A,B,C 被比較フィールドの長さ 3バイト 3バイト 5バイト 5バイト typ 被比較フィールドと比較フィールドのデータ形式を指定します。 指定可能なデータ形式については、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 注意 ・ 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデータ形式に合わせてから比較します。 ・ 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールドの短い方の長さで比較します。 ・ 比較フィールドのデータ形式の種類が数値、または数字の場合、被比較フィールドと比較フィールドの短い方を長い方の長さに合 わせて比較します。 - 110 - ・ ASCIIコードは、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコー ド系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペラン ド)がASCIIコード系の場合に指定できます。 ・ EBCDICコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系の場合に指定でき ます。 ・ シフトJISコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がASCIIコード系の場合に指定できま す。 ・ Unicode UCS-2形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDIC コード系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペ ランド)がUnicode系(UCS-2形式)の場合に指定できます。 ・ Unicode UTF-8形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDIC コード系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペ ランド)がUnicode系(UTF-8形式)の場合に指定できます。 opt 被比較フィールドの操作を指定します。 指定可能な操作を以下に示します。バイナリファイルの場合は、wだけ指定できます。テキストファイルの場合は、全ての被比較フィー ルドの操作が指定できます。複数の操作を指定する場合は、続けて記述します。 意味 opt b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象とします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。データ形式が ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式の場合に指定できま す。 wとは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較します。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式、またはUnicode UTF-8 形式で、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)が EBCDICコード系以外の場合に指定できます。 nとは排他関係にあります。 注意 ・ 被比較フィールド、および比較フィールドのデータ形式に照合順序変更を指定した場合、被比較フィールドの操作は指定できま せん。 ・ 被比較フィールド、および比較フィールドのデータ形式に文字形式2桁年号を指定した場合、被比較フィールドの操作の指定は無 視されます。 self-def 自己規定値を指定します。 self-def の記述形式を以下に示します。 ・ self-def の記述形式1 self-def の記述形式1では、文字を直接指定します。 - 111 - '文字列 ' ・ self-def の記述形式2 self-def の記述形式2では、文字を16進数で指定します。 x16進数 ・ self-def の記述形式3 self-def の記述形式3では、数値、または数字を10進数で指定します。 d10進数 注意 ・ オペランド引数で自己規定値の文字列を指定する場合は、オペランド引数全体をダブルクォーテーション( " )で囲みます。 ・ オペランド引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、ダブルクォーテーション( " )の前 に円記号( ¥ )を指定します。 ・ オペランド引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、クォーテーション( ' )を2つ続けて指定し ます。 ・ 自己規定値の10進数を指定する場合は、符号を指定できます。 ・ 自己規定値は、被比較フィールドのデータ形式に合わせてから比較します。 ・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。 ・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま せん。 ・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールドを囲むダブルクォーテーション( " )を 指定する必要はありません。 ・ 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号なし固定小数点2進数、システム依 存形式固定小数点2進数、システム依存形式符号なしの自己規定値を10進数で指定する場合、その値は以下の範囲になります。 データ形式 指定可能な値 符号ありのデータ形式 -2147483648 ~ 2147483647 符号なしのデータ形式 0 ~ 4294967295 cmp 比較演算子を指定します。 以下に比較演算子とその意味を示します。 比較演算子 意味(真の条件) eq 被比較フィールド = 比較フィールド、または自己規定値 ne 被比較フィールド ≠ 比較フィールド、または自己規定値 gt 被比較フィールド > 比較フィールド、または自己規定値 ge 被比較フィールド ≧ 比較フィールド、または自己規定値 lt 被比較フィールド < 比較フィールド、または自己規定値 le 被比較フィールド ≦ 比較フィールド、または自己規定値 - 112 - RECNUM レコード件数によって選択することを指定します。 condition-definition の記述形式3の場合に、'RECNUM'の固定文字列を指定します。 num レコード件数を指定します。 入力の場合、入力ファイルの先頭レコードを1件目として指定します。複数の入力ファイルを指定した場合、ファイルごとの先頭レコードを 1件目として選択します。出力の場合、集約、またはサプレス後に出力する最初のレコードを1件目として指定します。 記述例 例 例1) 12バイト目の位置から長さ4バイトの外部10進数のフィールドと32バイト目の位置から長さ4バイトの内部10進数のフィールドが等 しいレコードを処理の対象とする場合は、次のように指定します。 include=11.4zdl.eq.31.4pdl 例2) 12バイト目の位置から長さ4バイトの固定小数点2進数のフィールドが「30」以上のレコードを処理の対象とする場合は、次のように 指定します。 include=11.4fbi.ge.d30 例3) ファイルの先頭から50件目までのレコードを処理の対象とする場合は、次のように指定します。 include=RECNUM.le.50 例4) 10バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「abcde」があるレコードを選択する場合は、次のように指定 します。 include="9.5asc.eq.'abcde'" 例5) 10バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「ab"cd」があるレコードを選択する場合は、次のように指定 します。 include="9.5asc.eq.'ab¥"cd'" 例6) 10バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「abc'd」があるレコードを選択する場合は、次のように指定 します。 include="9.5asc.eq.'abc''d'" 例7) 10バイト目の位置から長さ4バイトの外部10進数のフィールドが「-1000」のレコードを選択する場合は、次のように指定します。 include=9.4zdl.eq.d-1000 例8) 4バイト目の位置から長さ3バイトのASCIIコードのフィールドに文字列「abc」がある、かつ10バイト目の位置から長さ3バイトのASCII コードのフィールドに文字列「abc」があるレコード、または4バイト目の位置から長さ5バイトのASCIIコードのフィールドに文字列「abcde」 があるレコードを選択する場合は、次のように指定します。 include="3.3asc.eq.'abc'.and.9.3asc.eq.'abc'.or.3.5asc.eq.'abcde'" 5.2.5.5 omitオペランド 入力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 条件が成立したレコードを処理の対象から除外します。 omitオペランドは、includeオペランドとは排他関係にあります。 - 113 - 記述形式 omit=condition-expression condition-expression 選択フィールド(選択条件)を指定します。 condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペランド(condition-expression の記述形 式)を参照してください。 5.2.5.6 reconstオペランド 入力ファイルのレコード再編成機能を使用する場合に再編成フィールドを指定します。 再編成フィールドに指定したフィールドは、出力レコードの先頭から順に詰めて出力します。入力ファイルのレコード再編成機能を使 用する場合、キーフィールド、集約フィールド、出力ファイルのレコード選択機能で指定する選択フィールド、および出力ファイルのレ コード再編成機能で指定する再編成フィールドは、入力ファイルのレコード再編成後のフィールド位置を指定します。 記述形式 reconst=reconst-definition reconst-definition 再編成フィールドを指定します。 コンマ( , )で区切って複数のreconst-definition を指定できます。 reconst-definition の記述形式 reconst-definition の記述形式には、以下の4つの形式があります。 ・ reconst-definition の記述形式1 reconst-definition の記述形式1では、入力レコードのフィールドを指定します。 指定したフィールドが入力レコードに存在しない場合は、エラーになります。 pos.len ・ reconst-definition の記述形式2 reconst-definition の記述形式2では、自己規定値を指定します。 self-def.len typ [ opt ] ・ reconst-definition の記述形式3 reconst-definition の記述形式3では、入力レコードの指定位置から終端までを再編成フィールドに指定します。 指定したフィールドが入力レコードに存在しない場合は、エラーになります。 pos.END ・ reconst-definition の記述形式4 reconst-definition の記述形式4では、空フィールドを指定します。 テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定できます。 EMPTY [ opt ] pos 再編成フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 - 114 - len 再編成フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 reconst-definition の記述形式1では、長さの制限はありません。reconst-definition の記述形式2で指定可能な各データ形式の長さに ついては、2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、再編成フィール ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ のダブルクォーテーション( " )として長さを計算します。 例) テキストファイルCSV形式における、再編成フィールドと長さ 再編成フィールド ABC "ABC" "A""B""C" "A,B,C" 再編成フィールドとして有効な文字 ABC ABC A"B"C A,B,C 再編成フィールドの長さ 3バイト 3バイト 5バイト 5バイト self-def 自己規定値を指定します。 self-def の記述形式を以下に示します。 ・ self-def の記述形式1 self-def の記述形式1では、文字を直接指定します。 '文字列 ' ・ self-def の記述形式2 self-def の記述形式2では、文字を16進数で指定します。 x16進数 ・ self-def の記述形式3 self-def の記述形式3では、数値、または数字を10進数で指定します。 d10進数 注意 ・ オペランド引数で自己規定値の文字列を指定する場合は、オペランド引数全体をダブルクォーテーション( " )で囲みます。 ・ オペランド引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、ダブルクォーテーション( " )の前 に円記号( ¥ )を指定します。 ・ オペランド引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、クォーテーション( ' )を2つ続けて指定し ます。 ・ 自己規定値の10進数を指定する場合は、符号を指定できます。 ・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。 ・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま せん。 - 115 - ・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールド分離文字、レコード分離文字(注)、 またはダブルクォーテーション( " )が含まれているときは、自己規定値をダブルクォーテーション( " )で囲んで出力します。この際、 自己規定値のダブルクォーテーション( " )は、2つ連続して出力します。 注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含ま れている場合、自己規定値をダブルクォーテーション( " )で囲みます。 例) 自己規定値にフィールド分離文字(コンマ)、またはダブルクォーテーション( " )を含む場合の再編成フィールドに出力される データ 自己規定値の指定 FIELD"2" FIELD2,3 FIELD"2",3 再編成フィールドに出力されるデータ "FIELD""2""" "FIELD2,3" "FIELD""2"",3" ・ 自己規定値で指定した値とlen で指定した長さが異なるときは、以下に示すように処理します。 - 自己規定値が文字列の場合 - 自己規定値で指定した文字列の長さが len で指定した長さより短い場合は、自己規定値を左詰めにして右余白に空白を 詰めます。 - 自己規定値で指定した文字列の長さがlen で指定した長さより長い場合は、エラーとなります。 - 自己規定値が数字、または数値の場合 - 自己規定値で指定した値をtyp とlen で指定したデータ形式と長さに変換して埋め込みます。 - 変換結果がlen を超える場合は、エラーとなります。 ・ 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号なし固定小数点2進数、システム依 存形式固定小数点2進数、システム依存形式符号なしの自己規定値を10進数で指定する場合、その値は以下の範囲になります。 長さ 符号ありのデータ形式 符号なしのデータ形式 1バイト -128~127 0~255 2バイト -32768~32767 0~65535 3バイト -8388608~8388607 0~16777215 4バイト以上 -2147483648~2147483647 0~4294967295 typ 自己規定値のデータ形式を指定します。 指定可能なデータ形式については、2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。 注意 ・ ASCIIコードは、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコー ド系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペラン ド)がASCIIコード系の場合に指定できます。 ・ EBCDICコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系の場合に指定でき ます。 ・ シフトJISコードは、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がASCIIコード系の場合に指定できま す。 ・ Unicode UCS-2形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDIC コード系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペ ランド)がUnicode系(UCS-2形式)の場合に指定できます。 - 116 - ・ Unicode UTF-8形式は、バイナリファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDIC コード系以外の場合に指定できます。テキストファイルの場合、入力ファイルのコード系(実行環境オプション(-option)のicodeオペ ランド)がUnicode系(UTF-8形式)の場合に指定できます。 END reconst-definition の記述形式3の場合に、'END'の固定文字列を指定します。 EMPTY reconst-definition の記述形式4の場合に、'EMPTY'の固定文字列を指定します。 opt 再編成フィールドの操作を指定します。 テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、reconst-definition の記述形式2、またはreconst-definition の記 述形式4のときに指定できます。以下から選択して指定します。省略した場合は、Lを指定したものとして動作します。 意味 opt A 再編成フィールドをダブルクォーテーション( " )で囲みます。 L 再編成フィールドをダブルクォーテーション( " )で囲みません。 ただし、再編成フィールドに、フィールド分離文字、レコード分離文字(注)、またはダブル クォーテーション( " )が含まれている場合は、ダブルクォーテーション( " )で囲みます。 注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含まれ ている場合、自己規定値をダブルクォーテーション( " )で囲みます。 参考 ・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、reconst-definition の記述形式1、または reconst-definition の記述形式3のときに、再編成フィールドをダブルクォーテーション( " )で囲むかどうかは、入力レコードのフィールドに従います。 入力レコードのフィールドがダブルクォーテーション( " )で囲まれているときは、レコード再編成後のフィールドもダブルクォーテーション ( " )で囲みます。 例) 再編成フィールドを「reconst=1.3,2.2」と指定した場合 入力レコード 出力レコード "001","ABC",60 "ABC",60 "002","ABCDE",50 "ABC",50 "003","AB,CDE",40 "AB,",40 "004","AB"CDE,30 (注) "AB"C,30 注) 2番目のフィールドは、「AB」がダブルクォーテーションで囲まれ、「CDE」がそのあとに続いていると判断します。 記述例 例 例1) 入力レコードの5バイト目から長さ10バイトのフィールドを再編成する場合は、次のように指定します。 reconst=4.10 例2) 自己規定値としてASCIIコードの「abc」を文字列で指定する場合は、以下のように指定します。 reconst="'abc'.3asc" 例3) 自己規定値としてダブルクォーテーション( " )を含んだASCIIコードの「ab"cd」を文字列で指定する場合は、以下のように指定し ます。 - 117 - reconst="'ab¥"cd'.5asc" 例4) 自己規定値としてクォーテーション( ' )を含んだASCIIコードの「abc'd」を文字列で指定する場合は、以下のように指定します。 reconst="'abc''d'.5asc" 例5) 自己規定値としてASCIIコードの「abc」を16進数で指定する場合は、以下のように指定します。 reconst=x616263.3asc 例6) 自己規定値として外部10進数の「-32」を長さ4バイトで指定する場合は、以下のように指定します。 reconst=d-32.4zdl 例7) 入力レコードの5バイト目からレコードの最後までを再編成する場合は、以下のように指定します。 reconst=4.END 例8) 入力レコードの3バイト目から長さ8バイトのフィールドを再編成し、その後に自己規定値として文字列「,」を再編成して、さらにその 後に入力レコードの20バイト目から長さ5バイトのフィールドを再編成する場合は、次のように指定します。 reconst="2.8,','.1asc,19.5" 例9) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、自己規定値としてASCIIコードの「abc」を文字列で指定し、こ のフィールドをダブルクォーテーション( " )で囲むときは、以下のように指定します。 reconst="'abc'.3ascA" 例10) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、入力レコードの1番目のフィールドと2番目のフィールドの間 にダブルクォーテーション( " )で囲まれた空フィールドを追加するときは、以下のように指定します。 reconst=0.1,EMPTYA,1.END 5.2.5.7 eofオペランド 入力ファイルがテキストファイルの場合に、EOF制御文字の扱いを指定します。 記述形式 eof={ effect | ignore } effect 最初のEOF制御文字をファイルの最後と認識して、最初のEOF制御文字までを入力します。 eofオペランドを省略した場合、effectが指定されたものとします。 ignore EOF制御文字をファイルの最後と認識せず、EOF制御文字以降も入力します。 5.2.5.8 overwriteオペランド 出力ファイルが入力ファイルと同じ場合に、処理を継続することを指定します。 overwriteオペランドを指定し、出力ファイルに入力ファイルと同じファイルを指定すると、指定された入力ファイルに処理結果が上書き されるため、ディスクスペースを節約できます。overwriteオペランドを省略して、出力ファイルに入力ファイルと同じファイルを指定した 場合は、エラーとなります。 overwriteオペランドは、ソート機能のときに有効です。 記述形式 overwrite - 118 - 注意 出力ファイルが入力ファイルと同じ場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場合がありますの で、注意してください。 5.2.6 マージオプション(-merge) マージ機能を指定します。 マージオプション(-merge)、ソートオプション(-sort)、およびコピーオプション(-copy)は互いに排他関係にあります。 記述形式 -merge [ key=key-definition [ ,key-definition ...] [ key= ...] ] [ jef=jef-definition [ ,jef-definition ...] [ jef= ...] ] 5.2.6.1 keyオペランド キーフィールドを指定します。 1つのキーフィールドは、位置、長さ、データ形式、および操作で構成されます。 複数のキーフィールドを指定した場合、指定した順に比較が行われます。複数のキーフィールドを指定する場合は、キーフィールドをコンマ ( , )で区切って指定します。また、keyオペランドを複数指定することもできます。 keyオペランドを省略した場合、レコード全体をキーフィールドとみなしてコードの昇順に並べます。 注意 テキストファイルCSV形式、テキストファイルTSV形式の場合、キーフィールドは省略できません。 記述形式 key=key-definition [ ,key-definition ...] [ key= ...] key-definition の記述形式 key-definition の記述形式には、以下の2つの形式があります。 ・ key-definition の記述形式1 key-definition の記述形式1では、入力レコード中のフィールドをキーフィールドとして指定します。 pos.len typ [ opt ] ・ key-definition の記述形式2 key-definition の記述形式2では、レコード全体をキーフィールドとして指定します。 テキストファイルCSV形式、テキストファイルTSV形式の場合は、指定できません。 ALL [ opt ] pos キーフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 len キーフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも - 119 - 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数でlen に指定します。このとき、pos の位 置にある1バイトのフィールド値とマスク値の論理積がキー値になります。 指定可能な各データ形式の長さについては、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、キーフィールドの 長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つのダ ブルクォーテーション( " )として長さを計算します。 例) テキストファイルCSV形式における、キーフィールドと長さ キーフィールド ABC "ABC" "A""B""C" "A,B,C" キーフィールドとして有効な文字 ABC ABC A"B"C A,B,C キーフィールドの長さ 3バイト 3バイト 5バイト 5バイト typ キーフィールドのデータ形式を指定します。 指定可能なデータ形式については、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。 opt キーフィールドの操作を指定します。 指定可能な操作を以下に示します。バイナリファイルの場合は、a、m、r、およびwが指定できます。テキストファイルの場合は、全ての キーフィールドの操作が指定できます。複数の操作を指定する場合は、続けて記述します。aとrを両方とも省略した場合は、aを指定し たものとして動作します。 意味 opt a 昇順に並べます。 rとは排他関係にあります。 b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字だけを比較の対象とします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 m 漢字ソートマージ機能を使用します。 対応するソートオプション(-sort)、またはマージオプション(-merge)のjefオペランドが必要 となります。mを指定した場合は、a、b、rの操作だけが有効となり、他の指定は無視しま す。漢字ソートマージ機能で指定可能なデータ形式は、ASCIIコード、シフトJISコード、 およびJEFコードです。 ALLとは同時に指定できません。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。データ形式が ASCIIコード、EBCDICコード、Unicode UCS-2形式、またはUnicode UTF-8形式の場合 に指定できます。 N、およびwとは排他関係にあります。 N 英字と数字の連結データ(例えば「data123」など)を英字と数値に分けて評価し並べま す。 英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。 指定フィールドの左から評価し、有効データ後に出現したデータは無視します。データ - 120 - 意味 opt 形式がASCIIコード、EBCDICコード、Unicode UCS-2形式、またはUnicode UTF-8形式 の場合に指定できます。 n、およびwとは排他関係にあります。 r 降順に並べます。 aとは排他関係にあります。 w 複数バイトから成る文字が混在していても文字ごとに比較して並べます。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式、またはUnicode UTF-8 形式で、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)が EBCDICコード系以外の場合に指定できます。 n、およびNとは排他関係にあります。 注意 ・ 漢字ソートマージ機能では、キーフィールドの操作にbを指定した場合、全角の空白も無視します。 ・ キーフィールドのデータ形式に照合順序変更を指定した場合、キーフィールドの操作にa、またはr以外を指定することはできませ ん。 ・ キーフィールドのデータ形式に文字形式2桁年号を指定した場合、キーフィールドの操作にa、またはr以外を指定しても無視され ます。 ALL key-definition の記述形式2の場合に、'ALL'の固定文字列を指定します。 キーフィールドの指定を省略し、レコード全体をキーフィールドとする場合に指定します。キーフィールドの操作を指定する必要がなけ れば、keyオペランドを省略できます。 記述例 例 例1) 入力レコードの先頭から長さ10バイトのASCIIコードのフィールドを昇順に並べる場合は、次のように指定します。 key=0.10asca 例2) 入力レコードの5バイト目から長さ8バイトの外部10進数のフィールドを降順に並べる場合は、次のように指定します。 key=4.8zdlr 例3) テキストファイル固定フィールド指定の場合、入力レコードの10バイト目から長さ20バイトのASCIIコードのフィールドを昇順に並べ る場合は、次のように指定します。なお、キーフィールドの先頭の空白とタブは無視し、英小文字を英大文字として比較します。 key=9.20ascabj 例4) レコード全体をキーとして降順に並べる場合は、次のように指定します。 key=ALLr 参考 バイナリファイルの可変長レコード形式、またはテキストファイルの場合、キーフィールドが存在しないレコードが入力されたときは、キー フィールドが存在しない部分の値を0とみなして処理します。 - 121 - 5.2.6.2 jefオペランド 漢字ソートマージ機能を使用する場合に、漢字フィールド、およびふりがなフィールドを指定します。 jefオペランドは、キーフィールドの操作としてmを指定したフィールドに対応します。このmを指定したキーフィールドが漢字フィールド となります。 記述形式 jef=jef-definition [ ,jef-definition ...] [ jef= ...] jef-definition の記述形式 form [ odr ] [ pos.len typ ] form 漢字ソートマージ機能の方式を指定します。 指定可能な方式を以下に示します。 意味 form std 基本方式(漢字属性の順)に並べます。 ふりがなフィールドの指定は必要ありません。 dic 国語辞典方式(ふりがなの順)に並べます。 ふりがなフィールドの指定が必要となります。 odr 漢字フィールドの漢字属性を指定します。 漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで続けて指定できます。指定可能な 漢字属性を以下に示します。 意味 odr B 部首コード順に並べます。 S 総画数順に並べます。 O 音読み順に並べます。 K 訓読み順に並べます。 C 漢字コード順に並べます。 pos ふりがなフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 len ふりがなフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 - 122 - 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、ふりがなフィール ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ のダブルクォーテーション( " )として長さを計算します。 typ ふりがなフィールドのデータ形式を指定します。 指定可能なデータ形式を以下に示します。 表5.1 バイナリファイルの場合 種類 文字 データ形式 typ 長さ(バイト) ASCIIコード asc 1~レコード長(注1) EBCDICコード(注2) ebc 1~レコード長(注1) シフトJISコード sji 1~レコード長(注1) JEFコード(注2) jef 2~レコード長(2の倍数) (注1) 表5.2 テキストファイルの場合 種類 文字 データ形式 typ 長さ(バイト) ASCIIコード asc 1~レコード長(注1) シフトJISコード sji 1~レコード長(注1) 注1) 入力ファイルのレコード再編成機能を指定した場合は、入力ファイルのレコード再編成後のレコード長まで指定できます。レコー ド再編成機能については、5.2.5.6 reconstオペランドを参照してください。 注2) 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系の場合に指定できます。 記述例 例 例1) 入力レコードの10バイト目から長さ2バイトの漢字フィールド(シフトJISコード)を総画数順、音読み順で昇順に並べる場合、次のよ うに指定します。 key=9.2sjiam jef=stdSO 例2) 入力レコードの10バイト目から長さ10バイトに漢字フィールド(シフトJISコード)があり、このフィールドに対するふりがなフィールド(シフト JISコード)がレコードの50バイト目から長さ20バイトに存在するとき、このレコードを国語辞典の並びで昇順に並べる場合、次のように指 定します。 key=9.10sjiam jef=dic49.20sji 5.2.7 実行環境オプション(-option) 各種実行環境オプションを指定します。 記述形式 -option [ [ [ [ [ [ colseq=col-def [ ,col-def ...] [ colseq= ...] ] fifo ] icode=input-code ] iconv=input-conversion ] memsize=memory-size ] msgfile=message-file ] - 123 - [ msglevel=message-level ] [ tmpdir=temp-directory [ ,temp-directory ...] [ tmpdir= ...] ] 5.2.7.1 colseqオペランド 照合順序を変更するための情報を指定します。 記述形式 colseq=col-def [ ,col-def ...] [ colseq= ...] col-def 照合順序を変更するための情報を指定します。 col-defは、ccttの形式で記述します。照合順序変更機能では、フィールド中に16進数'cc'と等しいバイトがあれば、そのバイトを16進 数'tt'として比較します。コンマ( , )で区切って複数の照合順序を変更するための情報を指定できます。'cc'で指定されていない16進数 は、置き換えられずにそのまま比較します。 照合順序変更機能は、キーフィールドのデータ形式、選択フィールドの被比較フィールド、および比較フィールドのデータ形式にcol が指定されている場合に、-optionオプションのcolseqオペランドで指定した照合順序で比較します。 記述例 例 例1) 16進数0x20を、16進数0x23として比較する場合は、次のように指定します。 colseq=2023 例2) 同じ16進数に対して複数の照合順序変更を指定した場合は、最後に指定した照合順序の変更が有効になります。以下の例で は、16進数0x20は16進数0x3Aとして比較します。 colseq=2023,6141,203A 5.2.7.2 fifoオペランド 先入力先出力(FIFO)機能を指定します。 指定したキーフィールドの値が同一のとき、先に入力したレコードを先に出力します。 先入力先出力(FIFO)機能は、ソート機能のときに有効です。先入力先出力(FIFO)機能を指定しなかった場合、キーフィールドの値が 同一なレコードの出力順序は不定です。マージ機能、コピー機能、レコード集約機能、およびサプレス機能と同時に指定された場合、 先入力先出力(FIFO)機能の指定は無視されます。 記述形式 fifo 注意 fifoオペランドは、環境変数BSORT_FIFOの指定より優先されます。 5.2.7.3 icodeオペランド 入力ファイルのコード系を指定します。 記述形式 icode=input-code - 124 - input-code 入力ファイルのコード系を指定します。 以下から1つを選択して指定します。 意味 input-code au ASCIIコード系 (富士通COBOL形式) (省略値) ac ASCIIコード系 (Micro Focus COBOL形式、COBOL/2形式) eb EBCDICコード系 (注) u2 Unicode系 (UCS-2形式) u8 Unicode系 (UTF-8形式) 注) EBCDICコード系はバイナリファイルの場合に指定可能です。 5.2.7.4 iconvオペランド ASCIIコードとEBCDICコード間の変換方式を指定します。 記述形式 iconv=input-conversion input-conversion ASCIIコードとEBCDICコード間の変換方式を指定します。 以下から1つを選択して指定します。 意味 input-conversion 0 EBCDICコードとUS ASCIIコード間のコード変換を指定します。(省略値) 1 EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定します。 2 EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定します。 参考 以下の場合にASCIIコードとEBCDICコード間の変換が行われます。 ・ 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がASCIIコード系でキーフィールドのデータ形式がEBCDIC コードの場合におけるキーフィールドの比較 ・ 入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系でキーフィールドのデータ形式がASCII コードの場合におけるキーフィールドの比較 ・ 選択フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己規定値の変換 ・ 再編成フィールドのデータ形式がEBCDICコードかつ文字列指定の自己規定値における自己規定値の変換 5.2.7.5 memsizeオペランド PowerSORTが使用する作業域の大きさ(メモリサイズ)を指定します。 記述形式 memsize=memory-size - 125 - memory-size PowerSORTが使用する作業域の大きさをキロバイト数で指定します。 32~2097151キロバイトの範囲で指定します。memsizeオペランドを省略した場合、または0を指定した場合、環境変数BSORT_MEMSIZE の指定があればその大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。2097152以上の値を指定した場合 は、2097151を指定したとみなされます。 注意 memsizeオペランドは、環境変数BSORT_MEMSIZEの指定より優先されます。 5.2.7.6 msgfileオペランド メッセージを出力するファイルパス名を指定します。 記述形式 msgfile=message-file message-file メッセージを出力するファイルパス名を指定します。 msgfileオペランドを省略した場合、環境変数BSORT_MSGFILEの指定があれば、そのファイルにメッセージを出力します。メッセージ ファイル以外へのメッセージの出力は、環境変数BSORT_MSGOUTの指定に従います。メッセージファイルに空白を含むファイル名 を指定する場合は、ファイル名をダブルクォーテーション( " )で囲みます。 注意 msgfileオペランドは、環境変数BSORT_MSGFILEの指定より優先されます。 5.2.7.7 msglevelオペランド 出力するメッセージの種別を指定します。 記述形式 msglevel=message-level message-level 出力するメッセージの種別(レベル)を指定します。 msglevel オ ペ ラ ン ド を 省 略 し た 場 合 は 、 環 境 変 数 BSORT_MSGLEVEL の 指 定 に 従 い ま す 。 msglevel オ ペ ラ ン ド も 環 境 変 数 BSORT_MSGLEVELの指定も省略されている場合は、message-level にW(エラーメッセージ、および警告メッセージを出力)を指定し たとみなします。メッセージの出力先は、msgfileオペランド、環境変数BSORT_MSGFILE、および環境変数BSORT_MSGOUTの指定 により決まります。 指定可能なメッセージの種別(レベル)を以下に示します。 意味 message-level N 何も出力しません。 E エラーメッセージを出力します。 W エラーメッセージ、および警告メッセージを出力します。(省略値) I エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 また、以前のバージョンとの互換用として、以下の種別(レベル)も指定できます。 - 126 - 意味 message-level 0 何も出力しません。 1 エラーメッセージ、および警告メッセージを出力します。(省略値) 2 エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 注意 ・ 何も出力しないと指定した場合でも、コマンドシンタックスのエラーとコマンドヘルプは標準エラー出力に出力します。 ・ msglevelオペランドは、環境変数BSORT_MSGLEVELの指定より優先されます。 5.2.7.8 tmpdirオペランド 一時ファイルを作成するフォルダ名を指定します。 記述形式 tmpdir=temp-directory temp-directory 一時ファイルを作成するフォルダ名を指定します。 コンマ( , )で区切って複数のフォルダ名を指定できます。フォルダ名に空白が含まれる場合は、フォルダ名をダブルクォーテーション( " ) で囲みます。 注意 ・ 一時ファイルを作成するフォルダ指定の優先順位については、環境変数BSORT_TMPDIRを参照してください。 ・ 誤ったフォルダ名を指定すると意図しないファイルが削除される場合があります。 5.2.8 出力ファイル情報オプション(-output) 出力ファイル情報を指定します。 複数の出力ファイル情報オプション(-output)を指定できます。標準出力に出力する場合は、fileオペランド、およびfilesysオペランドを 省略します。なお、標準出力に出力する場合は、複数の出力ファイル情報オプション(-output)を指定できません。 記述形式 -output [ file=file-name [ ,file-name ...] [ file= ...] [ filesys=file-system ] ] [ maxfilesize=max-filesize ] [ maxrecnum=max-recordnumber ] [ { include=condition-expression [ ,condition-expression ] [ include= ...] | omit=condition-expression [ ,condition-expression ] [ omit= ...] | case= { condition-expression [ ,condition-expression ] | other } [ case= ...] } ] [ reconst=reconst-definition [ ,reconst-definition ...] [ reconst= ...] ] [ idxflag=index-flag ] [ idxkey=index-key [ ,index-key ...] [ idxkey= ...] ] [ linedlmt=line-delimiter ] [ removeeof ] [ -output ...] 5.2.8.1 fileオペランド 出力ファイルのファイルパス名を指定します。 - 127 - 記述形式 file=file-name file-name 出力ファイルのファイルパス名を指定します。 コンマ( , )で区切って複数の出力ファイルを指定できます。複数の出力ファイルを指定し、かつmaxfilesizeオペランド、またはmaxrecnum オペランドを指定した場合、maxfilesizeオペランド、またはmaxrecnumオペランドの指定に従って複数のファイルに分割して出力しま す。複数の出力ファイルを指定し、かつmaxfilesizeオペランド、およびmaxrecnumオペランドを指定しなかった場合、出力ファイルが ファイルシステムの許容量を超えたときのリカバリー処理として複数のファイルに分割して出力します。リカバリー処理は、以下のファイ ルを処理する場合に指定できます。 ・ システム標準のファイル(テキストファイル、バイナリファイル) 注意 ・ 指定された出力ファイルをすべて使用しても出力できないレコードが存在する場合は、エラーになります。 ・ 指定された出力ファイルが1つの場合、maxfilesizeオペランド、およびmaxrecnumオペランドを指定できません。 ・ その他のfile-name 記述上の注意事項については、入力ファイル情報オプション(-input)のfileオペランドを参照してください。 5.2.8.2 filesysオペランド fileオペランドで指定した出力ファイルのファイルシステムを指定します。 記述形式 filesys=file-system file-system 出力ファイルのファイルシステムを指定します。 省略時はシステムの標準ファイルシステムを指定したものとします。 指定可能なファイルシステムについては、入力ファイル情報オプション(-input)のfilesysオペランドを参照してください。 5.2.8.3 maxfilesizeオペランド 1つのファイルに出力可能な最大ファイルサイズを指定します。 記述形式 maxfilesize=max-filesize [ K | M | G ] max-filesize [ K | M | G ] 1つのファイルに出力可能な最大ファイルサイズを指定します。 ファイルサイズがmax-filesize を超える場合、fileオペランドで指定した次の出力ファイルに続きを出力します。K、M、Gは、max-filesize の単位です。Kはキロバイト単位、Mはメガバイト単位、Gはギガバイト単位であることを示します。なお、K、M、Gを指定しない場合、単 位はバイトです。maxrecnumオペランドと同時に指定した場合は、先に上限に達した時点で次の出力ファイルに出力します。また、指 定した上限に達する前に出力ファイルがファイルシステムの許容量を超えた場合は、許容量を超えた時点で次の出力ファイルに出力 します。 maxfilesizeオペランドは、以下のファイルを処理する場合に指定できます。 ・ システム標準のファイル(テキストファイル、バイナリファイル) - 128 - 注意 fileオペランドで指定した出力ファイルが1つの場合、maxfilesizeオペランドは指定できません。 5.2.8.4 maxrecnumオペランド 1つのファイルに出力可能な最大レコード数を指定します。 記述形式 maxrecnum=max-recordnumber max-recordnumber 1つのファイルに出力可能な最大レコード数を指定します。 レコード数がmax-recordnumber を超える場合、fileオペランドで指定した次の出力ファイルに続きを出力します。maxfilesizeオペランド と同時に指定した場合は、先に上限に達した時点で次の出力ファイルに出力します。また、指定した上限に達する前に出力ファイル がファイルシステムの許容量を超えた場合は、許容量を超えた時点で次の出力ファイルに出力します。 注意 fileオペランドで指定した出力ファイルが1つの場合、maxrecnumオペランドは指定できません。 5.2.8.5 includeオペランド 出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 条件が成立したレコードを出力の対象とします。 includeオペランドは、omitオペランド、およびcaseオペランドとは排他関係にあります。 記述形式 include=condition-expression condition-expression 選択フィールド(選択条件)を指定します。 コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となります。複数のincludeオペランドを指定 した場合は、選択条件の論理和となります。 condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペランド(condition-expression の記述形 式)を参照してください。 5.2.8.6 omitオペランド 出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 条件が成立したレコードを処理の対象から除外します。 omitオペランドは、includeオペランド、およびcaseオペランドとは排他関係にあります。 記述形式 omit=condition-expression condition-expression 選択フィールド(選択条件)を指定します。 コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となります。複数のomitオペランドを指定した 場合は、選択条件の論理和となります。 - 129 - condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペランド(condition-expression の記述形 式)を参照してください。 5.2.8.7 caseオペランド 出力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。 条件が成立したレコードを出力の対象とします。 caseオペランドは、includeオペランド、およびomitオペランドとは排他関係にあります。 記述形式 case={ condition-expression | other } condition-expression 選択フィールド(選択条件)を指定します。 コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となります。複数のcaseオペランドを指定した 場合は、選択条件の論理和となります。caseオペランドでは、これより前に指定した出力ファイル情報オプション(-output)のcaseオペラ ンドで出力されたレコードは出力の対象から除外されます。 condition-expression の記述形式については、入力ファイル情報オプション(-input)のincludeオペランド(condition-expression の記述形 式)を参照してください。 other 'other'の固定文字列を指定します。 出力ファイル情報オプション(-output)のcaseオペランドで出力されなかったレコードを出力の対象とします。 記述例 例 入力レコードの50バイト目から長さ4バイトの内部10進数のフィールドが100以上のレコードをbsortout1に出力し、bsortout1に出力され なかったレコードの内80バイト目から長さ8バイトの外部10進数のフィールドが50未満のレコードをbsortout2に出力し、bsortout1にも bsortout2にも出力されなかったレコードをbsortout3に出力する場合、以下のように指定します。 -output file=bsortout1 case=49.4pdl.ge.d100 -output file=bsortout2 case=79.8zdl.lt.d50 -output file=bsortout3 case=other 5.2.8.8 reconstオペランド 出力ファイルのレコード再編成機能を使用する場合に再編成フィールドを指定します。 記述形式 reconst=reconst-definition reconst-definition 再編成フィールドを指定します。 出力ファイルのレコード選択処理の後に、reconst-definition で指定した再編成フィールドに従ってレコードを再編成します。 reconst-definition の記述形式については、入力ファイル情報オプション(-input)のreconstオペランド(reconst-definition の記述形式)を 参照してください。 5.2.8.9 idxflagオペランド 富士通COBOLファイルシステムの索引ファイルにおける、インデックスの作成方法を指定します。 - 130 - 記述形式 idxflag=index-flag index-flag 以下から選択して指定します。 複数指定する場合は、続けて指定します。 意味 index-flag c インデックスに圧縮キー指定を示します。 r レコードのデータ圧縮指定を示します。 5.2.8.10 idxkeyオペランド 出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを指定します。 富士通COBOLファイルシステムの索引ファイルの場合は、idxkeyオペランドを省略できません。 記述形式 idxkey=index-key [ ,index-key ...] index-key インデックスフィールドを指定します。 最初に主キーを指定し、その後に副キーを指定します。 index-key の記述形式 pos.len typ opt pos インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。 len インデックスフィールドの長さをバイト数で指定します。 typ インデックスフィールドのデータ形式を指定します。 指定可能なデータ形式と長さを以下に示します。 種類 文字 データ形式 typ 長さ(バイト) 意味 ASCIIコード asc 1~254 富士通COBOLの CHARTYPE Unicode UCS-2形式(注) uc2 2~254 (2の倍数) 富士通COBOLの CHARTYPE Unicode UTF-8形式 ut8 1~254 富士通COBOLの CHARTYPE 注) Unicode UCS-2形式のバイトオーダーはLittle endianとなります。 opt インデックスフィールドの操作を指定します。 指定可能な操作を以下に示します。最終セグメントには、必ずeを指定します。 - 131 - 意味 opt a 昇順に並べます。 d インデックスに重複キー指定を示します。 e セグメントの終りを示します。 5.2.8.11 linedlmtオペランド 出力ファイル内のレコード分離文字を指定します。 テキストファイルのときに有効です。 記述形式 linedlmt=line-delimiter line-delimiter 出力ファイル内のレコード分離文字を指定します。 指定可能なレコード分離文字を以下に示します。省略時は、入力ファイル(複数の入力ファイルを指定した場合は先頭の入力ファイ ル)のレコード分離文字と同じになります。 意味 line-delimiter crlf CRLFをレコード分離文字として扱います。 cr CRをレコード分離文字として扱います。 lf LFをレコード分離文字として扱います。 参考 入力ファイル内のレコード分離文字は、入力ファイル内から自動的に判断します。なお、レコード分離文字(CRLF、CR、LF)が入力ファ イル内に混在している場合は、最初に現れたレコード分離文字とします。 5.2.8.12 removeeofオペランド 出力ファイルがテキストファイルの場合に、EOF制御文字を取り除きます。 記述形式 removeeof 5.2.9 入力レコード情報オプション(-record) 入力レコード情報を指定します。 記述形式 -record [ recform=record-format ] [ fldsep=field-separate ] 5.2.9.1 recformオペランド レコード形式を指定します。 記述形式 recform=record-format - 132 - record-format レコード形式を指定します。 システムの標準ファイルシステムのファイルを処理する場合にレコード形式の指定を省略すると、バイナリファイル固定長レコード形式 を指定したものとして動作します。システムの標準ファイルシステム以外のファイル、またはテキストファイルを処理する場合は省略でき ません。指定可能なレコード形式については、2.6 PowerSORTの入出力環境、および2.7.2 フィールドの指定方法を参照してくださ い。 次から1つを選択して指定します。 意味 record-format fix バイナリファイル固定長レコード形式 var バイナリファイル可変長レコード形式 txtfix テキストファイル固定フィールド指定のレコード形式 txtflt テキストファイル浮動フィールド指定のレコード形式 txtcsv テキストファイルCSV形式 txttsv テキストファイルTSV形式 注意 システムの標準ファイルシステムのファイルを処理する場合は、レコード形式にバイナリファイル可変長レコード形式を指定できませ ん。 5.2.9.2 fldsepオペランド テキストファイル浮動フィールド指定のレコード形式の場合に、フィールド分離文字列を指定します。 記述形式 fldsep=field-separate field-separate テキストファイル浮動フィールド指定のレコード形式の場合に、フィールド分離文字列を指定します。 省略時は、タブ、および空白をフィールド分離文字として扱います。フィールド分離文字列に空白を含む場合は、フィールド分離文字 列をダブルクォーテーション( " )で囲みます。フィールド分離文字列にダブルクォーテーション( " )を指定する場合は、ダブルクォーテーション ( " )の前に円記号( ¥ )を指定します。 記述例 例 例1) フィールド分離文字列として、文字列「SEPARATE」を指定します。 fldsep=SEPARATE 例2) フィールド分離文字列として、文字列「F S」を指定します。 fldsep="F S" 例3) フィールド分離文字列として、文字「'」を指定します。 fldsep=' 例4) フィールド分離文字列として、文字「"」を指定します。 - 133 - fldsep=¥" 例5) フィールド分離文字列として、文字「¥」を指定します。 fldsep=¥ 例6) フィールド分離文字列として、文字列「**」を指定します。 fldsep=** 例7) フィールド分離文字列として、文字列「* *」を指定します。 fldsep="* *" 5.2.10 ソートオプション(-sort) ソート機能を指定します。 ソートオプション(-sort)、マージオプション(-merge)、およびコピーオプション(-copy)は互いに排他関係にあります。ソートオプション(sort)、マージオプション(-merge)、およびコピーオプション(-copy)を省略した場合は、レコード全体をキーとしたソート機能を指定したも のとして処理します。 各オペランドの説明は、5.2.6 マージオプション(-merge)を参照してください。 記述形式 -sort [ key=key-definition [ ,key-definition ...] [ key= ...] ] [ jef=jef-definition [ ,jef-definition ...] [ jef= ...] ] 5.2.11 レコード集約オプション(-summary) レコード集約機能、またはサプレス機能を使用する場合に、集約フィールド、またはサプレス機能を指定します。 レコード集約処理、またはサプレス処理は、出力処理の前にすべての出力レコードに対して行います。 レコード集約オプション(-summary)は、ソート機能、またはマージ機能の場合に有効です。先入力先出力(FIFO)機能(実行環境オプション (-option)のfifoオペランド、または環境変数BSORT_FIFO)と同時に指定された場合、先入力先出力(FIFO)機能の指定は無視されま す。 記述形式 -summary { field=summary-definition [ ,summary-definition ...] [ field= ...] | suppress } [ { first | last } ] 5.2.11.1 fieldオペランド レコード集約機能を使用する場合に集約フィールドを指定します。 レコード集約機能は、指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1つのレコードにする機能です。テキ ストファイルの場合は、ASCIIコード、Unicode UCS-2形式、およびUnicode UTF-8形式で記述された半角の数字だけを処理の対象と します。 suppressオペランドとは排他関係にあります。 記述形式 field=summary-definition summary-definition 集約フィールドを指定します。 summary-definition の記述形式 pos.len typ [ opt ] - 134 - pos 集約フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 len 集約フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、指 定したフィールド長に拡張して処理します。 指定可能な各データ形式の長さについては、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、集約フィールド の長さに含みません。 例) テキストファイルCSV形式における、集約フィールドと長さ 集約フィールド 123 "123" 集約フィールドとして有効な文字 123 123 集約フィールドの長さ 3バイト 3バイト typ 集約フィールドのデータ形式を指定します。 指定可能なデータ形式については、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。 opt テキストファイルの場合に集約フィールドの出力形式を指定します。 バイナリファイルの場合に指定するとエラーとなります。指定可能な出力形式を以下に示します。 意味 opt i 集約フィールドの値に符号をつけます。 uとは排他関係にあります。 u 集約フィールドの値が負の値の場合だけ符号「-」をつけます。 iとは排他関係にあります。 z 集約フィールドの値がフィールド長に満たない場合、左余白に「0」を詰めます。例えば、 集約フィールドの値が「1234」という4桁の数字であり、集約フィールド長が6バイトの場 合、「001234」という数字にします。b、dとは排他関係にあります。 b 集約フィールドの値がフィールド長に満たない場合、左余白に空白を詰めます。 例えば、集約フィールドの値が「1234」という4桁の数字であり、集約フィールド長が6バイ トの場合、「□□1234」(□は空白を表わす)という数字にします。z、dとは排他関係にあり ます。 d 集約フィールドの先頭から空白、タブ、および「0」を削除します。 集約フィールドの先頭に空白、タブ、および「0」がある場合、左から評価し、「0」以外の 数字が出現するまでの空白、タブ、および「0」を削除します。例えば、「00123」の場合、 「123」という数字にします。ただし、集約フィールドの値が「0」(「0」、「0000」、「+000」な ど)の場合、最後の「0」は削除されません。テキストファイル浮動フィールド指定の場合に 指定可能です。z、bとは排他関係にあります。 - 135 - 注意 ・ dは、テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定可能です。 テキストファイル固定フィールド指定の場合はエラーになります。 ・ iを指定し、集約した値が「0」になった場合は「+」の符号を付けます。 ・ bを指定し、符号が付く場合、符号は数字部の直前に付加されます。 ・ i、およびuを省略した場合は、以下のように処理します。 - 集約結果が負の値の場合は、集約結果に「-」の符号を付けます。 - 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を付けません。 - 符号なしデータ同士を集約した場合は、集約結果に符号を付けません。 - 符号なしデータと符号付きデータの集約結果が「0」の場合は、符号を付けません。 - 符号付きデータ同士を集約した場合は、集約結果に符号を付けます。集約した結果が「0」の場合は、「+」の符号を付けます。 ・ 集約フィールドの値に符号を付ける場合、集約フィールドの値が集約フィールド長を満たしており、符号が付けられないときはオー バフローとなります。 ・ z、b、およびdを省略した場合は、以下のように処理します。 - 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果が満たない場合は、集約フィールドの左余白に 「0」を詰めます。 - 左余白に「0」が詰められているデータ同士のとき - 左余白に「0」が詰められているデータと左余白に空白が詰められているデータのとき - 左余白に「0」が詰められているデータと左余白にタブが詰められているデータのとき - 以下のような条件の集約フィールドを集約したとき、集約フィールド長に集約結果が満たない場合は、集約フィールドの左余 白に空白を詰めます。 - 左余白に空白が詰められているデータ同士のとき - 左余白にタブが詰められているデータ同士のとき - 左余白に空白が詰められているデータと左余白にタブが詰められているデータのとき ・ レコード集約機能の対象とならなかったレコード(キーフィールドの値が同一である他のレコードが存在しないレコード)の集約フィー ルドは、以下のように処理します。 - optの指定がある場合は、optで指定された形式で出力します。 - optの指定がない場合は、入力されたままの形式で出力されます。 記述例 例 例1) 入力レコードの7バイト目から長さ8バイトの内部10進数のフィールドを集約フィールドに指定する場合は、次のように指定します。 -summary field=6.8pdl 例2) テキストファイルの場合、入力レコードの4バイト目から長さ8バイトのASCIIコードのフィールドを集約フィールドに指定するときは、 次のように指定します。なお、集約フィールドには符号をつけ、集約フィールドの値がフィールド長に満たないときには左余白に空白を 詰めます。 -summary field=4.8ascib - 136 - 注意 ・ firstオペランド、およびlastオペランドのどちらも指定しなかった場合、レコード集約機能の対象となったレコードの中から、どのレ コードが出力されるかは不定です。 ・ 集約フィールドは、キーフィールド、および他の集約フィールドと重なることはできません。 ・ 集約フィールドは、レコード内に存在する必要があります。 ・ レコード集約機能を使用する場合、キーフィールドは省略できません。 ・ 集約フィールドの集約処理中にオーバフローが生じた場合の動作は、環境変数BSORT_SUMOVERCONTの指定に従います。 ・ 小数点を含む数字の集約はできません。 ・ テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の 対象とします。 ・ テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現れたことにより集約フィールドの位置が変 わる場合は、正しく動作しません。 ・ テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れたときは、指定したフィールド長を超 える部分はレコード集約機能の対象とせず、そのまま出力されます。また、指定したフィールド長より短いフィールドが現れたとき は、指定したフィールド長に拡張します。 例) 集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合(フィールド分離文字は「,」とします) 入力レコード 出力レコード 001,12345ABC,OPQ (注1) 001,12456ABC,OPQ (注2) 001,111,RST 002,00127,UVW 002,15,UVW (注1) 002,00112DEF,XYZ 注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。 注2) 指定したフィールド長を超える部分(「ABC」)は、そのまま出力されます。 ・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、指定したフィールド長よりも長いフィールドが現れたときは、指 定したフィールド長を超える部分はレコード集約機能の対象とせず、出力もされません。また、指定したフィールド長より短いフィー ルドが現れたときは、指定したフィールド長に拡張します。 例) テキストファイルCSV形式で、集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合 入力レコード 出力レコード 001,12345ABC,OPQ (注1) 001,12468,OPQ (注2) 001,123,RST 002,00027,UVW 002,15,UVW (注1) 002,00012DEF,XYZ 注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。 注2) 指定したフィールド長を超える部分(「ABC」)は、出力されません。 ・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、集約フィールドをダブルクォーテーション( " )で囲むかどうか は、出力対象となる入力レコードのフィールドに従います。出力対象となる入力レコードのフィールドがダブルクォーテーション( " ) で囲まれているときは、レコード集約後のフィールドもダブルクォーテーション( " )で囲みます。 例) テキストファイルCSV形式で、集約フィールドを「1.5asc」、キーフィールドを「0.3asca」と指定した場合 入力レコード 001,"12345",OPQ (注) 001,"123",RST 002,"15",UVW (注) 002,00012,XYZ 003,11111,GHI (注) 003,"00789",JKL 004,98765,MNO (注) 出力レコード 001,"12468",OPQ 002,"00027",UVW 003,11900,GHI 004,98769,MNO - 137 - 004,4,PQR 注) ここで示したレコードが、レコード集約機能で出力対象になるものとします。 5.2.11.2 suppressオペランド サプレス機能を指定します。 サプレス機能は、指定したキーフィールドの値が同一のとき、1つのレコードを残して他を削除する機能です。 fieldオペランドとは排他関係にあります。 記述形式 suppress 記述例 例 サプレス機能を使用する場合は次のように指定します。 -summary suppress 5.2.11.3 firstオペランド 同一のキーフィールドを持つレコードの中から、最初に入力したレコードを出力します。 lastオペランドとは排他関係にあります。firstオペランド、およびlastオペランドを省略した場合、同一のキーフィールドを持つレコードの 中から、どのレコードが出力されるかは不定です。 参考 マージ機能を使用している場合にfirstオペランドを指定すると、同一のキーフィールドを持つレコードの中から、最初に指定した入力 ファイル内のレコードを出力します。なお、同一ファイル内のレコードは、そのファイル内の最初のレコードを出力します。 記述形式 first 記述例 例 レコード集約機能を使用し、入力レコードの10バイト目から長さ4バイトの外部10進数のフィールドを集約フィールドに指定し、同一の キーフィールドを持つレコードの中から、最初に入力したレコードを出力する場合は、次のように指定します。 -summary field=9.4zdl first 5.2.11.4 lastオペランド 同一のキーフィールドを持つレコードの中から、最後に入力したレコードを出力します。 firstオペランドとは排他関係にあります。firstオペランド、およびlastオペランドを省略した場合、同一のキーフィールドを持つレコードの 中から、どのレコードが出力されるかは不定です。 - 138 - 参考 マージ機能を使用している場合にlastオペランドを指定すると、同一のキーフィールドを持つレコードの中から、最後に指定した入力 ファイル内のレコードを出力します。なお、同一ファイル内のレコードは、そのファイル内の最後のレコードを出力します。 記述形式 last 記述例 例 サプレス機能を使用し、同一のキーフィールドを持つレコードの中から、最後に入力したレコードを出力する場合は、次のように指定し ます。 -summary suppress last - 139 - 第6章 PowerSORT OCXからPowerSORTを使用する ここではPowerSORT OCXについて説明します。 6.1 PowerSORT OLEカスタムコントロールとは PowerSORT OLEカスタムコントロール(以降、OCXと表記します)とは、PowerSORTをOLEコンテナアプリケーション上で簡単に呼び出 すことができるコントロールです。 OCXをサポートしているプログラミング言語で使用することができます。PowerSORT OCXをフォームに配置して、必要なプロパティを 設定することにより、少量のコードを作成するだけで、大量データに対応したソート処理、またはマージ処理をアプリケーションプログラ ムに追加できます。なお、PowerSORT OCXは、デザイン時にはフォーム上に表示され、実行時には非表示となります。 注意 PowerSORT OCXは、Webページ、およびインターネットでの動作についてはサポートしていません。 6.2 PowerSORT OCXのプロパティシート PowerSORT OCXをフォームに配置して、必要なプロパティを設定します。 プロパティシートはデザイン時に参照が可能で、作成アプリケーションにおけるPowerSORT OCXの初期値を設定することができます。 各プロパティについての詳細は各プロパティの説明を参照してください。 6.2.1 「File」プロパティページ 入出力ファイル、レコード長関連のプロパティを指定するページです。 書式など、各プロパティの詳細は各プロパティの説明を参照してください。 参照 ・ 6.3.20 InputFilesプロパティ ・ 6.3.21 InputFileTypeプロパティ ・ 6.3.25 MaxRecordLengthプロパティ ・ 6.3.28 OutputFileプロパティ - 140 - ・ 6.3.29 OutputFileTypeプロパティ ・ 6.3.10 EnableOverwriteInputFileプロパティ Btrieve Informationダイアログボックス Btrieveファイルに関するプロパティを設定するダイアログボックスです。 このダイアログボックスは、「File」プロパティページでInputFileTypeプロパティ、またはOutputFileTypeプロパティにBtrieveファイルを指 定したときに「Btrieve Info」ボタンが有効となり、出力ファイルに関する情報を入力できます。InputFileTypeプロパティ、または OutputFileTypeプロパティにBtrieveファイルを指定していない場合は、これらのプロパティは無視されます。 書式など、各プロパティの詳細は各プロパティの説明を参照してください。 参照 ・ 6.3.5 BtrieveInfileOwnerNameプロパティ ・ 6.3.4 BtrieveIndexKeyプロパティ ・ 6.3.3 BtrieveFileInfoプロパティ Fujitsu COBOL85 Indexダイアログボックス COBOL索引ファイルに関するプロパティを設定するダイアログボックスです。 このダイアログボックスは、「File」プロパティページでOutputFileTypeプロパティに富士通COBOL索引ファイルを指定したときに、「Index Info」ボタンが有効となり、出力ファイルに関する追加情報を入力することができます。OutputFileTypeプロパティに富士通COBOL索引 ファイルを指定していない場合は、このプロパティは無効となります。 書式など、各プロパティの詳細は各プロパティの説明を参照してください。 - 141 - 参照 ・ 6.3.15 FjcobKeyCompressionプロパティ ・ 6.3.14 FjcobDataCompressionプロパティ ・ 6.3.16 FjcobPrimeKeyプロパティ ・ 6.3.13 FjcobAlternateKeyプロパティ 6.2.2 「Disposal」プロパティページ 実行する処理を指定するページです。 書式など、各プロパティの詳細は各プロパティの説明を参照してください。 参照 ・ 6.3.9 DisposalNumberプロパティ 6.2.3 「KeyField」プロパティページ キーフィールド、またはキーフィールドを省略した場合のキーフィールドの操作を指定するプロパティページです。 書式など、各プロパティの詳細は各プロパティの説明を参照してください。 - 142 - 参照 ・ 6.3.23 KeyCmdStrプロパティ ・ 6.3.6 CollationOrderプロパティ ・ 6.3.31 Reverseプロパティ ・ 6.3.18 IgnoreControlCodeプロパティ ・ 6.3.1 AlphaNumOnlyプロパティ ・ 6.3.33 SkipLeadingBlankプロパティ ・ 6.3.7 CompareAsUpperCaseプロパティ 6.2.4 「Record」プロパティページ フィールド分離文字、またはレコード分離文字などのレコード情報を指定するプロパティページです。 書式など、各プロパティの詳細は各プロパティの説明を参照してください。 - 143 - 参照 ・ 6.3.24 LineDelimiterプロパティ ・ 6.3.11 FieldDefinitionプロパティ ・ 6.3.12 FieldDelimiterプロパティ 6.2.5 「Option」プロパティページ レコード単位の処理を指定するプロパティページです。 書式など、各プロパティの詳細は各プロパティの説明を参照してください。 参照 ・ 6.3.30 RconCmdStrプロパティ ・ 6.3.32 SelCmdStrプロパティ ・ 6.3.17 HandlingSameKeyプロパティ ・ 6.3.34 SumCmdStrプロパティ ・ 6.3.22 InputFilesSkiprecプロパティ 6.2.6 「Environment」プロパティページ PowerSORTが使用するメモリ量、一時ファイルのフォルダ名など動作環境を設定するプロパティページです。 書式など、各プロパティの詳細は各プロパティの説明を参照してください。 - 144 - 参照 ・ 6.3.35 TempDirプロパティ ・ 6.3.36 UsableMemorySizeプロパティ ・ 6.3.27 MessageLevelプロパティ ・ 6.3.26 MessageFileNameプロパティ ・ 6.3.8 DispMessageプロパティ 6.3 実行前に設定するプロパティ ここでは、PowerSORT OCXのプロパティについて説明します。 各プロパティの説明中、設定値の箇所はVisual Basicのデータ型を記述しています。Visual Basicのデータ型に関しては、B.8 Visual Basic のデータ型とPowerSORTのデータ形式の関係を参照してください。 6.3.1 AlphaNumOnlyプロパティ キーフィールドとして比較する文字を空白、および英数字のみに設定します。 構文 object.AlphaNumOnly = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean キーフィールドとして比較する文字を空白、および英数字のみとするかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 AlphaNumOnlyプロパティの設定値は次のとおりです。 - 145 - 設定値 意味 True 空白と英数字のみを比較の対象とします。 False すべての文字を比較の対象とします。(省略値) 解説 ・ Trueを指定すると、空白、および英数字のみを取り出して比較し、レコードの順序を決定します。 ・ このプロパティで指定された値は、テキストファイルのソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber = 1)に おいて、キーフィールドを省略した場合に有効となります。 ・ この指定を省略した場合、すべての文字を比較の対象とします。 参照 ・ 6.3.6 CollationOrderプロパティ ・ 6.3.7 CompareAsUpperCaseプロパティ ・ 6.3.18 IgnoreControlCodeプロパティ ・ 6.3.31 Reverseプロパティ ・ 6.3.33 SkipLeadingBlankプロパティ 6.3.2 AlternateModeプロパティ EBCDICコードとASCIIコード間の変換方式を指定します。 構文 object.AlternateMode = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer EBCDICコードとASCIIコード間の変換方式を設定します。 設定する値については、次の設定値を参照してください。 設定値 AlternateModeプロパティの設定値は次のとおりです。 設定値 意味 0 EBCDICコードとUS ASCIIコード間のコード変換をします。(省略値) 1 EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。 2 EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をします。 解説 ・ 入力ファイルのコード系がASCIIコード系でデータ形式がEBCDICコードの場合、または入力ファイルのコード系がEBCDICコード 系でデータ形式がASCIIコードの場合におけるコードの変換方式を指定します。 ・ この指定を省略した場合、EBCDICコードとUS ASCIIコード間のコード変換をします。 - 146 - 6.3.3 BtrieveFileInfoプロパティ Btrieveファイルを出力ファイルとする場合のファイル情報を指定します。 構文 object.BtrieveFileInfo = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string ファイル情報を記述形式に従って指定します。 stringの記述形式 L.S[opt] L 4から4096バイトの範囲でレコード長を指定します。 レコード長の指定は省略できません。 S 512から4096の範囲でページサイズを指定します。 ページサイズの指定は省略できません。 opt 必要に応じて、以下のオプションを指定します。 オプションの指定は省略できます。また、複数のオプションを同時に指定できます。ただし、f10、f20、およびf30を複数指定した場合 は、最後に指定したオプションが有効となります。 オプション 意味 d データ圧縮 v 可変長レコード b 後続ブランク除去 a プリアロケーション (注) f10 10%スペース確保 f20 20%スペース確保 f30 30%スペース確保 注) プリアロケーションを指定する場合は、例えばa10のようにaに続けて割当てページ数を指定します。 解説 ・ 出力ファイルにBtrieveファイル(OutputFileType = 8)を指定した場合に、ファイル作成に必要な情報を指定します。 ・ ファイル情報の詳細についてはBtrieveのマニュアルを参照してください。 注意 Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。 - 147 - 6.3.4 BtrieveIndexKeyプロパティ Btrieveファイルを出力ファイルとする場合のインデックス情報を指定します。 構文 object.BtrieveIndexKey = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string インデックス情報を記述形式に従って指定します。 stringの記述形式 S.P.LType[opt] [S.P.LType[opt]] ... S 1から24の範囲でセグメントを指定します。 セグメントの指定は省略できません。 P インデックスの位置を指定します。 位置の指定は省略できません。 L インデックスの長さを指定します。 長さの指定は省略できません。 Type インデックスの形式を以下の中から1つ指定します。 形式の指定は省略できません。 形式 指定可能形式 標準キー形式 stg、bin 拡張キー形式 str、int、flo、dat、tim、dec、mon、log、num、btl、lst、zst、uns、aut opt 必要に応じて、以下のオプションを指定します。 オプションの指定は省略できます。また、複数のオプションを同時に指定できます。 オプション 意味 d 重複キー m 変更可能キー n ヌルキー (注) r 降順キー u マニュアルキー (注) 注) ヌルキー、マニュアルキー指定時は、n、およびuの後に、00からFFの1バイトの16進コードを指定します(例えばn00など)。 - 148 - 解説 ・ 出力ファイルにBtrieveファイル(OutputFileType = 8)を指定した場合に、ファイル作成に必要な情報を指定します。複数のインデッ クスを指定する場合は、空白で区切ります。 ・ インデックス情報の各指定値の詳細についてはBtrieveのマニュアルを参照してください。 注意 Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。 参照 ・ 6.3.3 BtrieveFileInfoプロパティ 6.3.5 BtrieveInfileOwnerNameプロパティ Btrieveファイルシステムで必要な場合に、入力ファイルに対してオーナーネームを指定します。 構文 object.BtrieveInfileOwnerName = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string オーナーネームを指定します。 解説 ・ 入力ファイルにBtrieveファイルを指定した場合で、ファイルの入力にオーナーネームの指定が必要な場合に、最大8文字までの オーナーネームを指定します。入力ファイルが複数ある場合は、入力ファイルの指定順に合わせて、オーナーネームを空白で区 切って指定します。なお、オーナーネームでは、大文字と小文字が区別されます。 ・ このプロパティで指定された値は、InputFileTypeプロパティでBtrieveファイルを設定した場合に有効となります。この条件に該当し ない場合、指定値は無効となります。 注意 Btrieveファイルを処理する場合は、Btrieveファイルシステムが必要です。 参照 ・ 6.3.20 InputFilesプロパティ 6.3.6 CollationOrderプロパティ キーフィールドの照合順序を指定します。 照合順序とはレコードの大小関係を決めるための比較の方法です。 - 149 - 構文 object.CollationOrder = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer キーフィールドの照合順序を設定します。 設定する値については、次の設定値を参照してください。 設定値 CollationOrderプロパティの設定値は次のとおりです。 設定値 意味 0 指定なし(システムの照合順序)。(省略値) 1 複数バイトが混在しても文字単位に比較します。 2 符号(+、-)文字を含む数字を算術的に扱います。 3 文字列、数字列と続いたデータを文字部と数字部で分けて比較します。 解説 ・ この指定を省略した場合、または0を設定した場合、システムの照合順序で比較します。レコードは文字コードの大小関係で並び が決定します。 ・ 1を設定すると、複数バイトから成る文字が混在していても、文字ごとに比較して並べます。 ・ 2を設定すると、符号を含んだ数字の文字列を算術的な値で比較します。文字列中に数字以外の文字が存在した場合の結果は 保証されません。 ・ 3を設定すると、英字と数字が連結されたデータを英字と数値に分けて比較します。英字だけを比較の対象として比較後、数字だ けの文字列を算術的な値で比較します。指定フィールドの左から評価し、有効データ後に出現したデータは無視します。 ・ このプロパティで指定された値は、テキストファイルの処理でソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber = 1)において、キーフィールドを省略した場合に有効となります。 参照 ・ 6.3.1 AlphaNumOnlyプロパティ ・ 6.3.7 CompareAsUpperCaseプロパティ ・ 6.3.18 IgnoreControlCodeプロパティ ・ 6.3.31 Reverseプロパティ ・ 6.3.33 SkipLeadingBlankプロパティ 6.3.7 CompareAsUpperCaseプロパティ 英小文字を英大文字として扱うように設定します。 構文 object.CompareAsUpperCase = boolean - 150 - object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean 英小文字を英大文字として扱うかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 CompareAsUpperCaseプロパティの設定値は次のとおりです。 設定値 意味 True 英小文字を英大文字として扱います。 False 英小文字と英大文字は別々に扱います。(省略値) 解説 ・ Trueを指定した場合、英小文字は英大文字と等しいとみなします。これにより、“a”と“A”は、“b”と“B”より小さい文字と評価され、 同じ英字の文字列を集めることができます。ただし、“a”と“A”の順序は不定になります。 ・ この指定を省略した場合は、それぞれの文字コードで順序が決まります。 ・ このプロパティで指定された値は、テキストファイルの処理でソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber = 1)のキーフィールドを省略した場合に有効となります。 参考 CompareAsUpperCaseプロパティの設定値による並びの違いを以下に示します。 Trueを指定した場合の並び A→a→b→B→…→y→Y→Z→z (注) Falseを指定した場合の並び A→B→C→…→X→Y→Z→a→b→c→…→x→y→z 注) Aとa、Bとb、Yとy、Zとzは、それぞれ等しいキーとみなされます。 参照 ・ 6.3.1 AlphaNumOnlyプロパティ ・ 6.3.6 CollationOrderプロパティ ・ 6.3.18 IgnoreControlCodeプロパティ ・ 6.3.31 Reverseプロパティ ・ 6.3.33 SkipLeadingBlankプロパティ 6.3.8 DispMessageプロパティ PowerSORT OCXのメッセージダイアログボックス出力について指定します。 構文 object.DispMessage = boolean - 151 - object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean メッセージダイアログボックスを表示するかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 DispMessageプロパティの設定値は次のとおりです。 設定値 意味 True メッセージダイアログボックスを表示します。 False メッセージダイアログボックスは表示しません。(省略値) 解説 ・ Trueを指定すると、画面にメッセージダイアログボックスを表示します。 ・ この指定を省略した場合、メッセージダイアログボックスは表示されません。 ・ いずれの場合でも、エラー情報はErrorCodeプロパティ、ErrorDetailプロパティ、およびSubErrorCodeプロパティにエラーコードが 設定されます。 参照 ・ 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード ・ 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード ・ 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード ・ 9.2.2 富士通COBOLファイルに関するエラーコード 6.3.9 DisposalNumberプロパティ 実行する主要機能を設定します。 構文 object.DisposalNumber = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer 実行する主要機能を設定します。 設定する値については、次の設定値を参照してください。 設定値 DisposalNumberプロパティの設定値は次のとおりです。 設定値 0 意味 ソート機能を実行します。(省略値) - 152 - 設定値 意味 1 マージ機能を実行します。 2 コピー機能を実行します。 解説 ・ この指定を省略した場合、ソート機能が実行されます。 参照 ・ 2.1 主要機能 ・ 2.3 オプション機能と主要機能の組合せ 6.3.10 EnableOverwriteInputFileプロパティ ソート処理の場合に、入力ファイルへの上書き処理について指定します。 構文 object.EnableOverwriteInputFile = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean 入力ファイルの上書きを許可するかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 EnableOverwriteInputFileプロパティの設定値は次のとおりです。 設定値 意味 True 入力ファイルの上書きを許可します。 False 入力ファイルの上書きは許可しません。(省略値) 解説 ・ 入力ファイルの既存データをソート処理結果に書き換える、上書き許可を指定します。ソート処理(DisposalNumber = 0)のとき、 OutputFileプロパティで設定した出力ファイル名が、InputFilesプロパティで設定した入力ファイル名の1つと一致した場合に有効と なります。 ・ EnableOverwriteInputFileプロパティは、ファイルを保護する機能です。Falseを設定した状態で、出力ファイル名を入力ファイル名 の1つと同じ名前にした場合、処理開始前にエラー終了します。入力ファイル中のデータを書き換えてよい場合にのみTrueを設定 してください。 ・ この指定を省略した場合、入力ファイルの上書きは許可しません。 注意 Trueを指定し、出力ファイルが入力ファイルと同じ場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場 合がありますので、注意してください。 - 153 - 6.3.11 FieldDefinitionプロパティ テキストファイルを処理する場合のフィールドの指定方法を設定します。 構文 object.FieldDefinition = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer フィールドの指定方法を設定します。 設定する値については、次の設定値を参照してください。 設定値 FieldDefinitionプロパティの設定値は次のとおりです。 設定値 意味 0 浮動フィールドで指定します。(省略値) 1 固定フィールドで指定します。 解説 ・ テキストファイルを処理する場合のフィールドの指定方法を設定します。 ・ 浮動フィールドは、フィールドの位置をフィールド分離文字によって区切られたフィールド番号によって指定します。フィールド分 離文字の位置によりフィールドの位置が決まるため、レコードごとにフィールドの位置(カラム位置)は異なります。フィールド分離文字は FieldDelimiterプロパティで指定できます。 ・ 固定フィールドは、フィールドの位置をレコードの先頭からのカラム位置で指定します。 ・ この指定を省略した場合、フィールドの位置を浮動フィールドで指定します。 参照 ・ 6.3.32 SelCmdStrプロパティ ・ 6.3.30 RconCmdStrプロパティ ・ 6.3.34 SumCmdStrプロパティ ・ 6.3.17 HandlingSameKeyプロパティ 6.3.12 FieldDelimiterプロパティ テキストファイル浮動フィールド指定の場合のフィールド分離文字を設定します。 構文 object.FieldDelimiter = string object オブジェクトへの参照を表すオブジェクト式を指定します。 - 154 - string フィールド分離文字を指定します。 解説 ・ テキストファイル浮動フィールド指定の場合のフィールド分離文字を設定します。 ・ 浮動フィールド形式で各種フィールドを指定する場合に、レコード内のフィールドの区切りを示すフィールド分離文字を指定できま す。この指定を省略した場合、空白、およびタブをフィールド分離文字とします。 ・ フィールド分離文字は、文字列、または16進数で指定します。 ・ 文字列で指定する場合は、全体をクォーテーション( ' )で囲みます。クォーテーション( ' )を分離文字とする場合は、クォーテーション ( ' )の前に円記号( ¥ )を指定します。また、円記号( ¥ )をフィールド分離文字とする場合は、円記号( ¥ )を2つ続けて指定します。 ・ 16進数で指定する場合は、先頭にxを付け16進コードを続けて設定します。タブなどの文字として入力できないコードを指定でき ます。 ・ レコード分離文字と同じ文字は指定できません。レコード分離文字は、LineDelimiterプロパティで指定します。 注意 ・ 浮動フィールドのフィールド番号は、先頭のフィールドが0となります。 ・ フィールド分離文字の指定を省略した場合、レコードの先頭の空白、またはタブは先頭のフィールドに含まれます。レコードの先頭 以外の空白、またはタブが連続している場合は、最初の空白がフィールド分離文字となり、残りの空白はフィールドの一部となりま す。 ・ フィールド分離文字を指定し、フィールド分離文字が連続して存在した場合、2つの分離文字の間に空フィールドが存在するとみ なします。フィールド分離文字はフィールドには含まれません。 記述例 例 1) フィールド分離文字を文字列で指定する場合は、次のように指定します。 1つの空白 '' 1つの円記号( ¥ ) '¥¥' 空白とクォーテーション( ' ) ' ¥'' 2) フィールド分離文字を16進数で指定する場合は、次のように指定します。 タブの指定 x09 参照 ・ 6.3.11 FieldDefinitionプロパティ 6.3.13 FjcobAlternateKeyプロパティ 富士通COBOL索引ファイルの場合に、副キーを設定します。 - 155 - 構文 object.FjcobAlternateKey = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 富士通COBOL索引ファイルの副キーを記述形式に従って指定します。 stringの記述形式 [D] (pos,len [/pos,len] ...) [ [D] (pos,len [/pos,len] ...) ...] D 副キーとするデータ項目が、他のキーと重複する場合に指定します。 pos 富士通COBOL索引ファイルの副キーの位置を指定します。 位置は、キーとするデータ項目のレコードの先頭からの相対位置(0バイトから始まるバイト数)を指定します。 len 索引ファイルの副キーの長さを指定します。 posに続けてコンマ( , )で区切って指定します。なお、主キー(FjcobPrimeKeyプロパティ)と副キー(FjcobAlternateKeyプロパティ)すべ ての長さの合計は、254バイト以下になるように設定してください。 / 1つのキーとして非連続な複数のキーを指定する場合、「/」で区切ります。 解説 ・ 富士通COBOL索引ファイル(OutputFileType = 3)の場合に、副キーを指定します。副キーは省略可能です。 ・ 副キーのデータ形式はASCIIコードで、常に昇順で並べられます。 注意 ・ 富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。 ・ ( )でくくられた指定をセグメントと呼びます。複数のセグメントを指定する場合は、セグメントを続けて記述するか、空白、またはタブ で区切ります。例えば、D(1,2/4,4)D(10,8/20,1) と記述します。 参照 ・ 6.3.29 OutputFileTypeプロパティ ・ 6.3.14 FjcobDataCompressionプロパティ ・ 6.3.15 FjcobKeyCompressionプロパティ ・ 6.4.3 SubErrorCodeプロパティ ・ 9.2.2 富士通COBOLファイルに関するエラーコード - 156 - 6.3.14 FjcobDataCompressionプロパティ 出力ファイルが富士通COBOL索引ファイルの場合に、レコードの圧縮を指定します。 構文 object.FjcobDataCompression = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean レコードを圧縮するかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 FjcobDataCompressionプロパティの設定値は次のとおりです。 設定値 意味 True レコードを圧縮します。(省略値) False レコードを圧縮しません。 解説 ・ 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、レコードの圧縮について設定します。 ・ この指定を省略した場合、レコードを圧縮します。 注意 富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。 参照 ・ 6.3.29 OutputFileTypeプロパティ ・ 6.3.13 FjcobAlternateKeyプロパティ ・ 6.3.15 FjcobKeyCompressionプロパティ ・ 6.3.16 FjcobPrimeKeyプロパティ ・ 6.4.3 SubErrorCodeプロパティ ・ 9.2.2 富士通COBOLファイルに関するエラーコード 6.3.15 FjcobKeyCompressionプロパティ 出力ファイルが富士通COBOL索引ファイルの場合に、索引キーの圧縮を指定します。 構文 object.FjcobKeyCompression = boolean - 157 - object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean 索引キーの圧縮をするかどうかを設定します。 設定する値については、次の設定値を参照してください。 設定値 FjcobKeyCompressionプロパティの設定値は次のとおりです。 設定値 意味 True 索引キーを圧縮します。(省略値) False 索引キーを圧縮しません。 解説 ・ 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、索引キーの圧縮について設定します。 ・ この指定を省略した場合、索引キーを圧縮します。 注意 富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。 参照 ・ 6.3.29 OutputFileTypeプロパティ ・ 6.3.13 FjcobAlternateKeyプロパティ ・ 6.3.14 FjcobDataCompressionプロパティ ・ 6.3.16 FjcobPrimeKeyプロパティ ・ 6.4.3 SubErrorCodeプロパティ ・ 9.2.2 富士通COBOLファイルに関するエラーコード 6.3.16 FjcobPrimeKeyプロパティ 出力ファイルが富士通COBOL索引ファイルの場合に、主キーを設定します。 構文 object.FjcobPrimeKey = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 富士通COBOL索引ファイルの主キーを記述形式に従って指定します。 - 158 - stringの記述形式 [D] (pos.len [/pos.len] ...) D 主キーとするデータ項目が、他のキーと重複する場合に指定します。 pos 富士通COBOL索引ファイルの主キーの位置を指定します。 位置は、キーとするデータ項目のレコードの先頭からの相対位置(0バイトから始まるバイト数)を指定します。 len 富士通COBOL索引ファイルの主キーの長さを指定します。 なお、主キー(FjcobPrimeKeyプロパティ)と副キー(FjcobAlternateKeyプロパティ)すべての長さの合計は、254バイト以下になるように設 定してください。 / 1つのキーとして非連続な複数のキーを指定する場合、「/」で区切ります。 解説 ・ 出力ファイルが富士通COBOL索引ファイル(OutputFileType = 3)の場合に、主キーを設定します。主キーは省略できません。 ・ 主キーのデータ形式はASCIIコードで、常に昇順で並べられます。 注意 富士通COBOLファイルを処理する場合は、富士通COBOLファイルシステムが必要です。 参照 ・ 6.3.14 FjcobDataCompressionプロパティ ・ 6.3.15 FjcobKeyCompressionプロパティ ・ 6.4.3 SubErrorCodeプロパティ ・ 9.2.2 富士通COBOLファイルに関するエラーコード 6.3.17 HandlingSameKeyプロパティ キーフィールドが等しいレコードの処理方法を設定します。 構文 object.HandlingSameKey = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer キーフィールドが等しいレコードの処理方法を設定します。 設定する値については、次の設定値を参照してください。 - 159 - 設定値 HandlingSameKeyプロパティの設定値は次のとおりです。 設定値 意味 0 順不定で処理します。(省略値) 1 先入力先出力(FIFO)機能に従ってレコードの出力順序を決定します。 2 サプレス機能によりレコードを削除します。 3 レコード集約機能を使用します。 解説 ・ キーフィールドが等しい複数のレコードがある場合のレコードの出力方法を指定します。 ・ 指定を省略した場合、または0を設定した場合は、キーフィールドが等しいレコードの出力順序は不定になります。 ・ 1を設定すると、キーフィールドが等しい複数のレコードを入力順に出力します。ソート機能の場合に有効です。 ・ 2を設定すると、キーフィールドが等しい複数のレコードから、1つのレコードだけ残して他を削除します。出力されるレコードはすべ てキーフィールドが異なることになります。キーフィールドが等しい複数のレコードのうち、どのレコードが残るかは不定です。ソート 機能、またはマージ機能の場合に有効です。 ・ 3を設定すると、キーフィールドが等しい複数のレコードの集約フィールドの値を加算し、1つのレコードにします。この場合、SumCmdStr プロパティで集約フィールドを指定する必要があります。キーフィールドが等しい複数のレコードのうち、どのレコードが残るかは不 定です。ソート機能、またはマージ機能の場合に有効です。 注意 Micro Focus COBOL索引ファイルで先入力先出力(FIFO)機能を指定した場合、インデックス順ではなく物理順で優先順位が決定し ます。 参照 ・ 2.2 オプション機能 ・ 2.3 オプション機能と主要機能の組合せ ・ 6.3.23 KeyCmdStrプロパティ 6.3.18 IgnoreControlCodeプロパティ 制御文字コードを無視するように設定します。 構文 object.IgnoreControlCode = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean 制御文字コードを無視するかどうかを設定します。 設定する値については、次の設定値を参照してください。 - 160 - 設定値 IgnoreControlCodeプロパティの設定値は次のとおりです。 設定値 意味 True 制御文字コードは無視します。 False 制御文字コードも処理します。(省略値) 解説 ・ キーフィールドの比較対象として、制御文字コードを無視するかどうかを指定します。 ・ Trueを指定すると、制御文字コードを除いて比較し、レコードの順序を決定します。 ・ データ形式がUnicode UCS-2形式の場合は、無視されます。 ・ この指定を省略した場合、制御文字コードも比較対象となります。 ・ このプロパティで指定された値は、テキストファイルの処理でソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber = 1)のキーフィールドを省略した場合に有効となります。 参照 ・ 6.3.1 AlphaNumOnlyプロパティ ・ 6.3.6 CollationOrderプロパティ ・ 6.3.7 CompareAsUpperCaseプロパティ ・ 6.3.31 Reverseプロパティ ・ 6.3.33 SkipLeadingBlankプロパティ 6.3.19 InputDataCodeプロパティ 入力ファイルのコード系を指定します。 構文 object.InputDataCode = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer 入力ファイルのコード系を設定します。 設定する値については、次の設定値を参照してください。 設定値 InputDataCodeプロパティの設定値は次のとおりです。 設定値 意味 0 ASCIIコード系(富士通COBOL形式) (省略値) 1 ASCIIコード系(MF COBOL形式、COBOL/2形式) 2 EBCDICコード系 3 Unicode系(UCS-2形式) - 161 - 設定値 4 意味 Unicode系(UTF-8形式) 解説 ・ テキストファイルのときは、InputDataCodeプロパティにEBCDICコード系を選択できません。 ・ この指定を省略した場合は、ASCIIコード系(富士通COBOL形式)となります。 6.3.20 InputFilesプロパティ ソート処理、マージ処理、およびコピー処理の入力ファイルパス名を設定します。 構文 object.InputFiles = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 入力ファイルパス名を設定します。 解説 ・ ソート処理、マージ処理、およびコピー処理の入力ファイルパス名を設定します。入力ファイルパス名は、省略できません。 ・ 入力ファイルパス名には、ロングファイル名を指定できます。 ・ 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション( " )で囲みます。 ・ 複数の入力ファイルパス名を設定可能です。複数のファイルパス名を指定する場合、ファイルパス名を空白で区切ります。 ・ 入力ファイルパス名を複数指定する場合は、同じファイル種別のファイルしか指定できません。 参照 ・ 2.6 PowerSORTの入出力環境 ・ 6.3.10 EnableOverwriteInputFileプロパティ ・ 6.3.21 InputFileTypeプロパティ ・ 6.3.22 InputFilesSkiprecプロパティ ・ 6.3.25 MaxRecordLengthプロパティ ・ 6.3.28 OutputFileプロパティ ・ 6.3.29 OutputFileTypeプロパティ 6.3.21 InputFileTypeプロパティ ソート処理、マージ処理、およびコピー処理の対象となる入力ファイルのファイル種別とレコード形式を設定します。 構文 object.InputFileType = integer - 162 - object オブジェクトへの参照を表すオブジェクト式を指定します。 integer 入力ファイルのファイル種別とレコード形式を設定します。 設定する値については、次の設定値を参照してください。 設定値 InputFileTypeプロパティの設定値は次のとおりです。 設定値 意味 0 テキストファイル (省略値) 1 バイナリ固定長ファイル 2 富士通COBOL順固定長ファイル 3 富士通COBOL順可変長ファイル 4 富士通COBOL索引固定長ファイル 5 富士通COBOL索引可変長ファイル 6 富士通COBOL相対固定長ファイル 7 富士通COBOL相対可変長ファイル 8 Micro Focus COBOL順固定長ファイル 9 Micro Focus COBOL順可変長ファイル 10 Micro Focus COBOL索引固定長ファイル 11 Micro Focus COBOL索引可変長ファイル 12 Micro Focus COBOL相対固定長ファイル 13 Micro Focus COBOL相対可変長ファイル 14 Btrieve固定長ファイル 15 Btrieve可変長ファイル 16 RDM固定長ファイル 解説 ・ 入力ファイルのファイル種別を設定します。設定できるファイル種別は1種類です。 ・ 複数の入力ファイルをInputFilesプロパティで指定する場合、すべて同じファイル種別の入力ファイルを指定してください。 注意 ・ 入力ファイル種別として富士通COBOLファイル(設定値2~7)を設定する場合、富士通COBOLファイルシステムが必要です。 ・ データが圧縮されたMicro Focus COBOL索引ファイルを入力ファイルに指定することはできません。 ・ PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルにはアクセスすることができません。また、入 力ファイル種別として富士通COBOL索引固定長ファイル(設定値4)、または富士通COBOL索引可変長ファイル(設定値5)を指定 した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもアクセスすることができません。共用モード、排他 モードについては、お使いの富士通COBOLファイルシステムのマニュアルを参照してください。 ・ 入力ファイル種別としてBtrieveファイル(設定値14、15)を設定する場合、Btrieveファイルシステムが必要です。 ・ 入力ファイル種別としてRDM固定長ファイル(設定値16)を設定する場合、RDM運用環境が必要です。 - 163 - ・ 富士通COBOLファイルシステム(BSAM対応順ファイル)を使用する場合は、環境変数BSORT_COBFSYS_MODEにBSAMを指 定した上で、富士通COBOL順固定長ファイル(設定値2)、または富士通COBOL順可変長ファイル(設定値3)を設定してください。 参照 ・ 2.6 PowerSORTの入出力環境 ・ 6.3.10 EnableOverwriteInputFileプロパティ ・ 6.3.25 MaxRecordLengthプロパティ ・ 6.3.28 OutputFileプロパティ ・ 6.3.29 OutputFileTypeプロパティ 6.3.22 InputFilesSkiprecプロパティ ソート処理、マージ処理、およびコピー処理の対象となる入力ファイルから読み飛ばすレコード件数を設定します。 構文 object.InputFilesSkiprec = string [ ,string ... ] object オブジェクトへの参照を表すオブジェクト式を指定します。 string 入力ファイルの先頭から読み飛ばすレコード件数を設定します。 解説 ・ 入力ファイルの先頭から読み飛ばすレコード数を設定します。読み飛ばしたレコードはソート処理、マージ処理、またはコピー処理 の対象にはなりません。 ・ 読み飛ばすレコード件数は、入力ファイルごとに指定できます。InputFilesプロパティで指定した入力ファイルの順序に対応して、コンマ ( , )で区切って指定します。 ・ 指定を省略するとすべてのレコードが処理対象となります。入力ファイル名の数より指定が少ない場合は、指定のない入力ファイ ルのレコードはすべて処理対象となります。入力ファイル名の数より指定が多い場合は、入力ファイルに対応しない指定は無効と なります。 6.3.23 KeyCmdStrプロパティ ソート処理、およびマージ処理のキーフィールドを設定します。 構文 object.KeyCmdStr = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string キーフィールドを記述形式に従って指定します。 - 164 - stringの記述形式 pos.len typ opt [ M kanji-def ] [, pos.len typ opt [ M kanji-def ] ...] pos キーフィールドの位置を指定します。 レコードの先頭を0として計算します。入力がテキストファイルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールド、また は固定フィールドで指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィールド番号を、 固定フィールドはカラム位置を指定します。 len キーフィールドの長さを指定します。 データ形式により指定できる長さに上限があります。詳細は、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。 テキストファイルで浮動フィールドとして処理する場合、指定したフィールド長よりも長いフィールドが現れると、指定したフィールド長で 処理されます。逆に指定したフィールド長よりも短いフィールドが現れると、実際のフィールド長で処理されます。 データ形式(typ)に符号なし2進数(bit)を指定する場合は、マスク値を10進数の1~255の範囲で指定します。この場合、フィールド値と マスク値の論理積がキー値となります。例えば、フィールド値が16進数の8e、マスク値として3を指定した場合、キー値は16進数の02に なります。 typ キーフィールドのデータ形式を指定します。 詳細は、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。 opt キーフィールドの操作を指定します。 詳細は、optを参照してください。 M kanji-def 漢字フィールドを指定します。 漢字フィールドの指定方法については、kanji-def の記述形式を参照してください。 解説 ・ キーフィールドは、位置、長さ、データ形式、および操作で定義します。省略時は、レコード全体をキーフィールドとみなし、コード 順に並べます。 ・ 複数のキーフィールドを指定する場合は、キーフィールドを連続して指定するか、コンマ( , )で区切って指定します。 記述例 例 例1) レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。 0.10asca 例2) レコードの先頭から5バイトのASCIIコードのフィールドを降順に、20バイトめから1バイトの外部10進数を昇順に並べる指定です。 0.5ascr,19.1zdla 例3) レコードの10バイトめから20バイトの漢字(ASCIIコード)のフィールドを総画順、音読み順の昇順として並べる指定です。 9.20ascam MstdSO 例4) レコードの10バイトめから20バイトの漢字(ASCIIコード)のフィールドに対するふりがなフィールドが、レコードの50バイトめから10バイトに ASCIIコードで記述されており、これを国語辞典の並びで昇順に並べる指定です。 - 165 - 9.20ascam Mdic49.10asc 参照 ・ 6.3.12 FieldDelimiterプロパティ ・ 6.3.17 HandlingSameKeyプロパティ ・ 6.3.24 LineDelimiterプロパティ ・ 6.3.25 MaxRecordLengthプロパティ ・ 6.3.30 RconCmdStrプロパティ ・ 6.3.32 SelCmdStrプロパティ ・ 6.3.34 SumCmdStrプロパティ 6.3.24 LineDelimiterプロパティ テキストファイルのレコード分離文字を設定します。 構文 object.LineDelimiter = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer レコード分離文字を設定します。 設定する値については、次の設定値を参照してください。 設定値 LineDelimiterプロパティの設定値は次のとおりです。 設定値 意味 0 CRLF (省略値) 1 CR 2 LF 解説 ・ レコード分離文字は、CRLF(復帰改行)、CR(復帰)、またはLF(改行)から選択できます。 ・ 一般的なテキストファイルでは、レコードはCRLFで分離されています。 ・ レコード分離文字のバイト数は、CRとLFが1バイト、CRLFが2バイトです。入力ファイルのコード系がUnicode系(UCS-2形式)の場 合は、CRとLFが2バイト、CRLFが4バイトとなります。 ・ テキストファイルのレコード長は、このレコード分離文字の長さを含めて指定します。 ・ この指定を省略した場合、レコード分離文字はCRLFになります。 - 166 - 参照 ・ 6.3.25 MaxRecordLengthプロパティ 6.3.25 MaxRecordLengthプロパティ 入力レコードのレコード長、または最大レコード長を設定します。 構文 object.MaxRecordLength = long object オブジェクトへの参照を表すオブジェクト式を指定します。 long 入力レコードのレコード長、または最大レコード長を設定します。 設定可能なレコード長、または最大レコード長は1~32000バイトです。 解説 ・ バイナリファイルの場合は、レコードが固定長レコード形式のとき、そのレコード長を指定し、レコードが可変長レコード形式のとき、 そのレコードの最大レコード長を指定します。 ・ テキストファイルの場合は、レコード分離文字を含む最大レコード長を指定します。 ・ 固定長レコード形式では、実際のレコード長と指定値が合わない場合、エラー終了します。可変長レコード形式の場合は、実際の レコード長が指定値より大きい場合にエラー終了します。 ・ レコード分離文字はLineDelimiterプロパティで設定します。標準は長さ2バイトのCRLFです。入力ファイルのコード系がUnicode系 (UCS-2形式)の場合は、CRLFが4バイトとなります。全角の日本語文字など2バイトコードの文字は、1文字で2バイトとして計算しま す。 6.3.26 MessageFileNameプロパティ PowerSORTのメッセージを出力するファイルパス名を設定します。 構文 object.MessageFileName = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string メッセージファイルパス名を指定します。 解説 ・ メッセージファイルパス名には、ロングファイル名を指定できます。 ・ 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション( " )で囲みます。 ・ 指定できるメッセージファイルパス名は1つです。 ・ 出力されるメッセージは、MessageLevelプロパティ、または環境変数BSORT_MSGLEVELの指定により決まります。 - 167 - 注意 MessageFileNameプロパティの指定は、環境変数BSORT_MSGFILEの指定より優先されます。 参照 ・ 6.3.27 MessageLevelプロパティ 6.3.27 MessageLevelプロパティ PowerSORTが出力するメッセージのレベルを設定します。 構文 object.MessageLevel = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer 出力するメッセージのレベルを設定します。 設定する値については、次の設定値を参照してください。 設定値 MessageLevelプロパティの設定値は次のとおりです。 設定値 意味 0 エラーメッセージ、および警告メッセージを出力します。 2の指定と同じです。 (省略値) 1 何も出力しません。 2 エラーメッセージ、および警告メッセージを出力します。 3 エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 解説 ・ メッセージを出力するためには、MessageFileNameプロパティ、または環境変数BSORT_MSGFILEで、メッセージを出力するファ イルパス名の設定が必要です。 注意 MessageLevelプロパティの指定は、環境変数BSORT_MSGLEVELの指定より優先されます。 6.3.28 OutputFileプロパティ ソート処理、マージ処理、およびコピー処理の出力ファイルパス名を設定します。 構文 object.OutputFile = string - 168 - object オブジェクトへの参照を表すオブジェクト式を指定します。 string 出力ファイルパス名を指定します。 解説 ・ 出力ファイルパス名には、ロングファイル名を指定できます。 ・ 指定できるファイルパス名は1つです。 ・ 空白を含むファイルパス名を指定する場合は、ファイルパス名をダブルクォーテーション( " )で囲みます。 参照 ・ 2.6 PowerSORTの入出力環境 ・ 6.3.10 EnableOverwriteInputFileプロパティ ・ 6.3.20 InputFilesプロパティ ・ 6.3.21 InputFileTypeプロパティ ・ 6.3.25 MaxRecordLengthプロパティ ・ 6.3.29 OutputFileTypeプロパティ 6.3.29 OutputFileTypeプロパティ ソート処理、マージ処理、およびコピー処理の対象となる出力ファイルのファイル種別を設定します。 構文 object.OutputFileType = integer object オブジェクトへの参照を表すオブジェクト式を指定します。 integer 出力ファイルのファイル種別を設定します。 設定する値については、次の設定値を参照してください。 設定値 OutputFileTypeプロパティの設定値は次のとおりです。 設定値 意味 0 テキストファイル (省略値) 1 バイナリ固定長ファイル 2 富士通COBOL順ファイル 3 富士通COBOL索引ファイル 4 富士通COBOL相対ファイル 5 Micro Focus COBOL順編成ファイル 6 (Reserved) - 169 - 設定値 意味 7 Micro Focus COBOL相対ファイル 8 Btrieveファイル 9 RDMファイル 注意 ・ 出力ファイル種別として富士通COBOLファイル(設定値2~4)を設定する場合、富士通COBOLファイルシステムが必要です。 ・ 出力ファイルにMicro Focus COBOL索引ファイルを指定することはできません。 ・ 出力ファイル種別としてBtrieveファイル(設定値8)を設定する場合、Btrieveファイルシステムが必要です。 ・ 出力ファイル種別としてRDMファイル(設定値9)を設定する場合、RDM運用環境が必要です。 ・ この指定を省略した場合、テキストファイルとなります。 ・ 富士通COBOLファイルシステム(BSAM対応順ファイル)を使用する場合は、環境変数BSORT_COBFSYS_MODEにBSAMを指 定した上で、富士通COBOL順ファイル(設定値2)を設定してください。 参照 ・ 2.6 PowerSORTの入出力環境 ・ 6.3.10 EnableOverwriteInputFileプロパティ ・ 6.3.20 InputFilesプロパティ ・ 6.3.21 InputFileTypeプロパティ ・ 6.3.25 MaxRecordLengthプロパティ ・ 6.3.28 OutputFileプロパティ 6.3.30 RconCmdStrプロパティ ソート処理、マージ処理、およびコピー処理の再編成フィールドを設定します。 構文 object.RconCmdStr = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 再編成フィールドを記述形式に従って指定します。 stringの記述形式 { pos.len | slf.len typ } [ { pos.len | slf.len typ } ...] pos.len 入力レコードの位置と長さを指定します。 posとlenは、ピリオド( . )で区切ります。指定したフィールドが入力レコードの中に存在しない場合はエラーになります。テキストファイル、 または可変長レコード形式のファイルの場合は、ファイル内の最小レコード長以下となるようにposとlenを指定します。 - 170 - ・ pos 再編成フィールドの位置を指定します。 レコードの先頭を0として計算します。入力がテキストファイルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールド、 または固定フィールドで指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィールド 番号を、固定フィールドはカラム位置を指定します。 ・ len 再編成フィールドの長さを指定します。 テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れると、指定したフィールド長で処理 されます。逆に指定したフィールド長よりも短いフィールドが現れると、実際のフィールド長で処理されます。 slf.len typ 自己規定値を値、長さ、およびデータ形式で指定します。 slfとlenは、ピリオド( . )で区切ります。自己規定値に指定可能なデータ形式と長さについては、2.7.4.4 再編成フィールドの自己規定値 に指定可能なデータ形式を参照してください。 ・ slf 自己規定値を指定します。 以下の3つの形式があります。 形式 指定方法 文字列 '文字列' 文字列をクォーテーション( ' )で囲みます。 例) '123' 16進数 x16進数 先頭にxを置き、16進コードを続けます。 例) x313233 10進数 d10進数 先頭にdを置き、10進数を続けます。符号(+、-)を付けることもできま す。 例) d123、d+123、d-123 ・ len 自己規定値の長さを指定します。 ・ typ 自己規定値のデータ形式を指定します。 解説 ・ レコード再編成機能により、入力レコードの構成を変更できます。レコードを再編成する場合は、入力レコードを構成するフィール ドを左端から順番に指定します。再編成フィールドの指定方法には、入力レコードからの複写と、自己規定値の設定があります。 ・ 入力レコードのフィールドを複写する場合は、再編成フィールドに複写するフィールドの位置と長さを指定します。自己規定値を設 定する場合は、設定する値、長さ、およびデータ形式を指定します。フィールドと自己規定値は組み合わせて指定できます。 ・ 再編成フィールドに入力レコードのフィールドを指定する場合は、入力レコード内のフィールドを指定してください。テキストファイ ル、または可変長レコード形式のファイルの場合は、入力ファイル内の最小レコード長以下となるように位置と長さを指定します。 ・ 複数の再編成フィールドを指定する場合は、コンマ( , )で区切って指定します。 ・ 自己規定値で指定した値とlenで指定した長さが異なるときは、以下に示すように処理します。 - 自己規定値が文字列の場合、自己規定値で指定した文字列の長さがlenで指定した長さより短いときは、自己規定値を左詰 めにして右余白に空白を詰めます。自己規定値で指定した文字列の長さがlenで指定した長さより長い場合は、エラーとなりま す。 - 自己規定値が数値、または数字の場合、自己規定値で指定した値をlenとtypで指定したデータ形式と長さに変換して埋め込 みます。変換結果がlenを超える場合は、エラーとなります。 - 171 - 注意 レコード再編成機能を使用する場合、KeyCmdStrプロパティ、およびSumCmdStrプロパティで指定するキーフィールド、集約フィール ドの位置(pos)、長さ(len)は、レコード再編成後のレコードに対して指定します。 記述例 例 例1) 入力レコードの20バイトめから10バイト、50バイトめから12バイト、30バイトめから22バイトのフィールドを順番に複写し、入力レコー ドを再構成します。再編成後のレコードの長さは、44バイトになります。テキストファイルの場合は、レコード分離文字が付加されます。 テキスト浮動フィールド指定の場合は、さらにフィールド分離文字が付加されます。 19.10,49.12,29.22 例2) レコードの先頭から3バイトの長さで、ASCIIコードの文字列 'abc' を埋め込み、入力レコードの20バイトめから10バイトのフィールド を後に複写して、入力レコードを再構成します。再編成後のレコード長は、13バイトになります。テキストファイルの場合は、レコード分 離文字が付加されます。テキスト浮動フィールド指定の場合は、さらにフィールド分離文字が付加されます。 'abc'.3asc,19.10 参照 ・ 6.3.12 FieldDelimiterプロパティ ・ 6.3.17 HandlingSameKeyプロパティ ・ 6.3.24 LineDelimiterプロパティ ・ 6.3.25 MaxRecordLengthプロパティ ・ 6.3.32 SelCmdStrプロパティ 6.3.31 Reverseプロパティ キーフィールドの指定が省略された場合の入力レコードの並びを設定します。 構文 object.Reverse = boolean object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean キーフィールドの指定が省略された場合の入力レコードの並びを設定します。 設定する値については、次の設定値を参照してください。 設定値 Reverseプロパティの設定値は次のとおりです。 設定値 True 意味 降順で並べます。 - 172 - 設定値 False 意味 昇順で並べます。(省略値) 解説 ・ ソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber = 1)において、キーフィールド(KeyCmdStrプロパティ)の指 定を省略した場合の並びを指定します。この指定に従い、レコード全体をキーフィールドとみなし、コード順に並べます。 ・ この指定を省略した場合は、昇順で並べます。 参照 ・ 6.3.1 AlphaNumOnlyプロパティ ・ 6.3.6 CollationOrderプロパティ ・ 6.3.7 CompareAsUpperCaseプロパティ ・ 6.3.18 IgnoreControlCodeプロパティ ・ 6.3.33 SkipLeadingBlankプロパティ 6.3.32 SelCmdStrプロパティ ソート処理、マージ処理、およびコピー処理の選択フィールドを設定します。 構文 object.SelCmdStr = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 選択フィールドを指定します。 記述形式 pos.len typ opt.cmp. { pos.len typ | slf } [{ AND | OR } pos.len typ opt.cmp. { pos.len typ | slf } ...] pos 選択フィールドの位置を指定します。 レコードの先頭を0として計算します。入力がテキストファイルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールド、また は固定フィールドで指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィールド番号を、 固定フィールドはカラム位置を指定します。 len 選択フィールドの長さを指定します。 データ形式により指定できる長さに上限があります。指定できる長さについては、2.7.4.3 選択フィールドに指定可能なデータ形式を参 照してください。 テキストファイルで浮動フィールドとして処理する場合、指定したフィールド長よりも長いフィールドが現れると、指定したフィールド長で 処理されます。逆に指定したフィールド長よりも短いフィールドが現れると、実際のフィールド長で処理されます。 データ形式(typ)に符号なし2進数(bit)を指定する場合は、長さにはマスク値を10進数の1 ~255の範囲で指定してください。この場合、 フィールド値とマスク値の論理積がキー値となります。例えば、フィールド値が16進数の8e、マスク値として3を指定した場合、キー値は 16進数の02になります。被比較フィールドと比較フィールドには同じマスク値を指定します。 - 173 - typ 選択フィールドのデータ形式を指定します。 詳細は、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 opt 選択フィールドの操作を指定します。 この指定はテキストファイルのときに有効です。指定できる操作は、以下のとおりです。 操作 意味 b キーフィールドの先頭の空白とタブを無視します。 d 空白と英数字のみを比較の対象とします。 i 制御文字コードを無視します。 j 英小文字を英大文字として比較します。 n 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。 cmp 比較演算子を指定します。 cmpの前後にはピリオド( . )を設定し、空白を入れずに続けて記述します。以下の比較演算子の1つを指定します。 比較演算子 意味(真の条件) eq 被比較フィールド = 比較フィールド、または自己規定値 ne 被比較フィールド ≠ 比較フィールド、または自己規定値 gt 被比較フィールド > 比較フィールド、または自己規定値 ge 被比較フィールド ≧ 比較フィールド、または自己規定値 lt 被比較フィールド < 比較フィールド、または自己規定値 le 被比較フィールド ≦ 比較フィールド、または自己規定値 slf 自己規定値を指定します。 以下の3つの形式があります。被比較フィールドのデータ形式により、指定できる形式が異なります。詳細は、被比較フィールドと自己 規定値に指定可能なデータ形式の組合せを参照してください。 形式 指定方法 文字列 '文字列' 文字列をクォーテーション( ' )で囲みます。 例) '123' 16進数 x16進数 先頭にxを置き、16進コードを続けます。 例) x313233 10進数 d10進数 先頭にdを置き、10進数を続けます。符号(+、-)を付けることもできます。 例) d123、d+123、d-123 AND | OR 選択フィールドを複数指定する場合の、論理的な関係を指定します。 ANDで結合された選択フィールドは、両方の選択条件を満たすレコードのみが処理対象となります。ORで結合された選択フィールド は、どちらか一方の条件が満たされたレコードが処理対象となります。ANDとORの優先順位は、ANDが高く、ANDが先に評価されま す。a AND b OR cの指定では、aとbの条件を同時に満たすか、cの条件を満たすレコードが選択されます。また、選択フィールドでは、 括弧を使うことはできません。a AND (b OR c)のような論理式は、a AND b OR a AND cと指定してください。 - 174 - 解説 ・ レコード選択機能により、ソート処理、マージ処理、またはコピー処理の対象とするレコードを選択できます。 ・ 選択フィールドの指定方法には、入力レコードのフィールド同士を比較する方法と、入力レコードのフィールドと自己規定値を比較 する方法があります。また、複数の選択条件と論理演算子を使用して、複雑な論理式を指定することができます。 ・ 入力レコードのフィールドを指定する場合は、入力レコードの外を指定しないように位置と長さを指定してください。テキストファイ ル、または可変長ファイルの場合は、ファイル内の最小レコード長以下となるよう、位置と長さを指定します。 ・ 複数の選択フィールドを指定する場合は、各選択フィールドの関係を論理演算子AND、またはORで指定します。 記述例 例 例1) 入力レコードの20バイトめから10バイトのASCIIコードと、30バイトめから10バイトのASCIIコードを比較し、等しければ処理の対象 レコードとします。 19.10asc.eq.29.10asc 例2) 入力レコードの20バイトめから4バイトのASCIIコードを、ASCIIコードの文字列'abcd'と比較し、等しくなければ処理の対象レコード とします。 19.4asc.ne.'abcd' 例3) 入力レコードの12バイトめから4バイトの固定小数点2進数のフィールドが、30以上のレコードを処理の対象レコードとします。 11.4fbi.ge.d30 例4) 入力レコードの20バイトめから10バイトの内部10進数のフィールドが、123より小さく、かつ、入力レコードの50バイトめから4バイトの外部 10進数のフィールドが、-123よりも大きいレコードを処理の対象レコードとします。 19.10pdl.lt.d123 AND 49.4zdl.gt.d-123 参照 ・ 6.3.12 FieldDelimiterプロパティ ・ 6.3.17 HandlingSameKeyプロパティ ・ 6.3.24 LineDelimiterプロパティ ・ 6.3.25 MaxRecordLengthプロパティ ・ 6.3.23 KeyCmdStrプロパティ ・ 6.3.30 RconCmdStrプロパティ ・ 6.3.34 SumCmdStrプロパティ 6.3.33 SkipLeadingBlankプロパティ 先頭の空白とタブを無視するように設定します。 構文 object.SkipLeadingBlank = boolean - 175 - object オブジェクトへの参照を表すオブジェクト式を指定します。 boolean 先頭の空白とタブを無視するかどうか設定します。 設定する値については、次の設定値を参照してください。 設定値 SkipLeadingBlankプロパティの設定値は次のとおりです。 設定値 意味 True 先頭の空白とタブを無視します。 False 先頭の空白とタブを比較対象とします。(省略値) 解説 ・ Trueを指定すると、フィールドの先頭の空白とタブを除いて比較し、レコードの順序を決定します。 ・ このプロパティで指定された値は、テキストファイルの処理でソート処理(DisposalNumber = 0)、またはマージ処理(DisposalNumber = 1)のキーフィールドを省略した場合に有効となります。 ・ この指定を省略した場合は、先頭の空白とタブも比較対象となります。 参照 ・ 6.3.1 AlphaNumOnlyプロパティ ・ 6.3.6 CollationOrderプロパティ ・ 6.3.7 CompareAsUpperCaseプロパティ ・ 6.3.18 IgnoreControlCodeプロパティ ・ 6.3.31 Reverseプロパティ 6.3.34 SumCmdStrプロパティ ソート処理、およびマージ処理の集約フィールドを設定します。 構文 object.SumCmdStr = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 集約フィールドを記述形式にしたがって指定します。 記述形式 pos.len typ [ pos.len typ ...] - 176 - pos 集約フィールドの位置を指定します。 レコードの先頭を0として計算します。入力がテキストファイルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールド、また は固定フィールドで指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィールド番号を、 固定フィールドはカラム位置を指定します。 len 集約フィールドの長さを指定します。 テキストファイルで浮動フィールドとして処理する場合、集約結果は指定されたフィールド長で処理されます。指定したフィールド長よ り実際のフィールド長が長い場合、数字の左から指定フィールド長分が有効となります。逆に指定したフィールド長より実際のフィール ド長が短い場合、指定したフィールド長に拡張して処理します。 typ 集約フィールドのデータ形式を指定します。 詳細は、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。 解説 ・ キーフィールドが等しい複数のレコードの集約フィールドを加算し、1つのレコードにします。 ・ レコード集約機能を使用する場合は、SumCmdStrプロパティの指定とHandlingSameKeyプロパティに3(レコード集約)を設定する 必要があります。 ・ 複数の集約フィールドを指定する場合は、集約フィールドを連続して指定するか、コンマ( , )で区切って指定します。 ・ 集約フィールドを指定する場合は、入力レコード内のフィールドを指定してください。テキストファイル、または可変長レコード形式 のファイルの場合は、ファイル内の最小レコード長以下となるように位置と長さを指定します。 記述例 例 例1) 入力レコードの20バイトめから10バイトの外部10進数のフィールドを集約します。 19.10zdl 例2) 入力レコードの10バイトめから10バイトの外部10進数のフィールドと30バイトめから8バイトの固定小数点2進数を集約します。 9.10zdl29.8fbi 6.3.35 TempDirプロパティ ソート処理で使用する一時ファイルのフォルダ名を設定します。 構文 object.TempDir = string object オブジェクトへの参照を表すオブジェクト式を指定します。 string 一時ファイルのフォルダ名を指定します。 - 177 - 解説 ・ 一時ファイルを作成するフォルダ名を指定します。PowerSORTは、メモリ内だけでは処理できない大量のデータをソート処理する 場合、TempDirプロパティで指定したフォルダに一時ファイルを作成します。 ・ 複数のフォルダ名を指定できます。複数のフォルダ名を指定することで、空きスペースの不足によるエラーを回避できることがあり ます。 ・ 複数のフォルダ名を指定する場合は、異なるフォルダ名をセミコロン( ; )で区切って指定します。 ・ この指定を省略した場合は、以下の優先順位に従って一時ファイルを作成するフォルダを決定します。 1. 環境変数BSORT_TMPDIRで指定されたフォルダ 2. 環境変数TEMPで指定されたフォルダ 3. 環境変数TMPで指定されたフォルダ 4. Windowsシステムのフォルダ 注意 指定されたフォルダが存在しない場合は、エラーとなります。 6.3.36 UsableMemorySizeプロパティ PowerSORTが使用する作業域の大きさ(メモリサイズ)を設定します。 構文 object.UsableMemorySize = long object オブジェクトへの参照を表すオブジェクト式を指定します。 long 作業域の大きさをキロバイト数で設定します。 設定可能な作業域の大きさは、0、または64~32767キロバイトです。 解説 ・ 指定を省略するか、または0を指定すると、作業域は自動的に設定されます。 6.4 実行後に参照するプロパティ 6.4.1 ErrorCodeプロパティ PowerSORTの復帰コードが通知されます。 構文 object.ErrorCode object オブジェクトへの参照を表すオブジェクト式を指定します。 - 178 - 返却値 ErrorCodeプロパティに返却される値は次のとおりです。 返却値 意味 0 正常に終了しました。 -1 PowerSORTの処理中にエラーが検出されました。 -2 PowerSORT OCXで構文解析処理中にエラーが検出されました。 -3 PowerSORT OCXで構文解析処理中にエラーが検出されました(PowerSORT OCXでの み検出される固有のエラー)。 -4 PowerSORT OCXのエラーが検出されました。 解説 ・ PowerSORTの実行後、処理結果を示す復帰コードが設定されます。実行後に参照可能です。値の設定はできません。 参照 ・ 6.3.8 DispMessageプロパティ ・ 6.4.2 ErrorDetailプロパティ ・ 6.4.3 SubErrorCodeプロパティ ・ 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード ・ 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード ・ 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード ・ 9.2.2 富士通COBOLファイルに関するエラーコード 6.4.2 ErrorDetailプロパティ PowerSORTのエラー詳細コードが通知されます。 構文 object.ErrorDetail object オブジェクトへの参照を表すオブジェクト式を指定します。 解説 ・ PowerSORT実行中にエラーが検出された場合、エラー詳細コードが通知されます。実行後に参照可能です。値の設定はできま せん。通知される値については、9.2.6 OCX使用時のエラー詳細コードを参照してください。 参照 ・ 6.3.8 DispMessageプロパティ ・ 6.4.1 ErrorCodeプロパティ ・ 6.4.3 SubErrorCodeプロパティ ・ 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード - 179 - ・ 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード ・ 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード ・ 9.2.2 富士通COBOLファイルに関するエラーコード 6.4.3 SubErrorCodeプロパティ PowerSORTが使用するファイルシステムのエラーコードが通知されます。 構文 object.SubErrorCode object オブジェクトへの参照を表すオブジェクト式を指定します。 解説 ・ PowerSORT実行中にファイルシステムでエラーが検出された場合、エラーコードが通知されます。実行後に参照可能です。値の 設定はできません。通知される値については、ファイルシステムに応じて該当するマニュアルを参照してください。 参照 ・ 6.3.8 DispMessageプロパティ ・ 6.4.1 ErrorCodeプロパティ ・ 6.4.2 ErrorDetailプロパティ ・ 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード ・ 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード ・ 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード 6.5 メソッド 6.5.1 Actionメソッド PowerSORTを呼び出します。 構文 object.Action object オブジェクトへの参照を表すオブジェクト式を指定します。 解説 ・ Actionメソッドには引数はありません。PowerSORT OCXのプロパティに設定された処理条件で、PowerSORTを呼び出します。 ・ Actionメソッドを使う前に、必要なプロパティに値を設定してください。 - 180 - 参照 ・ 2.1 主要機能 ・ 2.3 オプション機能と主要機能の組合せ ・ 6.3.9 DisposalNumberプロパティ - 181 - 第7章 COBOLプログラムからPowerSORTを使用する PowerSORTは、富士通のNetCOBOL、PowerCOBOL97、COBOL97、およびCOBOL85で作成したCOBOLプログラムから利用するこ とができます。 ・ PowerSORTをインストールするだけで、COBOL実行環境が自動的にPowerSORTを呼び出します。COBOLの文法に従って、SORT 文、またはMERGE文を使用したプログラムを作成すると、実行時にPowerSORTが呼び出されます。 ・ 既存のCOBOLプログラムを実行する場合も、PowerSORTを利用するための特別な設定作業やCOBOLプログラムの変更、再コン パイルは不要です。 - 182 - 第8章 C言語プログラムからPowerSORTを使用する PowerSORTは、C言語プログラムから利用することができます。 C言語プログラムからPowerSORTを使用する場合、BSORT関数を使用します。ここでは、各BSORT関数の概要と使い方、BSORT関 数を使用してユーザアプリケーションを開発するときの注意事項について説明します。 8.1 BSORT関数とは BSORT関数とは、C言語プログラムからPowerSORTを使用するための関数の総称であり、BSORT関数一覧に示す5つの関数が用意 されています。 BSORT関数一覧 以下に各BSORT関数の概要を示します。 表8.1 BSORT関数一覧 関数名 概要 bsrtopen PowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域にロードし、各関数のアド レスを求めます。さらにPowerSORTの実行環境を準備します。 bsrtclse PowerSORTの実行環境を消去します。また、bsrtopen関数で仮想記憶域にロードした PowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域から消去します。 bsrtput ソート機能使用時に、ユーザアプリケーションからPowerSORTのダイナミックリンクライブラリ (DLL)にレコードを渡します。 bsrtget ソート機能使用時に、ソートしたレコードをPowerSORTのダイナミックリンクライブラリ(DLL) から受け取ります。 bsrtmrge マージ機能使用時に、ユーザアプリケーションからPowerSORTのダイナミックリンクライ ブラリ(DLL)にレコードを渡したり、マージしたレコードをPowerSORTから受け取ります。 関数の組合せ BSORT関数一覧に示したように、BSORT関数には5つの関数があります。 使用する機能と入出力の形態によって使用する関数が異なります。以下に、使用するPowerSORTの機能と関連するBSORT関数の組 合せを示します。 表8.2 使用するPowerSORTの機能と関連するBSORT関数一覧 関数名 ソート機能 マージ機能 コピー機能 bsrtopen ◎ ◎ ◎ bsrtclse ◎ ◎ ◎ bsrtput ○ × × bsrtget ○ × × bsrtmrge × ○ × ◎:必ず使用します ○:使用できます ×:使用できません 8.2 BSORT関数の使い方 ソート機能、マージ機能、およびコピー機能を使用する場合のBSORT関数の使い方について説明します。 - 183 - 8.2.1 ソート機能を使用する場合 ソート機能を使用する場合は、入出力の形態により次の4つがあります。 ・ 入出力ともファイル(標準入力と標準出力を含む)を使用する形態 ・ 入出力ともユーザアプリケーション(bsrtput関数とbsrtget関数)を使用する形態 ・ 入力にファイル(標準入力を含む)を使用し、出力にユーザアプリケーション(bsrtget関数)を使用する形態 ・ 入力にユーザアプリケーション(bsrtput関数)を使用し、出力にファイル(標準出力を含む)を使用する形態 入出力ともファイル(標準入力と標準出力を含む)を使用する形態 入出力ともファイル(標準入力と標準出力を含む)を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)、および出力ファイルパス名(または標準出力)を指定するとこの形態 になります。 入出力ともユーザアプリケーション(bsrtput関数とbsrtget関数)を使用する形態 入出力ともユーザアプリケーション(bsrtput関数とbsrtget関数)を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtput関数を発行します。 bsrtput関数はPowerSORTに渡すレコードがなくなるまで連続して発行します。 3. bsrtput関数を発行し、レコードの終わりを通知します。 4. bsrtget関数を発行します。 bsrtget関数は、PowerSORTからレコードの終わりが通知されるまで連続して発行します。 5. bsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)、および出力ファイルパス名(または標準出力)を指定しないとこの形 態になります。 入力にファイル(標準入力を含む)を使用し、出力にユーザアプリケーション(bsrtget関数)を使用する形態 入力にファイル(標準入力を含む)を使用し、出力にユーザアプリケーション(bsrtget関数)を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtget関数を発行します。 bsrtget関数は、PowerSORTからレコードの終わりが通知されるまで連続して発行します。 3. bsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)を指定し、出力ファイルパス名(または標準出力)を指定しないとこの 形態になります。 入力にユーザアプリケーション(bsrtput関数)を使用し、出力にファイル(標準出力を含む)を使用する形態 入力にユーザアプリケーション(bsrtput関数)を使用し、出力にファイル(標準出力を含む)を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtput関数を発行します。 bsrtput関数はPowerSORTに渡すレコードがなくなるまで連続して発行します。 3. bsrtput関数を発行し、レコードの終わりを通知します。 4. bsrtclse関数を発行します。 - 184 - bsrtopen関数のパラメタで、入力ファイルパス名(または標準入力)を指定しないで、出力ファイルパス名(または標準出力)を指定すると この形態になります。 8.2.2 マージ機能を使用する場合 マージ機能を使用する場合は、入出力の形態により次の4つがあります。 ・ 入出力ともファイル(標準出力を含む)を使用する形態 ・ 入出力ともユーザアプリケーション(bsrtmrge関数)を使用する形態 ・ 入力にファイルを使用し、出力にユーザアプリケーション(bsrtmrge関数)を使用する形態 ・ 入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力を含む)を使用する形態 入出力ともファイル(標準出力を含む)を使用する形態 入出力ともファイル(標準出力を含む)を使用する場合、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名、および出力ファイルパス名(または標準出力)を指定するとこの形態になります。 入出力ともユーザアプリケーション(bsrtmrge関数)を使用する形態 入出力ともユーザアプリケーション(bsrtmrge関数)を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtmrge関数を発行します。 bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。 この形態のbsrtmrge関数には、ユーザアプリケーションからPowerSORTにレコードを渡す働きとPowerSORTからレコードを受け 取る働きの2つがあります。bsrtmrge関数の発行では、個々のストリング(ソート済のレコード群)のレコードを渡し、PowerSORTか ら返されるレコードを受け取ります。ストリングのレコードがなくなったときはレコードの終わりを通知し、PowerSORTから返される レコードを受け取ります。処理しているすべてのストリングに対してレコードの終わりを通知したら、渡すレコードがなくてもPowerSORT からレコードの終わりが通知されるまで連続して発行して、PowerSORTから返されるレコードを受け取ります。 3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名、および出力ファイルパス名(または標準出力)を指定しないとこの形態になります。 入力にファイルを使用し、出力にユーザアプリケーション(bsrtmrge関数)を使用する形態 入力にファイルを使用し、出力にユーザアプリケーション(bsrtmrge関数)を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtmrge関数を発行します。 bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。 この形態のbsrtmrge関数には、PowerSORTからレコードを受け取る働きがあります。 3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名を指定し、出力ファイルパス名(または標準出力)を指定しないとこの形態になります。 入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力を含む)を使用する形態 入力にユーザアプリケーション(bsrtmrge関数)を使用し、出力にファイル(標準出力を含む)を使用する場合は、以下の手順で行いま す。 1. bsrtopen関数を発行します。 2. bsrtmrge関数を発行します。 bsrtmrge関数はPowerSORTからレコードの終わりが通知されるまで連続して発行します。 この形態のbsrtmrge関数には、ユーザアプリケーションからPowerSORTにレコードを渡す働きがあります。bsrtmrge関数の発行 - 185 - では、個々のストリングのレコードを渡し、ストリングのレコードがなくなったときはレコードの終わりを通知します。処理しているす べてのストリングに対してレコードの終わりを通知したら、渡すレコードがなくてもPowerSORTからレコードの終わりが通知される まで連続して発行します。 3. PowerSORTからレコードの終わりが通知されたら、最後にbsrtclse関数を発行します。 bsrtopen関数のパラメタで、入力ファイルパス名を指定しないで、出力ファイルパス名(または標準出力)を指定するとこの形態になりま す。 8.2.3 コピー機能を使用する場合 コピー機能を使用する場合、入出力ともファイル(標準入力と標準出力を含む)を使用する形態があります。 ソート機能とマージ機能のようにPowerSORTへレコードを渡したり、PowerSORTからレコードを受け取る形態はありません。コピー機能 を使用する場合は、以下の手順で行います。 1. bsrtopen関数を発行します。 2. bsrtclse関数を発行します。 8.3 ユーザアプリケーション開発時の留意事項 ここでは、BSORT関数を使用したユーザアプリケーション開発時の留意事項について説明します。 環境変数について 環境変数は、bsortexコマンド、bsortコマンド、およびPowerSORT OCXだけでなく、BSORT関数を使用したユーザアプリケーションの 実行にも影響を与えます。BSORT関数を使用したユーザアプリケーションを実行させるときには、適切な環境変数を設定する必要が あります。 コンパイルについて BSORT関数を使用したユーザアプリケーションのコンパイルには、PowerSORTが提供しているヘッダーファイル(bsrt.h)が必要です。 このヘッダーファイルは、インストール先のINCLUDEフォルダに格納されています。 リンクについて BSORT関数を使用したユーザアプリケーションのリンクには、PowerSORTが提供しているライブラリ(f3besort.lib)をリンクする必要があ ります。このライブラリは、インストール先のLIBフォルダに格納されています。 マルチスレッド対応について BSORT関数は、スレッドセーフな構造で作られていません。このため、マルチスレッドで動作するように作成されたユーザアプリケー ション上では、PowerSORTの動作は保証できません。 8.4 BSORT関数の種類 ここでは、各BSORT関数の詳細について説明します。 8.4.1 bsrtopen関数 bsrtopen関数は、PowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域にロードし、各関数のアドレスをパラメタfuncに設定し ます。 さらにPowerSORTの実行環境を準備します。 記述形式 #include "bsrt.h" int bsrtopen (long int BSRTVL, BSPTR_BSRTFUNC func, BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec, - 186 - BSPTR_BSRTKEY key, BSPTR_BSRTFILE file, BSPTR_BSRTOPT opt); 機能説明 以下にbsrtopen関数の機能を示します。 ・ PowerSORTの実行環境を構築します。 ・ 入力にファイル(標準入力を含む)、出力にユーザアプリケーションを使用する場合、ソート機能のときはソート処理を行い、結果を 出力する直前に復帰します。マージ機能のときはそれぞれのファイルから少しずつレコードを入力し、マージ処理をする直前に復 帰します。 ・ 入出力ともファイル(標準入力、標準出力を含む)を指定した場合は、ソート処理、またはマージ処理まで実施して復帰します。 ・ コピー機能の場合は、コピー処理を実施して復帰します。 パラメタ詳細 以下では、bsrtopen関数のパラメタについて説明します。 long int BSRTVL PowerSORTのバージョンレベル(BSRTVL)を指定します。 BSRTVLはBSORT関数のヘッダーファイル(bsrt.h)で定義されています。このパラメタにより、BSORT関数のインターフェースに変更が あってもユーザアプリケーションを変更することなく動作させることができます。 BSPTR_BSRTFUNC func BSORT関数(bsrtput関数、bsrtget関数、およびbsrtmrge関数)の各アドレスが設定されます。 なお、BSPTR_BSRTFUNCは、BSRTFUNC構造体のポインタを意味します。 BSPTR_BSRTPRIM prim ソート機能、マージ機能、コピー機能、レコード選択機能、レコード再編成機能、先入力先出力(FIFO)機能、レコード集約機能、およ びサプレス機能などを指定するパラメタです。 なお、BSPTR_BSRTPRIMは、BSRTPRIM構造体のポインタを意味します。 BSPTR_BSRTREC rec bsrtopen関数で指定する情報はありません。 エラーがあった場合、その詳細コードが設定されます。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。 BSPTR_BSRTKEY key ソート機能、またはマージ機能で使用するキーフィールドを指定します。 なお、BSPTR_BSRTKEYは、BSRTKEY構造体のポインタを意味します。 BSPTR_BSRTFILE file 入力ファイル、出力ファイル、および一時ファイルなどファイル情報を指定するパラメタです。 なお、BSPTR_BSRTFILEは、BSRTFILE構造体のポインタを意味します。 BSPTR_BSRTOPT opt オプション機能を指定するパラメタです。 集約フィールド、選択フィールド、再編成フィールド、および読み飛ばしレコード件数を指定する各構造体のポインタを指定します。こ れら構造体のポインタをいずれも指定しない場合は、bsrtopen関数のoptパラメタに0を指定します。いずれかを指定する場合は、それ ぞれ領域を確保した上で指定します。なお、BSPTR_BSRTOPTは、BSRTOPT構造体のポインタを意味します。 復帰値 bsrtopen関数の復帰値を説明します。 - 187 - 復帰値 意味 0 正常にbsrtopen関数が終了したことを示します。 続けて、bsrtput関数、bsrtget関数、bsrtmrge関数、またはbsrtclse関数を発行してくださ い。 -1 bsrtopen関数で異常が発生したことを示します。 詳細な情報は、BSRTREC構造体のerrdetail、またはsub_error_codeに設定されます。続 けて、bsrtclse関数を発行してください。 -2 bsrtopen関数で異常が発生したことを示します。 詳細な情報は、BSRTREC構造体のerrdetail、またはsub_error_codeに設定されます。な お、当復帰値の場合は、bsrtclse関数を発行する必要はありません。 注意 ・ BSRTVLを除いた他のパラメタは、値を設定しない場合でもbsrtopen関数発行前に0クリアする必要があります。値を設定するパラ メタは、設定前にフィールドを0クリアします。 ・ bsrtopen関数のパラメタのうち、BSRTVL、func、prim、およびrecは省略できません。key、file、およびoptは省略できます。省略す る場合は、bsrtopen関数のパラメタに0を指定します。 例) key、file、およびoptを省略する場合の指定方法 bsrtopen(BSRTVL, func, prim, rec, (BSPTR_BSRTKEY) 0, (BSPTR_BSRTFILE) 0, (BSPTR_BSRTOPT) 0); 8.4.2 bsrtclse関数 bsrtclse関数は、bsrtopen関数が構築したPowerSORTの実行環境を消去します。 記述形式 #include "bsrt.h" int bsrtclse (long int BSRTVL, BSPTR_BSRTFUNC func, BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec); 機能説明 以下にbsrtclse関数の機能を示します。 ・ bsrtopen関数が構築したPowerSORTの実行環境を消去します(作業域の解放、入出力ファイルと一時ファイルのクローズなど)。 ・ bsrtopen関数でロードしたPowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域から消去します。 ・ bsrtget関数、およびbsrtput関数の処理の途中でbsrtclse関数が呼ばれた場合、処理を中断します。 パラメタ詳細 以下では、bsrtclse関数のパラメタについて説明します。 long int BSRTVL PowerSORTのバージョンレベル(BSRTVL)を指定します。 BSRTVLはBSORT関数のヘッダーファイル(bsrt.h)で定義されています。 BSPTR_BSRTFUNC func bsrtopen関数で指定したfuncを指定します。 なお、BSPTR_BSRTFUNCは、BSRTFUNC構造体のポインタを意味します。 - 188 - BSPTR_BSRTPRIM prim bsrtopen関数で指定したprimを指定します。 なお、BSPTR_BSRTPRIMは、BSRTPRIM構造体のポインタを意味します。 BSPTR_BSRTREC rec bsrtopen関数で指定したrecを指定します。 なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。 復帰値 bsrtclse関数の復帰値を説明します。 復帰値 意味 正常にbsrtclse関数が終了しました。 0 処理の中断を指示され、正常に中断処理が終了しました。 なお、以下のような状態のときにbsrtclse関数を発行すると処理を中断します。 ・ ユーザアプリケーションが、bsrtput関数、またはbsrtmrge関数でデータの終わりを通 1 知していない状態 ・ ユーザアプリケーションに、bsrtget関数、またはbsrtmrge関数がデータの終わりを通 知していない状態 bsrtclse関数の処理で異常が発生したことを示します。 BSRTREC構造体のerrdetail、またはsub_error_codeに詳細コードが設定されます。 -1 注意 bsrtclse関数のパラメタには、ユーザアプリケーションが新しく設定するメンバーはありません。 8.4.3 bsrtput関数 bsrtput関数は、bsrtopen関数でソート機能を指定し、かつユーザアプリケーションからPowerSORTにレコードを渡す場合に使用します。 記述形式 #include "bsrt.h" BSRTFUNC func; (注) int func.bsrtput(BSPTR_BSRTREC rec); 注) funcはbsrtopen関数で指定したパラメタです。 機能説明 以下にbsrtput関数の機能を示します。 ・ ユーザアプリケーションからPowerSORTにレコード、またはレコード群を渡します。 ・ レコード、またはレコード群の終わりをPowerSORTに通知します。 レコード群の渡し方 複数のレコードを一括してPowerSORTに渡す場合は、BSRTREC構造体のrec_lenにレコード群の長さを指定します。 レコード群の長さは、固定長レコード形式の場合、レコード長のレコード件数倍になります。 可変長レコード形式の場合は、個々のレコードにレコード長の領域(long型)を前置します。レコード群の長さは、レコードとレコード長 の領域の累積長になります。なお、レコード長の領域に設定するレコード長にはレコード長の領域を含みません。 テキストファイルの場合は、改行文字を含めたレコードを連続領域に並べます。レコード群の長さは、レコードの先頭から最後のレコー ドの改行文字までの長さとなります。 - 189 - パラメタ詳細 以下では、bsrtput関数のパラメタについて説明します。 BSPTR_BSRTREC rec bsrtopen関数で指定したrecを指定します。 なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。 復帰値 bsrtput関数の復帰値を説明します。 復帰値 意味 0 正常にbsrtput関数が終了しました。 1 正常にレコード、またはレコード群の終わりを受け付けました。 -1 bsrtput関数の処理で異常が発生したことを示します。 BSRTREC構造体のerrdetail、またはsub_error_codeに詳細コードが設定されます。 8.4.4 bsrtget関数 bsrtget関数は、bsrtopen関数でソート機能を指定し、かつPowerSORTからソート結果のレコードを受け取る場合に使用します。 記述形式 #include "bsrt.h" BSRTFUNC func; (注) int func.bsrtget(BSPTR_BSRTREC rec); 注) funcはbsrtopen関数で指定したパラメタです。 機能説明 以下にbsrtget関数の機能を示します。 ・ PowerSORTからレコード、またはレコード群を受け取ります。 ・ レコード、またはレコード群の終わりをPowerSORTから通知されます。 返却されるレコード群の形式 個々のレコードを連続した領域に並べて返却します。 固定長レコード形式の場合は、先頭レコードのアドレスがBSRTREC構造体のrec_addrに、レコード群の長さ(レコード長のレコード件数 倍)がBSRTREC構造体のrec_lenに設定されます。 可変長レコード形式の場合は、各レコードの先頭にレコード長を格納した領域(long型)を持つ形式で、先頭レコードのアドレスがBSRTREC 構造体のrec_addrに、レコードとレコード長の領域を累積した長さがBSRTREC構造体のrec_lenに設定されます。 テキストファイルのレコードの場合は、改行文字を含めたレコードを連続した領域に並べて返却します。先頭レコードのアドレスがBSRTREC 構造体のrec_addrに、返却するレコードの累積した長さがBSRTREC構造体のrec_lenに設定されます。 パラメタ詳細 以下では、bsrtget関数のパラメタについて説明します。 BSPTR_BSRTREC rec bsrtopen関数で指定したrecを指定します。 なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。 - 190 - 復帰値 bsrtget関数の復帰値を説明します。 復帰値 意味 0 正常にbsrtget関数が終了しました。 1 正常にbsrtget関数が終了しました。 すべてのレコードを渡し終えたため、BSRTREC構造体のrec_addrにNULL、rec_lenに0 を設定しました。通常の処理では、bsrtget関数の復帰値が1になるまでbsrtget関数を繰 返し発行してください。 -1 bsrtget関数の処理で異常が発生したことを示します。 BSRTREC構造体のerrdetail、またはsub_error_codeに詳細コードが設定されます。 8.4.5 bsrtmrge関数 bsrtmrge関数は、bsrtopen関数でマージ機能を指定し、PowerSORTにマージするレコードを渡す場合、およびPowerSORTからマージ 結果のレコードを受け取る場合に使用します。 記述形式 #include "bsrt.h" BSRTFUNC func; (注) int func.bsrtmrge(BSPTR_BSRTREC rec); 注) funcはbsrtopen関数で指定したパラメタです。 機能説明 以下にbsrtmrge関数の機能を示します。 ・ ユーザアプリケーションからPowerSORTにマージするレコードを渡します。 ・ PowerSORTからユーザアプリケーションにマージ結果のレコードが返却されます。 ・ ストリングの終わりをPowerSORTに通知します。ストリングとは、ソート済のレコードの集まりのことをいいます。 ・ マージ結果のレコードの終わりは、PowerSORTからユーザアプリケーションに通知されます。 パラメタ詳細 以下では、bsrtmrge関数のパラメタについて説明します。 BSPTR_BSRTREC rec bsrtopen関数で指定したrecを指定します。 なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。 復帰値 bsrtmrge関数の復帰値を説明します。 復帰値 意味 0 正常にbsrtmrge関数が終了しました。 1 正常にbsrtmrge関数が終了しました。 すべてのレコードを渡し終えたため、BSRTREC構造体のmgrec_addrにNULL、mgrec_len に0を設定しました。 -1 bsrtmrge 関数の処理で異常が発生したことを示します。 BSRTREC構造体のerrdetail、またはsub_error_codeに詳細コードが設定されます。 - 191 - 8.5 BSORT関数で使用する構造体 BSORT関数で使用する構造体について説明します。 ・ 基本情報を設定する - BSRTPRIM構造体 ・ レコード情報を設定する - BSRTREC構造体 ・ キーフィールド情報を設定する - BSRTKEY構造体 - BSKEY構造体 - BSKANJI構造体 - BSCOL構造体 ・ ファイル情報を設定する - BSRTFILE構造体 - BSFILE構造体 - BSFSYS構造体 - BSIDX構造体 - BSIDXKEY構造体 - BSFILE_EXT構造体 - BSFILE_BTRV構造体 - BSFILE_BASE構造体 ・ レコードオプション情報を設定する - BSRTOPT構造体 - BSRTSUM構造体 - BSSUM構造体 - BSRTSELE構造体 - BSSELE構造体 - BSRTRCON構造体 - BSRCON構造体 - BSRTSKIP構造体 ・ その他の構造体 - BSRTFUNC構造体 8.5.1 BSRTPRIM構造体 BSRTPRIM構造体は、ソート処理、マージ処理、およびコピー処理など主要な基本情報を指定するための構造体です。 typedef struct { unsigned long unsigned char unsigned char unsigned char unsigned char reserve1; function; recform; optionfunc; fileoprat; /* reserved */ - 192 - unsigned char unsigned char unsigned char unsigned char unsigned long unsigned long unsigned long BSPTR_VOID unsigned long BSPTR_UCHAR unsigned char unsigned char unsigned char unsigned char unsigned char unsigned char unsigned char unsigned char BSPTR_UCHAR } BSRTPRIM; recoprat; msglevel; cdmode; chklevel; rec_len; input_string; memory_size; memory_addr; input_recno; fldchar_addr; debuginfo; fieldmode; keyoption; keyoption2; linedlmt; error_happened; altmode; reserve4; /* reserved */ reserve5; /* reserved */ BSRTPRIM構造体メンバー 以下では、BSRTPRIM構造体のメンバーについて説明します。 unsigned char function PowerSORTの主要機能を指定します。 以下から1つを選択して指定します。省略はできません。 定義値 意味 BS_SORT ソート機能 BS_MERGE マージ機能 BS_COPY コピー機能 unsigned char recform レコード形式を指定します。 以下から1つを選択して指定します。テキストファイルのときは値を指定する必要はありません。 定義値 意味 BS_FREC 固定長レコード形式 BS_VREC 可変長レコード形式 unsigned char optionfunc オプション機能を指定します。 必要に応じて以下を指定します。複数指定する場合は、その論理和を指定します。 定義値 意味 BS_FIFO 先入力先出力(FIFO)機能を示します。(注) サプレス機能、またはレコード集約機能と同時に指定された場合、先入力先出力(FIFO) 機能の指定は無視されます。 BS_SUPPRESS サプレス機能を示します。 レコード集約機能とは排他関係にあります。 - 193 - 定義値 意味 BS_SUM レコード集約機能を示します。 サプレス機能とは排他関係にあります。レコード集約機能を指定する場合は、BSRTOPT 構造体に集約テーブル(BSRTSUM構造体)のアドレスを指定する必要があります。 BS_SELECT レコード選択機能を示します。 レコード選択機能を指定する場合は、BSRTOPT構造体に選択テーブル(BSRTSELE構 造体)のアドレスを指定する必要があります。 BS_RECON レコード再編成機能を示します。 レコード再編成機能を指定する場合は、BSRTOPT構造体に再編成テーブル (BSRTRCON構造体)のアドレスを指定する必要があります。 BS_REVERSE 降順にソート処理、またはマージ処理することを示します。 キーフィールドを省略した場合に有効になります。 BSMSG_STDERR 標準エラー出力にメッセージを出力することを示します。 出力するメッセージの種別は、BSRTPRIM構造体のmsglevel、または環境変数 BSORT_MSGLEVELの指定に依存します。 注) 入力ファイルがMicro Focus COBOLファイルシステムの索引ファイルの場合に先入力先出力(FIFO)機能を指定すると、インデック ス順ではなく物理順で優先順位が決定します。 unsigned char fileoprat 入出力情報を指定します。 必要に応じて以下を指定します。複数指定する場合は、その論理和を指定します。 定義値 意味 BS_OVERWRITE 出力ファイルが入力ファイルと同じ場合に、処理を継続することを示します。 ソート機能のときに有効です。このオプションを指定し、出力ファイルが入力ファイルと同 じ場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場合 がありますので、注意してください。 BS_STDIN 標準入力からレコードを入力することを示します。 このオプションは、マージ機能の場合には指定できません。BSRTFILE構造体で入力 ファイルを指定している場合には無視されます。 BS_STDOUT 標準出力に結果を出力することを示します。 BSRTFILE構造体で出力ファイルを指定している場合には無視されます。 unsigned char recoprat PowerSORTとのレコードの受渡し方法を指定します。 複数指定する場合は、入力の受渡し方法と出力の受渡し方法から1つずつ選んでその論理和を指定します。 ・ 入力の受渡し方法 定義値 意味 BS_IS bsrtput関数、またはbsrtmrge関数を使用して、1レコードずつPowerSORTに渡す ことを示します。 BS_IM bsrtput関数を使用して、複数のレコードを一括してPowerSORTに渡すことを示 します。 この受渡し方法は、マージ機能の場合には指定できません。 ・ 出力の受渡し方法 定義値 BS_OS 意味 bsrtget関数、またはbsrtmrge関数を使用して、1レコードずつPowerSORTから受 け取ることを示します。 - 194 - 定義値 意味 bsrtget関数を使用して、複数のレコードを一括してPowerSORTから受け取ること を示します。 この受渡し方法は、マージ機能の場合には指定できません。 BS_OM unsigned char msglevel PowerSORTが出力するメッセージの種別(レベル)を指定します。 以下から1つを選択して指定します。なお、メッセージを標準エラー出力に出力するためには、BSRTPRIM構造体のoptionfuncに BSMSG_STDERRを指定する必要があります。 定義値 意味 BSMSG_LEVEL_N 何も出力しません。 BSMSG_LEVEL_E エラーメッセージを出力します。 BSMSG_LEVEL_W エラーメッセージ、および警告メッセージを出力します。 BSMSG_LEVEL_I エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 また、以前のバージョンとの互換用として、以下の種別(レベル)も指定できます。 定義値 意味 BSMSG_LEVEL0 何も出力しません。 BSMSG_LEVEL1 エラーメッセージを出力します。 BSMSG_LEVEL2 エラーメッセージと情報メッセージを出力します。 unsigned char cdmode 入力ファイルのコード系を指定します。 以下から1つを選択して指定します。 定義値 意味 BSZD_AU ASCIIコード系(富士通COBOL形式) BSZD_AC ASCIIコード系(Micro Focus COBOL形式、COBOL/2形式) BSZD_EBCDIC EBCDICコード系 (注) BSZD_UCS2 Unicode系(UCS-2形式) システム標準のバイトオーダー BSZD_UCS2B Unicode系(UCS-2形式) Big endianのバイトオーダー BSZD_UCS2L Unicode系(UCS-2形式) Little endianのバイトオーダー BSZD_UTF8 Unicode系(UTF-8形式) 注) EBCDICコード系はバイナリファイルの場合に指定可能です。 unsigned char chklevel BSORT関数のチェック機構を指定します。 以下から1つを選択して指定します。 定義値 BSCHK_LEVEL0 意味 何もチェックしません。 - 195 - 定義値 意味 BSCHK_LEVEL1 unsigned long インターフェースをチェックします。 インターフェースチェックは、bsrtput関数、bsrtget関数、およびbsrtmrge関数でパラメタの 正当性をチェックするものです。 rec_len 入力レコード長を指定します。 可変長レコード形式では最大レコード長を指定します。テキストファイルでは改行コードを含んだ最大レコード長を指定します。 unsigned long input_string マージ機能時の入力ストリング数を指定します。 ソート機能、またはコピー機能を使用する場合は、0を指定してください。なお、ストリングとは、ソート済のレコードの集まりをいいます。 unsigned long memory_size PowerSORTが使用する作業域の大きさ(メモリサイズ)をバイト数で指定します。 32768~2147482624バイトの範囲で指定します。省略する場合は0を指定します。省略した場合、環境変数BSORT_MEMSIZEの指定 があればその大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。2147482625以上の値を指定した場合は 2147482624を指定したとみなされます。 BSPTR_VOID memory_addr PowerSORTが使用する作業域のアドレスを指定します。 省略する場合はNULLを指定します。memory_addrを指定する場合、memory_sizeでその大きさを指定する必要があります。不当な値 が指定された場合、PowerSORTの処理は保証されません。PowerSORTの作業域は、システムの制御等によってアドレスが移動しない 領域を指定してください。 unsigned long input_recno 入力レコード件数を概数で指定します。 入力レコード件数が分からない場合は、0を指定してください。 BSPTR_UCHAR fldchar_addr フィールド分離文字列のアドレスを指定します。 テキストファイル浮動フィールド指定のときに有効です。フィールド分離文字列は、'¥0'で終わる文字列です。 unsigned char debuginfo サポートしていないメンバーです。何も指定する必要はありません。 unsigned char fieldmode テキストファイルのときのフィールドの決め方を指定します。 以下から1つを選択して指定します。テキストファイルの場合、指定が必要です。 定義値 意味 BS_FLTFLD テキストファイル浮動フィールド指定を示します。 フィールド分離文字列で区切られたフィールドの番号で各フィールドを指定します。フィー ルド分離文字の位置によりフィールド位置が決定されるため、レコードごとにフィールド位置 (カラム位置)は異なります。 BS_FIXFLD テキストファイル固定フィールド指定を示します。 バイト位置によって各フィールドを指定します。 BS_CSVFORM テキストファイルCSV形式を示します。 コンマ( , )で区切られたフィールドの番号で各フィールドを指定します。コンマの位置に - 196 - 定義値 意味 よりフィールド位置が決定されるため、レコードごとにフィールド位置(カラム位置)は異な ります。 テキストファイルTSV形式を示します。 タブで区切られたフィールドの番号で各フィールドを指定します。タブの位置によりフィー ルド位置が決定されるため、レコードごとにフィールド位置(カラム位置)は異なります。 BS_TSVFORM unsigned char keyoption キーフィールドの操作を指定します。 テキストファイルの場合にキーフィールドの指定を省略したときに有効です。必要に応じて以下を指定します。複数の操作を指定する 場合は、その論理和を指定します。 定義値 意味 BSOPT_BLANK キーフィールドの先頭の空白とタブを無視します。 BSOPT_DICTIONAR Y 空白と英数字だけを比較の対象とします。 BSOPT_IGNORE 制御文字コードを無視します。 BSOPT_JUMBO 英小文字を英大文字として比較します。 BSOPT_NUMERIC 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。この定義値は、 BSOPT_CHARNUM、およびkeyoption2のBSOPT2_WCHRとは排他関係にあります。 BSOPT_CHARNUM 英字と数字の連結データ(例えば「data123」など)を英字と数値に分けて評価し並べま す。 英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。 指定フィールドの左から評価し、有効データ後に出現したデータは無視します。この定 義値は、BSOPT_NUMERIC、およびkeyoption2のBSOPT2_WCHRとは排他関係にあり ます。 unsigned char keyoption2 キーフィールドの操作を指定します。 複数バイトで表現される文字の文字列を文字単位に比較する場合に指定します。テキストファイルの場合にキーフィールドの指定を省 略したときに有効です。このメンバーはkeyoptionのBSOPT_NUMERIC、およびBSOPT_CHARNUMとは排他関係にあります。必要に 応じて以下を指定します。 定義値 BSOPT2_WCHR unsigned char 意味 複数バイトから成る文字が混在していても文字ごとに比較して並べます。 linedlmt レコード分離文字を指定します。 テキストファイルのときに有効です。以下から1つを選択して指定します。 定義値 意味 BSLDM_LF LFを改行文字とします。 BSLDM_CR CRを改行文字とします。 BSLDM_CL CRLFを改行文字とします。 unsigned char error_happened サポートしていないメンバーです。何も指定する必要はありません。 - 197 - unsigned char altmode ASCIIコードとEBCDICコード間の変換方式を指定します。 以下から1つを選択して指定します。 定義値 意味 BSALT_ASCII EBCDICコードとUS ASCIIコード間のコード変換を指定します。 BSALT_JIS8 EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定します。 BSALT_JIS7 EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定します。 参考 以下の場合にASCIIコードとEBCDICコード間の変換が行われます。 ・ 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がASCIIコード系でキーフィールドのデータ形式がEBCDICコードの場合 におけるキーフィールドの比較 ・ 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系でキーフィールドのデータ形式がASCIIコードの場合 におけるキーフィールドの比較 8.5.2 BSRTREC構造体 BSRTREC構造体は、PowerSORTとユーザアプリケーション間でレコードを受け渡すための構造体です。 BSRTREC構造体には、bsrtopen関数発行前にユーザアプリケーションが指定するメンバーはありません。 typedef struct { BSPTR_VOID unsigned long unsigned long unsigned long BSPTR_VOID unsigned long unsigned char unsigned char unsigned short BSPTR_VOID unsigned long unsigned long unsigned long } BSRTREC; sort_table; errdetail; in_count; out_count; rec_addr; rec_len; rec_status; mgrec_status; mgrec_string; mgrec_addr; mgrec_len; hProcFile; sub_error_code; BSRTREC構造体メンバー 以下では、BSRTREC構造体のメンバーについて説明します。 BSPTR_VOID sort_table bsrtopen関数により、PowerSORTが使用する作業域のアドレスが設定されます。 このメンバーはPowerSORTが使用する専用の領域であり、ユーザアプリケーションは、bsrtopen関数の発行からbsrtclse関数の発行が 完了するまでの間、内容を保証しなければなりません。ユーザアプリケーションは、このメンバーに対して何もする必要はありません。 unsigned long errdetail PowerSORTが処理中にエラーを検出した場合、BSORT関数のエラー詳細コードが設定されます。 ユーザアプリケーションは、エラーの発生を各BSORT関数の戻り値から知ることができます。ユーザアプリケーションは、エラー発生時 以外にこのメンバーを参照する必要はありません。 - 198 - unsigned long in_count PowerSORTがユーザアプリケーションから受け取ったレコード件数を、レコードの受渡し毎にユーザアプリケーションに通知します。 このメンバーは、ユーザアプリケーションが必要な場合に参照してください。 unsigned long out_count PowerSORTがユーザアプリケーションに受け渡したレコード件数を、レコードの受渡し毎にユーザアプリケーションに通知します。 このメンバーは、ユーザアプリケーションが必要な場合に参照してください。 BSPTR_VOID rec_addr ・ bsrtput関数の場合 PowerSORTに渡すレコードのアドレスを指定します。 bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合、レコード群のアドレスを指定します。 ・ bsrtget関数の場合 ユーザアプリケーションに返却するレコードのアドレスが設定されます。 bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合、レコード群のアドレスが設定されます。返却す るレコード、またはレコード群がないときは、NULLが設定されます。 ・ bsrtmrge関数の場合 PowerSORTに渡すレコードのアドレスを指定します。 unsigned long rec_len ・ bsrtput関数の場合 PowerSORTに渡すレコードの長さを指定します。 bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合、レコード群の長さを指定します。テキストファイル のレコードを渡すときは、改行文字を含めたレコードの長さを指定します。 ・ bsrtget関数の場合 ユーザアプリケーションに返却するレコードの長さが設定されます。 bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合、レコード群の長さが設定されます。返却するレ コードがないときは、0が設定されます。 ・ bsrtmrge関数の場合 PowerSORTに渡すレコードの長さを指定します。 テキストファイルのレコードを渡すときは、改行文字までの長さを指定します。 unsigned char rec_status ・ bsrtput関数の場合 レコードを渡し終えたかどうかを通知します。 以下のいずれかを指定します。 定義値 意味 BS_CONT PowerSORTに渡すレコードはまだあります。 BS_ENDDATA PowerSORTに渡すレコードは終わりました。 レコードの終りを通知する際は、rec_addrにNULL、rec_lenに0を指定します。 ・ bsrtget関数の場合 使用しません。 ・ bsrtmrge関数の場合 最終レコードか否かを通知します。 以下のいずれかを指定します。 - 199 - 定義値 意味 BS_CONT mgrec_stringのストリングにはレコードがまだあります。 BS_ENDDATA mgrec_stringのストリングのレコードは終わりました。 unsigned char mgrec_status PowerSORTからレコードの入力要求が通知されます。 このメンバーは、bsrtmrge関数を使用するときに設定されます。以下のいずれかが設定されます。 定義値 意味 BS_REQ レコードの入力要求を示します。 mgrec_stringが示すストリングのレコードを次のbsrtmrge関数で渡します。 BS_NOREQ レコードの入力要求はありません。 rec_addrにNULL、rec_lenに0を指定して、再度bsrtmrge関数を発行します。 unsigned short mgrec_string PowerSORTに渡すレコードのストリング番号を指定、または参照します。 bsrtmrge関数で最初のレコードを渡すときに0を指定します。それ以降は、PowerSORTがストリング番号を設定します。ユーザアプリケー ションは、ここで設定されたストリング番号のレコードを、次のbsrtmrge関数でPowerSORTへ渡してください。このメンバーは、bsrtmrge関数 を使用するときに設定されます。 BSPTR_VOID mgrec_addr ユーザアプリケーションに返却するレコードのアドレスが設定されます。 返却するレコードがないときはNULLが設定されます。このメンバーは、bsrtmrge関数を使用するときに設定されます。 unsigned long mgrec_len ユーザアプリケーションに返却するレコードの長さが設定されます。 返却するレコードがないときは0が設定されます。このメンバーは、bsrtmrge関数を使用するときに設定されます。 unsigned long hProcFile PowerSORTが処理のために使用するメンバーです。 ユーザアプリケーションは、このメンバーに対して何もする必要はありません。 unsigned long sub_error_code ファイルシステム、または漢字ソートマージ機能でエラーが発生した場合、その詳細コードが設定されます。 Btrieveファイルシステムでエラーが発生した場合は、Btrieveファイルに関するエラーコードが設定されます。また、漢字ソートマージ機 能でエラーが発生した場合は、ADJUSTに関するエラーコード、またはICONVに関するエラーコードが設定されます。 8.5.3 BSRTKEY構造体 BSRTKEY構造体は、ソート処理、またはマージ処理するときのキーフィールドを定義するための構造体です。 キーフィールドの指定を省略した場合は、レコード全体をキーフィールドとみなしてコード順に並べます。 BSRTKEY構造体の領域を確保する際の領域の大きさは、BS_KEYTABSIZE(n)を使って求められます。BS_KEYTABSIZE(n)は、n個の BSKEY構造体をもつBSRTKEY構造体の大きさを求めるマクロです。 注意 テキストファイルCSV形式、テキストファイルTSV形式の場合、キーフィールドは省略できません。 typedef struct { unsigned long entry_no; - 200 - BSKEY } BSRTKEY; key_entry[1]; BSRTKEY構造体メンバー 以下では、BSRTKEY構造体のメンバーについて説明します。 unsigned long entry_no キーフィールドの数を指定します。 0を指定した場合は、キーフィールドの省略を意味します。 BSKEY key_entry[n] キーフィールドを指定します。 詳細は8.5.4 BSKEY構造体を参照してください。 8.5.4 BSKEY構造体 BSKEY構造体は、個々のキーフィールドを定義するための構造体です。 typedef struct { unsigned long unsigned long unsigned char unsigned char unsigned char unsigned char BSPTR_VOID } BSKEY; key_position; key_length; key_type; key_order; key_option; key_option2; subfield_addr; BSKEY構造体メンバー 以下では、BSKEY構造体のメンバーについて説明します。 unsigned long key_position キーフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 unsigned long key_length キーフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 キーフィールドのデータ形式(key_type)に符号なし2進数(BSKEY_BIT)を指定する場合は、1バイト分のビットを選択するためのマスク 値を指定します。この場合、key_positionの位置にある1バイトのフィールド値とマスク値の論理積がキー値になります。 指定可能な各データ形式の長さについては、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、キーフィールドの 長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つのダ ブルクォーテーション( " )として長さを計算します。 例) テキストファイルCSV形式における、キーフィールドと長さ キーフィールド ABC キーフィールドとして有効な文字 ABC キーフィールドの長さ 3バイト - 201 - "ABC" "A""B""C" "A,B,C" unsigned char ABC A"B"C A,B,C 3バイト 5バイト 5バイト key_type キーフィールドのデータ形式を指定します。 指定可能なデータ形式については、2.7.4.1 キーフィールドに指定可能なデータ形式を参照してください。 unsigned char key_order キーフィールドの並び順を指定します。 以下のいずれかを指定します。 定義値 意味 BS_ASCND 昇順を示します。(省略値) BS_REVRS 降順を示します。 unsigned char key_option キーフィールドの操作を指定します。 指定可能な操作を以下に示します。バイナリファイルの場合は、BSOPT_Kが指定できます。テキストファイルの場合は、全てのキー フィールドの操作が指定できます。複数の操作を指定する場合は、その論理和を指定します。 定義値 意味 BSOPT_BLANK キーフィールドの先頭の空白とタブを無視します。 BSOPT_DICTIONAR Y 空白と英数字だけを比較の対象とします。 BSOPT_IGNORE 制御文字コードを無視します。 BSOPT_JUMBO 英小文字を英大文字として比較します。 BSOPT_KANJI 漢字ソートマージ機能を使用します。 BSKANJI構造体の指定が必要となります。BSOPT_KANJIを指定した場合は、 BSOPT_BLANKの操作だけが有効となり、他の指定は無視します。漢字ソートマージ機 能で指定可能なデータ形式は、ASCIIコード、シフトJISコード、およびJEFコードです。 BSOPT_NUMERIC 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。データ形式が ASCIIコード、EBCDICコード、Unicode UCS-2形式、またはUnicode UTF-8形式の場合 に指定できます。 BSOPT_CHARNUM、およびkey_option2のBSOPT2_WCHRとは排他関係にあります。 BSOPT_CHARNUM 英字と数字の連結データ(例えば「data123」など)を英字と数値に分けて評価し並べま す。 英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。 指定フィールドの左から評価し、有効データ後に出現したデータは無視します。データ 形式がASCIIコード、EBCDICコード、Unicode UCS-2形式、またはUnicode UTF-8形式 の場合に指定できます。 BSOPT_NUMERIC、およびkey_option2のBSOPT2_WCHRとは排他関係にあります。 注意 ・ 漢字ソートマージ機能では、BSOPT_BLANKを指定した場合、全角の空白も無視します。 ・ キーフィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、key_optionの指定はできません。 - 202 - ・ キーフィールドのデータ形式に文字形式2桁年号(BSKEY_YYC)を指定した場合、key_optionの指定は無視されます。 unsigned char key_option2 複数バイトで表現される文字の文字列を文字単位に比較する場合の操作を指定します。 ここで指定する定義値は、key_optionのBSOPT_NUMERIC、およびBSOPT_CHARNUMとは排他関係にあります。必要に応じて以下 を指定します。 定義値 意味 BSOPT2_WCHR BSPTR_VOID 複数バイトから成る文字が混在していても文字ごとに比較して並べます。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式、またはUnicode UTF-8 形式で、入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系以外 の場合に有効です。 subfield_addr 漢字ソートマージ機能、または照合順序変更機能を使用する場合に指定します。 ・ 漢字ソートマージ機能を使用する場合、その方法を定義したBSKANJI構造体のアドレスを指定します。漢字ソートマージ機能は、 BSKEY構造体のkey_optionにBSOPT_KANJIが指定されている場合に利用できます。 ・ 照合順序変更機能を使用する場合は、照合順序変更を定義したBSCOL構造体のアドレスを指定します。照合順序変更機能は、 BSKEY構造体のkey_typeにBSKEY_COLが指定されている場合に利用できます。 参考 バイナリファイルの可変長レコード形式、またはテキストファイルの場合、キーフィールドが存在しないレコードが入力されたときは、キー フィールドが存在しない部分の値を0とみなして処理します。 8.5.5 BSKANJI構造体 BSKANJI構造体は、漢字フィールド、およびふりがなフィールドを定義するための構造体です。 typedef struct { unsigned char unsigned char unsigned char unsigned char unsigned char unsigned long unsigned long } BSKANJI; Kkey_order[4]; Kkey_form; reserve1; reserve2; Fkey_type; Fkey_position; Fkey_length; /* reserved */ /* reserved */ BSKANJI構造体メンバー 以下では、BSKANJI構造体のメンバーについて説明します。 unsigned char Kkey_order[4] 漢字フィールドの漢字属性を指定します。 漢字属性を複数指定すると指定した順に比較が行われます。複数指定する場合は、最大4つまで指定できます。指定可能な漢字属 性を以下に示します。 定義値 意味 BS_BUSHU 部首コード順に並べます。 BS_SOKAKU 総画数順に並べます。 - 203 - 定義値 意味 BS_ONYOMI 音読み順に並べます。 BS_KUNYOMI 訓読み順に並べます。 BS_CODE 漢字コード順に並べます。 unsigned char Kkey_form 漢字ソートマージ機能の方式を指定します。 指定可能な方式を以下に示します。 定義値 意味 BSFM_STD 基本方式(漢字属性の順)に並べます。 BSKANJI構造体のKkey_orderの指定が必要です。ふりがなフィールドの指定は必要あ りません。 BSFM_DIC 国語辞典方式(ふりがなの順)に並べます。 ふりがなフィールドの指定が必要となります。 unsigned char Fkey_type ふりがなフィールドのデータ形式を指定します。 ふりがなフィールドには、半角文字と全角文字が混在できます。指定可能なデータ形式を以下に示します。 表8.3 バイナリファイルの場合 種類 文字 データ形式 定義値 長さ(バイト) ASCIIコード BSKEY_ASC 1~レコード長 (注1) EBCDICコード (注2) BSKEY_EBC 1~レコード長 (注1) シフトJISコード BSKEY_SJI 1~レコード長 (注1) JEFコード (注2) BSKEY_JEF 2~レコード長 (2の倍数) (注1) 表8.4 テキストファイルの場合 種類 文字 データ形式 定義値 長さ(バイト) ASCIIコード BSKEY_ASC 1~レコード長 (注1) シフトJISコード BSKEY_SJI 1~レコード長 (注1) 注1) レコード再編成機能を指定した場合は、レコード再編成後のレコード長まで指定できます。 注2) 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系の場合に指定できます。 unsigned long Fkey_position ふりがなフィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 unsigned long Fkey_length ふりがなフィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 - 204 - 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、ふりがなフィール ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ のダブルクォーテーション( " )として長さを計算します。 8.5.6 BSCOL構造体 BSCOL構造体は、照合順序変更機能を定義するための構造体です。 typedef struct { unsigned char } BSCOL; col_char[256]; BSCOL構造体メンバー 以下では、BSCOL構造体のメンバーについて説明します。 unsigned char col_char[256] 照合順序を変更するための情報を256バイトのテーブルに指定します。 このテーブルでは、照合順序を変更したいコードのオフセット位置に、変更するコードを指定します。256バイトすべてにコードを指定 する必要があります。照合順序を変更しないコードは、オフセット位置と同じコードを指定します。 8.5.7 BSRTFILE構造体 BSRTFILE構造体は、入力ファイル、出力ファイル、メッセージファイル、および一時ファイルの情報を指定するための構造体です。 BSRTFILE構造体で指定するすべてのファイル情報を省略する場合は、bsrtopen関数のfileパラメタにNULLを指定します。ファイル情 報を指定する場合は、領域を確保した上で指定します。 typedef struct { BSPTR_BSFILE BSPTR_UCHAR BSPTR_BSFILE BSPTR_UCHAR BSPTR_BSFSYS unsigned char unsigned char unsigned char BSPTR_BSIDX BSPTR_BSFILE_EXT BSPTR_VOID } BSRTFILE; inpfile_tbl; outfile_addr; tmpfile_tbl; msgfile_addr; inpfsys_tbl; outfsys; recovery; reserve[2]; idx_addr; outfile_tbl; reserve2; /* reserved */ /* reserved */ BSRTFILE構造体のメンバー 以下では、BSRTFILE構造体のメンバーについて説明します。 BSPTR_BSFILE inpfile_tbl 入力ファイルを指定する場合、入力ファイルパス名を指定したBSFILE構造体のアドレスを指定します。 標準入力から入力させる場合、またはユーザアプリケーションからレコードを渡す場合(bsrtput関数、またはbsrtmrge関数を使用する場 合)は、NULLを指定します。 BSPTR_UCHAR outfile_addr 出力ファイルを指定する場合、出力ファイルパス名のアドレスを指定します。 出力ファイルパス名は'¥0'で終わる文字列です。出力ファイルを複数指定する場合は、BSRTFILE構造体のoutfile_tblに指定します。 標準出力に出力させる場合、ユーザアプリケーションにレコードを渡す場合(bsrtget関数、またはbsrtmrge関数を使用する場合)、また は出力ファイルを複数指定する場合は、NULLを指定します。 - 205 - BSPTR_BSFILE tmpfile_tbl 一時ファイルを指定する場合、一時ファイルパス名を指定したBSFILE構造体のアドレスを指定します。 一時ファイルの指定を省略する場合は、NULLを指定します。一時ファイルの指定を省略すると、以下の優先順位に従って一時ファイ ルを作成するフォルダを決定します。指定されたフォルダが存在しない場合はエラーとなります。 1. 環境変数BSORT_TMPDIRで指定されたフォルダ 2. 環境変数TEMPで指定されたフォルダ 3. 環境変数TMPで指定されたフォルダ 4. Windowsシステムのフォルダ BSPTR_UCHAR msgfile_addr メッセージファイルを指定する場合、メッセージファイルパス名のアドレスを指定します。 メッセージファイルパス名は'¥0'で終わる文字列です。メッセージファイルの指定を省略する場合は、NULLを指定します。メッセージ ファイルの指定を省略した場合、環境変数BSORT_MSGFILEの指定があれば、そのファイルにメッセージを出力します。 BSPTR_BSFSYS inpfsys_tbl BSFSYS構造体のアドレスを指定します。 入力ファイルを指定しない場合、またはシステムの標準ファイルシステムだけを使用する場合は、指定を省略できます。 unsigned char outfsys 出力ファイルのファイルシステムを指定します。 ファイルシステムについては8.5.9 BSFSYS構造体を参照してください。出力ファイルを指定しない場合、またはシステムの標準ファイル システムを使用する場合は、指定を省略できます。 unsigned char recovery 出力ファイルがファイルシステムの許容量を超えた場合のリカバリー処理を指定します。 リカバリー処理は、出力ファイルがファイルシステムの許容量を超えた場合、複数のファイルに分割して出力します。このため、リカバ リー処理を指定する場合は、出力ファイルを複数指定する必要があります。リカバリー処理の指定がなく、出力ファイルがファイルシス テムの許容量を超えた場合は、別の出力ファイルをオープンすることなくエラー終了します。 リカバリー処理は、以下のファイルを処理する場合に指定できます。 ・ システム標準のファイル(テキストファイル、バイナリファイル) リカバリー処理を指定する場合は、以下を指定します。 定義値 意味 リカバリー処理を行います。 BSRC_FILE BSPTR_BSIDX idx_addr BSIDX構造体のアドレスを指定します。 出力ファイルが富士通COBOLファイルシステムの索引ファイルのときに有効です。富士通COBOLファイルシステムの索引ファイルの 場合は省略できません。BSIDX構造体については、8.5.10 BSIDX構造体を参照してください。 BSPTR_BSFILE_EXT outfile_tbl BSFILE_EXT構造体のアドレスを指定します。 BSFILE_EXT構造体は、以下の場合に指定します。 ・ リカバリー処理を行う場合の出力ファイル情報の指定 ・ 入力ファイル、または出力ファイルのファイルシステムにBtrieveファイルシステムを指定した場合の、入力Btrieveファイルのオー ナーネーム、または出力Btrieveファイルのインデックス情報の指定 - 206 - 8.5.8 BSFILE構造体 BSFILE構造体は、入力ファイルパス名と一時ファイルパス名を指定するための構造体です。 BSFILE構造体の領域を確保する際の領域の大きさは、BS_FILESIZE(n)を使って求められます。BS_FILESIZE(n)は、n個のファイル パス名のポインタをもつBSFILE構造体の大きさを求めるマクロです。 typedef struct { unsigned long unsigned_char } BSFILE; entry_no; *file_addr[1]; BSFILE構造体メンバー 以下では、BSFILE構造体のメンバーについて説明します。 unsigned long entry_no 入力ファイルパス名、または一時ファイルパス名の数を指定します。 0を指定すると入力ファイルパス名、または一時ファイルパス名の指定を省略したものとみなします。マージ機能で入力ファイルパス名 を指定する場合は、入力ファイルパス名の数とBSRTPRIM構造体のinput_stringに同じ値を指定しなければなりません。 unsigned_char *file_addr[n] 入力ファイルパス名、または一時ファイルパス名のアドレスを指定します。 ファイルパス名は'¥0'で終わる文字列です。 8.5.9 BSFSYS構造体 BSFSYS構造体は、入力ファイルシステムを指定するための構造体です。 BSFSYS構造体の領域を確保する際の領域の大きさは、BS_INPFSYSSIZE(n)を使って求められます。BS_INPFSYSSIZE(n)は、n個 の入力ファイルシステムの情報をもつBSFSYS構造体の大きさを求めるマクロです。 typedef struct { unsigned long unsigned char } BSFSYS; entry_no; filesys[1]; BSFSYS構造体メンバー 以下では、BSFSYS構造体のメンバーについて説明します。 unsigned long entry_no 指定する入力ファイルシステムの数を指定します。 unsigned char filesys[n] 入力ファイルのファイルシステムを指定します。 入力ファイルシステムは、BSFILE構造体のfile_addr[i]で指定した入力ファイルパス名に対するファイルシステムをfilesys[i]で指定する ように、入力ファイルパス名と1対1に対応して指定します。入力ファイルシステムの数が入力ファイルパス名の数より少ない場合、最後 に指定したファイルシステムが、残りの入力ファイルパス名に適用されます。指定可能なファイルシステムを以下に示します。 定義値 ファイルシステム BSFS_DOSFS システムの標準ファイルシステム (省略値) BSFS_COBS 富士通COBOLファイルシステム(順ファイル) BSFS_COBS64 富士通COBOLファイルシステム(BSAM対応順ファイル) BSFS_COBR 富士通COBOLファイルシステム(相対ファイル) BSFS_COBI 富士通COBOLファイルシステム(索引ファイル) - 207 - 定義値 ファイルシステム BSFS_MFCS Micro Focus COBOLファイルシステム(順ファイル) BSFS_MFCR Micro Focus COBOLファイルシステム(相対ファイル) BSFS_MFCI Micro Focus COBOLファイルシステム(索引ファイル) BSFS_BTRV Btrieveファイルシステム BSFS_RDM RDMファイルシステム 注意 ・ PowerSORTは、富士通COBOLファイルシステムが排他モードで開いているファイルには、アクセスすることができません。また、富士通 COBOLファイルシステム(索引ファイル)を指定した場合は、富士通COBOLファイルシステムが共用モードで開いていたとしてもア クセスすることができません。共用モード、排他モードについては、お使いの富士通COBOLファイルシステムのマニュアルを参照 してください。 ・ 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定しても、使用する富士通COBOLファイルシステムが対応していな い場合は富士通COBOLファイルシステム(順ファイル)として動作します。BSAM対応については、お使いの富士通COBOLファイ ルシステムのマニュアルを参照してください。 ・ 富士通COBOLファイルシステム(BSAM対応順ファイル)を指定した場合は、富士通COBOLファイルシステムの仕様によりレコード 排他処理が行われません。 ・ Micro Focus COBOLファイルシステム(索引ファイル)は、入力ファイルのファイルシステムとしてのみ指定可能です。 ・ データが圧縮されたMicro Focus COBOLファイルシステムの索引ファイルを入力ファイルに指定することはできません。 8.5.10 BSIDX構造体 BSIDX構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスを作成するための構造体で す。 BSIDX構造体の領域を確保する際の領域の大きさは、BS_IDXTABSIZE(n)を使って求められます。BS_IDXTABSIZE(n)は、n個の インデックスの情報をもつBSIDX構造体の大きさを求めるマクロです。 typedef struct { unsigned char unsigned char unsigned long BSIDXKEY } BSIDX; idx_flag; reserve[3]; entry_no; idx_entry[1]; /* reserved */ BSIDX構造体メンバー 以下では、BSIDX構造体のメンバーについて説明します。 unsigned char idx_flag インデックスの作成方法を指定します。 以下から選択して指定します。複数指定する場合は、その論理和を指定します。 定義値 意味 BSIF_COMP インデックスに圧縮キー指定を示します。 BSIF_CMPR レコードのデータ圧縮指定を示します。 unsigned long entry_no インデックスの数を指定します。 上限値は富士通COBOLファイルシステムの上限値に従います。 - 208 - BSIDXKEY idx_entry[n] インデックスフィールドを指定します。 詳細は8.5.11 BSIDXKEY構造体を参照してください。 8.5.11 BSIDXKEY構造体 BSIDXKEY構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを指定するた めの構造体です。 typedef struct { unsigned long unsigned long unsigned char unsigned char unsigned char unsigned char } BSIDXKEY; idx_position; idx_length; idx_type; idx_order; idx_msub; idx_comp; BSIDXKEY構造体のメンバー 以下では、BSIDXKEY構造体のメンバーについて説明します。 unsigned long idx_position インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。 unsigned long idx_length インデックスフィールドの長さをバイト数で指定します。 unsigned char idx_type インデックスフィールドのデータ形式を指定します。 指定可能なデータ形式と長さを以下に示します。 種類 文字 データ形式 定義値 長さ(バイト) 意味 ASCIIコード BSKEY_ASC 1~254 富士通COBOLの CHARTYPE Unicode UCS-2形式(注) BSKEY_UCS2 2~254 (2の倍数) 富士通COBOLの CHARTYPE Unicode UTF-8形式 BSKEY_UTF8 1~254 富士通COBOLの CHARTYPE 注) Unicode UCS-2形式のバイトオーダーはLittle endianとなります。 unsigned char idx_order インデックスフィールドの並びを指定します。 富士通COBOLファイルシステムの索引ファイルの場合は、昇順しか指定できません。 定義値 BS_ASCND unsigned char 並び 昇順に並べます。 idx_msub インデックスフィールドの作成方法を指定します。 必要に応じて以下を指定します。最終セグメントには、必ずBS_ISEGENDを指定します。 - 209 - 定義値 意味 BSIF_DUPS インデックスに重複キー指定を示します。 BS_IMAIN 主キー指定を示します。 BS_ISUBとは排他関係にあります。 BS_ISUB 副キー指定を示します。 BS_IMAINとは排他関係にあります。 BS_ISEGEND セグメントの終わりを示します。 unsigned char idx_comp 現在サポートしていないメンバーです。 '¥0'を指定します。 8.5.12 BSFILE_EXT構造体 BSFILE_EXT構造体は、以下の場合にファイル情報を指定するための構造体です。 ・ リカバリー処理を行う場合の出力ファイル情報の指定 ・ 入力ファイル、または出力ファイルのファイルシステムにBtrieveファイルシステムを指定した場合の、入力Btrieveファイルのオー ナーネーム、または出力Btrieveファイルのインデックス情報の指定 BSFILE_EXT構造体の領域を確保する際の領域の大きさは、BS_OUTTABSIZE(n)を使って求められます。BS_OUTTABSIZE(n)は、 n個の出力ファイルの情報をもつBSFILE_EXT構造体の大きさを求めるマクロです。 注意 入力ファイル、または出力ファイルのファイルシステムにBtrieveファイルシステムを指定する場合、BSFILE_EXT構造体では入力ファ イルのオーナーネーム、または出力ファイルのインデックス情報を指定します。出力ファイル名は、BSRTFILE構造体のoutfile_addrに 指定してください。 typedef struct { unsigned long union { BSPTR_BSFILE_BASE BSPTR_BSFILE_BASE BSPTR_BSFILE_BTRV } outfile_opt[1]; } BSFILE_EXT; entry_no; dosfs; text; btrieve; BSFILE_EXT構造体のメンバー 以下では、BSFILE_EXT構造体のメンバーについて説明します。 unsigned long entry_no 出力ファイルパス名の数を指定します。 システムの標準ファイルシステムの場合、複数の出力ファイルを指定できます。それ以外のファイルシステムの場合、出力ファイルは1 つしか指定できません。0を指定すると出力ファイルの指定を省略したものとみなします。 ファイル拡張情報を設定するメンバー 以下のメンバーは、共用体で定義されています。 BSPTR_BSFILE_BASE outfile_opt[n].dosfs システムの標準ファイルシステムのバイナリファイルの場合にBSFILE_BASE構造体のアドレスを指定します。 entry_noで指定した個数分指定します。 - 210 - BSPTR_BSFILE_BASE outfile_opt[n].text システムの標準ファイルシステムのテキストファイルの場合にBSFILE_BASE構造体のアドレスを指定します。 entry_noで指定した個数分指定します。 BSPTR_BSFILE_BTRV outfile_opt[n].btrieve Btrieveファイルシステムの場合にBSFILE_BTRV構造体のアドレスを指定します。 8.5.13 BSFILE_BTRV構造体 BSFILE_BTRV構造体は、入力Btrieveファイルのオーナーネーム、または出力Btrieveファイルのインデックス情報を指定するための 構造体です。 typedef struct { BSPTR_BSFILE short int short int char } BSFILE_BTRV; InOwnerNameTbl; key_len; bufsize; *btrv_spec; BSFILE_BTRV構造体メンバー 以下では、BSFILE_BTRV構造体のメンバーについて説明します。 BSPTR_BSFILE InOwnerNameTbl 入力Btrieveファイルのオーナーネームテーブルのアドレスを指定します。 通常は省略可能です。省略する場合はNULLを指定します。 参考 オーナーネームは、BSFILE構造体を使用して指定します。 入力ファイルが複数の場合は、入力ファイル名と同じ順でオーナーネームを指定します。オーナーネームがない場合は、BSFILE構造体の file_addr[i]にNULLを指定します。 short int key_len 出力Btrieveファイルのインデックスキーの合計長を指定します。 - 211 - short int bufsize 出力Btrieveファイルのファイル情報とインデックスキー情報を設定した領域の大きさを指定します。 char *btrv_spec 出力Btrieveファイルのファイル情報とインデックスキー情報を設定した領域のアドレスを指定します。 参考 ファイル情報とインデックスキー情報は、出力Btrieveファイルのファイル情報、およびキー情報を指定するための領域です。 概要は以下のとおりです。テーブルの形式や指定内容に関する詳しい説明については、Btrieveのプログラマーズガイド、またはオペ レーションマニュアルを参照してください。 8.5.14 BSFILE_BASE構造体 BSFILE_BASE構造体は、出力ファイルごとに固有のファイル情報を指定するための構造体です。 typedef struct { BSPTR_UCHAR unsigned char unsigned char outfile_addr; file_kind; reserve[3]; /* reserved */ - 212 - BSPTR_BSOUT_COND } BSFILE_BASE; out_cond; BSFILE_BASE構造体のメンバー 以下では、BSFILE_BASE構造体のメンバーについて説明します。 BSPTR_UCHAR outfile_addr 出力ファイルパス名のアドレスを指定します。 出力ファイルパス名は、'¥0'で終わる文字列です。 unsigned char file_kind 出力ファイルのファイルシステムを指定します。 複数のファイルシステムを混在させることはできません。ファイルシステムについては、8.5.9 BSFSYS構造体を参照してください。 BSPTR_BSOUT_COND out_cond サポートしていないメンバーです。 何も指定する必要はありません。 8.5.15 BSRTOPT構造体 BSRTOPT構造体は、集約フィールド、選択フィールド、再編成フィールド、および読み飛ばしレコード件数を指定するための構造体で す。 typedef struct { BSPTR_BSRTSUM BSPTR_BSRTSELE BSPTR_BSRTRCON BSPTR_BSRTSKIP } BSRTOPT; sum_addr; sele_addr; rcon_addr; skip_addr; BSRTOPT構造体メンバー 以下では、BSRTOPT構造体のメンバーについて説明します。 BSPTR_BSRTSUM sum_addr BSRTSUM構造体のアドレスを指定します。 BSRTSUM構造体は、集約フィールドを定義する構造体です。BSRTPRIM構造体のoptionfuncにBS_SUMを指定したときに有効にな ります。BSRTPRIM構造体のoptionfuncにBS_SUMを指定し、集約フィールドを省略するとエラーになります。 BSPTR_BSRTSELE sele_addr BSRTSELE構造体のアドレスを指定します。 BSRTSELE構造体は、選択フィールドを定義する構造体です。BSRTPRIM構造体のoptionfuncにBS_SELECTを指定したときに有効 になります。BSRTPRIM構造体のoptionfuncにBS_SELECTを指定し、選択フィールドを省略するとエラーになります。 BSPTR_BSRTRCON rcon_addr BSRTRCON構造体のアドレスを指定します。 BSRTRCON構造体は、再編成フィールドを定義する構造体です。BSRTPRIM構造体のoptionfuncにBS_RECONを指定したときに有 効になります。BSRTPRIM構造体のoptionfuncにBS_RECONを指定し、再編成フィールドを省略するとエラーになります。 BSPTR_BSRTSKIP skip_addr BSRTSKIP構造体のアドレスを指定します。 BSRTSKIP構造体は、読み飛ばすレコード件数を定義する構造体です。BSRTFILE構造体で入力ファイルを指定したときに有効にな ります。 - 213 - 8.5.16 BSRTSUM構造体 BSRTSUM構造体は、レコード集約機能を使用する場合に、集約フィールドを定義するための構造体です。 レコード集約機能は、指定したキーフィールドの値が同一のとき、集約フィールドの値を加算して1つのレコードにする機能です。レコー ド集約機能の対象となったレコードの中から、どのレコードが出力されるかは不定です。テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の対象とします。 BSRTSUM構造体の領域を確保する際の領域の大きさは、BS_SUMTABSIZE(n)を使って求められます。BS_SUMTABSIZE(n)は、n 個のBSRTSUM構造体の大きさを求めるマクロです。 参考 レコード集約処理実行中にオーバフローが発生した場合、集約フィールドを含まない短いレコードが入力された場合、またはテキスト レコードの集約処理実行中に集約フィールド内に不適切なコードが発見された場合、bsrtopen関数の復帰値は0、BSRTREC構造体の errdetailには、それぞれBSERR_OVERFLOW、BSERR_SUMSHRTREC、BSERR_SUMFIELDが設定されます。 typedef struct { unsigned long BSSUM } BSRTSUM; entry_no; sum_entry[1]; BSRTSUM構造体メンバー 以下では、BSRTSUM構造体のメンバーについて説明します。 unsigned long entry_no 集約フィールドのエントリー数を指定します。 0を指定すると集約フィールドの指定を省略したものとみなします。 BSSUM sum_entry[n] 集約フィールドを指定します。 詳細は8.5.17 BSSUM構造体を参照してください。 8.5.17 BSSUM構造体 BSSUM構造体は、個々の集約フィールドを定義するための構造体です。 typedef struct { unsigned long unsigned long unsigned char unsigned char unsigned char unsigned char } BSSUM; sum_position; sum_length; sum_type; sum_resultsign; sum_resultnumber; reserve; /* reserved */ BSSUM構造体メンバー 以下では、BSSUM構造体のメンバーについて説明します。 unsigned long sum_position 集約フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 - 214 - unsigned long sum_length 集約フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、指 定したフィールド長に拡張して処理します。指定可能な各データ形式の長さについては、2.7.4.2 集約フィールドに指定可能なデータ形式 を参照してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、集約フィールド の長さに含みません。 例) テキストファイルCSV形式における、集約フィールドと長さ 集約フィールド 123 "123" unsigned char 集約フィールドとして有効な文字 123 123 集約フィールドの長さ 3バイト 3バイト sum_type 集約フィールドのデータ形式を指定します。 指定可能なデータ形式については、2.7.4.2 集約フィールドに指定可能なデータ形式を参照してください。 unsigned char sum_resultsign テキストファイルの場合に符号の有無を指定します。 必要に応じて以下を指定します。 定義値 意味 BS_SIGNED 集約フィールドの値に符号を付けます。 BS_PLUSUNSIGNEDとは排他関係にあります。 BS_PLUSUNSIGNED 集約フィールドの値が負の値の場合だけ「-」の符号を付けます。 BS_SIGNEDとは排他関係にあります。 参考 指定を省略した場合は、入力されたデータに従って以下のように処理します。 ・ 集約結果が負の値の場合は、集約結果に「-」の符号を付けます。 ・ 符号なしデータと符号付きデータの集約結果が正の値の場合は、集約結果に符号を付けません。 ・ 符号なしデータ同士を集約した場合は、集約結果に符号を付けません。 ・ 符号なしデータと符号付きデータの集約結果が「0」の場合は、符号を付けません。 ・ 符号付きデータ同士を集約した場合は、集約結果に符号を付けます。集約した結果が「0」の場合は、「+」の符号を付けます。 unsigned char sum_resultnumber テキストファイルの場合に、集約フィールドの値がフィールド長に満たない場合の扱いを指定します。 必要に応じて以下を指定します。 定義値 BS_ZEROPADDING 意味 集約フィールドの値がフィールド長に満たない場合、左余白に「0」を詰めます。 例えば、集約フィールドの値が「1234」という4桁の数字であり、集約フィールド長が6バ - 215 - 定義値 意味 イトの場合、「001234」という数字にします。BS_BLANKPADDING、BS_ZBDELETE とは排他関係にあります。 BS_BLANKPADDING 集約フィールドの値がフィールド長に満たない場合、左余白に空白を詰めます。 例えば、集約フィールドの値が「1234」という4桁の数字であり、集約フィールド長が6バ イトの場合、□□1234(□は空白を表わす)という数字にします。BS_ZEROPADDING、 BS_ZBDELETEとは排他関係にあります。 BS_ZBDELETE 集約フィールドの先頭から空白、タブ、および「0」を削除します。 集約フィールドの先頭に空白、タブ、および「0」がある場合、左から評価し、「0」以外 の数字が出現するまでの空白、タブ、および「0」を削除します。例えば、「00123」の場 合、「123」という数字にします。ただし、集約フィールドが「0」(「0」、「0000」、「+000」な ど)の場合、最後の「0」は削除されません。テキストファイル浮動フィールド指定の場合 に指定可能です。BS_ZEROPADDING、BS_BLANKPADDINGとは排他関係にあり ます。 参考 指定を省略した場合は、入力されたデータに従って以下のように処理します。 ・ 出力結果の左余白に「0」を詰める条件 - 左余白に'0'が詰められているデータ同士のとき - 左余白に'0'が詰められているデータと左余白に空白が詰められているデータのとき - 左余白に'0'が詰められているデータと左余白にタブが詰められているデータのとき ・ 出力結果の左余白に空白を詰める条件 - 左余白に空白が詰められているデータ同士のとき - 左余白にタブが詰められているデータ同士のとき - 左余白に空白が詰められているデータと左余白にタブが詰められているデータのとき 注意 ・ レコード集約機能の対象となったレコードの中から、どのレコードが出力されるかは不定です。 ・ 集約フィールドは、キーフィールド、および他の集約フィールドと重なることはできません。 ・ 集約フィールドは、レコード内に存在する必要があります。 ・ レコード集約機能を使用する場合、キーフィールドは省略できません。 ・ 集約フィールドの集約処理中にオーバフローが生じた場合の動作は、環境変数BSORT_SUMOVERCONTの指定に従います。 ・ 小数点を含む数字の集約はできません。 ・ テキストファイルの場合は、ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式で記述された半角の数字だけを処理の 対象とします。 ・ テキストファイル浮動フィールド指定の場合、集約フィールドにフィールド分離文字が現れたことにより集約フィールドの位置が変 わる場合は、正しく動作しません。 ・ テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れたときは、指定したフィールド長を超 える部分はレコード集約機能の対象とせず、そのまま出力されます。また、指定したフィールド長より短いフィールドが現れたとき は、指定したフィールド長に拡張します。 例) 集約フィールドを「2番目のフィールドの長さ5バイト」、キーフィールドを「1番目のフィールドの長さ3バイト」とした場合 - 216 - 入力レコード 出力レコード 001,12345ABC,OPQ (注1) 001,12456ABC,OPQ (注2) 001,111,RST 002,00127,UVW 002,15,UVW (注1) 002,00112DEF,XYZ 注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。 注2) 指定したフィールド長を超える部分(「ABC」)は、そのまま出力されます。 ・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、指定したフィールド長よりも長いフィールドが現れたときは、指 定したフィールド長を超える部分はレコード集約機能の対象とせず、出力もされません。また、指定したフィールド長より短いフィー ルドが現れたときは、指定したフィールド長に拡張します。 例) テキストファイルCSV形式で、集約フィールドを「2番目のフィールドの長さ5バイト」 、キーフィールドを「1番目のフィールドの長さ 3バイト」とした場合 入力レコード 出力レコード 001,12345ABC,OPQ (注1) 001,12468,OPQ (注2) 001,123,RST 002,00027,UVW 002,15,UVW (注1) 002,00012DEF,XYZ 注1) ここで示したレコードが、レコード集約機能で出力対象になるものとします。 注2) 指定したフィールド長を超える部分(「ABC」)は、出力されません。 ・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、集約フィールドをダブルクォーテーション( " )で囲むかどうか は、出力対象となる入力レコードのフィールドに従います。出力対象となる入力レコードのフィールドがダブルクォーテーション( " ) で囲まれているときは、レコード集約後のフィールドもダブルクォーテーション( " )で囲みます。 例) テキストファイルCSV形式で、集約フィールドを「2番目のフィールドの長さ5バイト」 、キーフィールドを「1番目のフィールドの長さ 3バイト」とした場合 入力レコード 出力レコード 001,"12345",OPQ (注) 001,"12468",OPQ 001,"123",RST 002,"00027",UVW 002,"15",UVW (注) 003,11900,GHI 002,00012,XYZ 004,98769,MNO 003,11111,GHI (注) 003,"00789",JKL 004,98765,MNO (注) 004,4,PQR 注) ここで示したレコードが、レコード集約機能で出力対象になるものとします。 8.5.18 BSRTSELE構造体 BSRTSELE構造体は、レコード選択機能を使用する場合に、選択フィールドを定義するための構造体です。 BSRTSELE構造体の領域を確保する際の領域の大きさは、BS_SELETABSIZE(n)を使って求められます。BS_SELETABSIZE(n)は、 n個のBSRTSELE構造体の大きさを求めるマクロです。 typedef struct { unsigned long BSSELE } BSRTSELE; entry_no; sele_entry[1]; BSRTSELE構造体メンバー 以下では、BSRTSELE構造体のメンバーについて説明します。 unsigned long entry_no 選択フィールドのエントリー数を指定します。 0を指定すると選択フィールドの指定を省略したものとみなします。 - 217 - BSSELE sele_entry[n] 選択フィールドを指定します。 詳細は8.5.19 BSSELE構造体を参照してください。 8.5.19 BSSELE構造体 BSSELE構造体は、個々の選択フィールドを定義するための構造体です。 typedef struct { unsigned char unsigned char unsigned char unsigned char unsigned long unsigned long union { unsigned long BSPTR_UCHAR } pos2; unsigned long unsigned char unsigned char unsigned char unsigned char unsigned long unsigned long BSPTR_VOID } BSSELE; sele_cmpoprat; sele_type1; sele_type2; sele_option; sele_position1; sele_length1; sele_position2; sele_literal; sele_length2; sele_trueop; sele_falseop; sele_mask; sele_option2; sele_truejmp; sele_falsejmp; subfield_addr; BSSELE構造体メンバー 以下では、BSSELE構造体のメンバーについて説明します。 unsigned char sele_cmpoprat 比較演算子を指定します。 以下に比較演算子とその意味を示します。 比較演算子 意味(真の条件) BSCOND_EQ 被比較フィールド = 比較フィールド、または自己規定値 BSCOND_NE 被比較フィールド ≠ 比較フィールド、または自己規定値 BSCOND_GT 被比較フィールド > 比較フィールド、または自己規定値 BSCOND_GE 被比較フィールド ≧ 比較フィールド、または自己規定値 BSCOND_LT 被比較フィールド < 比較フィールド、または自己規定値 BSCOND_LE 被比較フィールド ≦ 比較フィールド、または自己規定値 unsigned char sele_type1 被比較フィールドのデータ形式を指定します。 指定可能なデータ形式については、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。 unsigned char sele_type2 比較フィールドのデータ形式を指定します。 指定可能なデータ形式については、被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。なお、比較フィー ルドに自己規定値を指定するときは、sele_type2にBS_LITERALを指定します。 - 218 - 注意 ・ 被比較フィールドと比較フィールドのデータ形式が異なるときは、被比較フィールドのデータ形式に合わせてから比較します。 ・ 被比較フィールドのデータ形式の種類が文字の場合、被比較フィールドと比較フィールドの短い方の長さで比較します。 ・ 比較フィールドのデータ形式の種類が数値、または数字の場合、被比較フィールドと比較フィールドの短い方を長い方の長さに合 わせて比較します。 unsigned char sele_option 被比較フィールドの操作を指定します。 テキストファイルの場合に有効です。必要に応じて以下を指定します。複数の操作を指定する場合は、その論理和を指定します。 操作 意味 BSOPT_BLANK フィールドの先頭の空白とタブを無視します。 BSOPT_DICTIONAR Y 空白と英数字だけを比較の対象とします。 BSOPT_IGNORE 制御文字コードを無視します。 BSOPT_JUMBO 英小文字を英大文字として比較します。 BSOPT_NUMERIC 符号を含んだ数字の文字列を算術的な値で比較します。 文字列中に数字以外の文字が存在した場合の結果は保証されません。データ形式が ASCIIコード、Unicode UCS-2形式、またはUnicode UTF-8形式の場合に指定できま す。 sele_option2のBSOPT2_WCHRとは排他関係にあります。 注意 被比較フィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、sele_optionは指定できません。 unsigned long sele_position1 被比較フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 unsigned long sele_length1 被比較フィールドの長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、被比較フィール ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ のダブルクォーテーション( " )として長さを計算します。 例) テキストファイルCSV形式における、被比較フィールドと長さ 被比較フィールド ABC "ABC" 被比較フィールドとして有効な文字 ABC ABC 被比較フィールドの長さ 3バイト 3バイト - 219 - "A""B""C" "A,B,C" unsigned long A"B"C A,B,C 5バイト 5バイト pos2.sele_position2 比較フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 pos2.sele_literalとは共用体で定義されています。自己規定値を指定するときは、pos2.sele_literalに指定します。 BSPTR_UCHAR pos2.sele_literal 自己規定値のアドレスを指定します。 テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列を含むことはできません。 pos2.sele_position2とは共用体で定義されています。自己規定値以外を指定するときは、pos2.sele_position2に指定します。 注意 ・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。 ・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま せん。 ・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールドを囲むダブルクォーテーション( " )を 指定する必要はありません。 unsigned long sele_length2 比較フィールド、または自己規定値の長さをバイト数で指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、比較フィールド の長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つの ダブルクォーテーション( " )として長さを計算します。 例) テキストファイルCSV形式における、比較フィールドと長さ 比較フィールド ABC "ABC" "A""B""C" "A,B,C" unsigned char 比較フィールドとして有効な文字 ABC ABC A"B"C A,B,C 比較フィールドの長さ 3バイト 3バイト 5バイト 5バイト sele_trueop 比較結果が真のときの処理を指定します。 最後のエントリーのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を指定します。比較結果の処理については、以下を 参照してください。 - 220 - 表8.5 比較結果の処理方法 処理の種類 定義値 意味 BSSEL_INCLUDE 比較処理の終りとレコードを処理対象とすることを示し ます。 BSSEL_OMIT 比較処理の終りとレコードを処理対象外とすることを示 します。 次の選択フィールドの処理 BSSEL_NEXT 次の比較処理に移ることを示します。 指定選択フィールドへ飛ぶ BSSEL_JUMP 指定した比較処理に移ることを示します。 INCLUDE OMIT unsigned char sele_falseop 比較結果が偽のときの処理を指定します。 最後のエントリーのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を指定します。比較結果の処理については、表8.5 比較結果の処理方法を参照してください。 BSPTR_UCHAR sele_mask サポートしていないメンバーです。 何も指定する必要はありません。 unsigned char sele_option2 複数バイトで表現される文字の文字列を文字単位に比較する場合の操作を指定します。 ここで指定する定義値は、sele_optionのBSOPT_NUMERICとは排他関係にあります。必要に応じて以下を指定します。 定義値 意味 BSOPT2_WCHR unsigned long 複数バイトから成る文字が混在していても文字ごとに比較します。 データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式、またはUnicode UTF-8 形式で、入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系以外 の場合に有効です。 sele_truejmp sele_trueopにBSSEL_JUMPを指定したときの飛び先を指定します。 iを指定すると、比較結果が真のときにsele_entry[i]の選択フィールドへ処理が移ります。sele_truejmpには、自身のエントリー番号+1から entry_no-1の範囲の値を指定します。 unsigned long sele_falsejmp sele_falseopにBSSEL_JUMPを指定したときの飛び先を指定します。 iを指定すると、比較結果が偽のときにsele_entry[i]の選択フィールドへ処理が移ります。sele_falsejmpには、自身のエントリー番号+1から entry_no-1の範囲の値を指定します。 BSPTR_VOID subfield_addr 照合順序変更機能を使用する場合、照合順序変更を定義したBSCOL構造体のアドレスを指定します。 照合順序変更機能は、sele_type1、またはsele_type2にBSKEY_COLが指定されている場合に利用できます。 参考 1つの選択フィールドは、1つの論理式を表現します。このため、複合条件を指定する場合は、複数の選択フィールドを指定する必要 があります。以下に、複合条件を満たすレコードを選択する場合の指定方法を示します。 複合条件 (論理式1 ∩ 論理式2) ∪ 論理式3 (注) 注) ∩は論理積、∪は論理和を表しています。 - 221 - 指定方法 entry_no = 3 [0] 論理式1 true BSSEL_NEXT [1] 論理式2 true BSSEL_INCLUDE [2] 論理式3 true BSSEL_INCLUDE false BSSEL_JUMP 2 false BSSEL_NEXT false BSSEL_OMIT 8.5.20 BSRTRCON構造体 BSRTRCON構造体は、レコード再編成機能を使用する場合に、再編成フィールドを定義するための構造体です。 BSRTRCON構造体の領域を確保する際の領域の大きさは、BS_RCONTABSIZE(n)を使って求められます。BS_RCONTABSIZE(n) は、n個のBSRTRCON構造体の大きさを求めるマクロです。 注意 レコード再編成機能を使用する場合、キーフィールドと集約フィールドにはレコード再編成後のフィールド位置を指定します。 typedef struct { unsigned long BSRCON } BSRTRCON; entry_no; rcon_entry[1]; BSRTRCON構造体のメンバー 以下では、BSRTRCON構造体のメンバーについて説明します。 unsigned long entry_no 再編成フィールドのエントリー数を指定します。 0を指定すると再編成フィールドの指定を省略したものとみなします。 BSRCON rcon_entry[n] 再編成フィールドを指定します。 詳細は8.5.21 BSRCON構造体を参照してください。 8.5.21 BSRCON構造体 BSRCON構造体は、個々の再編成フィールドを定義するための構造体です。 typedef struct { union { unsigned long BSPTR_UCHAR } pos; unsigned long unsigned char unsigned char unsigned char } BSRCON; rcon_position; rcon_literal; rcon_length; rcon_consinf; rcon_option; reserve[2]; /* reserved */ BSRCON構造体メンバー 以下では、BSRCON構造体のメンバーについて説明します。 unsigned long pos.rcon_position 再編成フィールドの位置を指定します。 バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮 - 222 - 動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。 rcon_consinfにBS_EMPFLDを指定する場合は、0を指定してください。 pos.rcon_literalとは共用体で定義されています。自己規定値を指定したいときは、pos.rcon_literalに指定します。 BSPTR_UCHAR pos.rcon_literal 自己規定値のアドレスを指定します。 pos.rcon_positionとは共用体で定義されています。入力レコード中のフィールドを指定したい場合は、pos.rcon_positionに指定します。 注意 ・ テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。 ・ テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできま せん。 ・ テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールド分離文字、レコード分離文字(注)、 またはダブルクォーテーション( " )が含まれているときは、自己規定値をダブルクォーテーション( " )で囲んで出力します。この際、 自己規定値のダブルクォーテーション( " )は、2つ連続して出力します。 注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか一つでも含ま れている場合、自己規定値をダブルクォーテーション( " )で囲みます。 例) 自己規定値にフィールド分離文字(コンマ)、またはダブルクォーテーション( " )を含む場合の再編成フィールドに出力される データ 自己規定値の指定 FIELD"2" FIELD2,3 FIELD"2",3 unsigned long 再編成フィールドに出力されるデータ "FIELD""2""" "FIELD2,3" "FIELD""2"",3" rcon_length 再編成フィールド、または自己規定値の長さを指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも 長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実 際のフィールド長で処理します。rcon_consinfにBS_RECEND、またはBS_EMPFLDを指定する場合は、0を指定してください。 注意 テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、再編成フィール ドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つ のダブルクォーテーション( " )として長さを計算します。 例) テキストファイルCSV形式における、再編成フィールドと長さ 再編成フィールド ABC "ABC" "A""B""C" "A,B,C" unsigned char 再編成フィールドとして有効な文字 ABC ABC A"B"C A,B,C 再編成フィールドの長さ 3バイト 3バイト 5バイト 5バイト rcon_consinf 入力レコード中のフィールドを再編成フィールドにするか、または自己規定値を再編成フィールドにするかを指定します。 テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、PowerSORTがフィールド分 離文字列を付加して再編成します。 - 223 - 定義値 意味 BS_FIELD 入力レコード中のフィールドを再編成フィールドに指定します。 BS_LITERAL 自己規定値を再編成フィールドに指定します。 BS_RECEND 指定位置からレコードの最後までを再編成フィールドに指定します。 BS_EMPFLD 空フィールドを再編成フィールドに指定します。 テキストファイルCSV形式、およびテキストファイルTSV形式の場合に指定できます。 unsigned char rcon_option 再編成フィールドの操作を指定します。 テキストファイルCSV形式、またはテキストファイルTSV形式の場合、自己規定値、または空フィールドを再編成フィールドとするときに 指定できます。必要に応じて以下を指定します。省略した場合は、BSFE_Lを指定したものとして動作します。 定義値 意味 BSFE_A 再編成フィールドをダブルクォーテーション( " )で囲みます。 BSFE_L 再編成フィールドをダブルクォーテーション( " )で囲みません。 ただし、再編成フィールドに、フィールド分離文字、レコード分離文字(注)、またはダブル クォーテーション( " )が含まれている場合は、ダブルクォーテーション( " )で囲みます。 注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含まれ ている場合、自己規定値をダブルクォーテーション( " )で囲みます。 参考 ・ テキストファイルCSV形式、またはテキストファイルTSV形式の場合、入力レコード中のフィールドを再編成フィールドとするときに 再編成フィールドをダブルクォーテーション( " )で囲むかどうかは、入力レコードのフィールドに従います。入力レコードのフィール ドがダブルクォーテーション( " )で囲まれているときは、レコード再編成後のフィールドもダブルクォーテーション( " )で囲みます。 例) 再編成フィールドを「2番目のフィールドの長さ3バイト、3番目のフィールドの長さ2バイト」と指定した場合 入力レコード 出力レコード "001","ABC",60 "ABC",60 "002","ABCDE",50 "ABC",50 "003","AB,CDE",40 "AB,",40 "004","AB"CDE,30 (注) "AB"C,30 注) 2番目のフィールドは、「AB」がダブルクォーテーションで囲まれ、「CDE」がそのあとに続いていると判断します。 8.5.22 BSRTSKIP構造体 BSRTSKIP構造体は、入力ファイルの先頭から処理対象としないレコードを読み飛ばす場合に、読み飛ばすレコード件数を定義する ための構造体です。 BSRTSKIP構造体の領域を確保する際の領域の大きさは、BS_SKIPTABSIZE(n)を使って求められます。BS_SKIPTABSIZE(n)は、n 個のBSRTSKIP構造体の大きさを求めるマクロです。 typedef struct { unsigned long unsigned long } BSRTSKIP; entry_no; skip_recnum[1]; BSRTSKIP構造体メンバー 以下では、BSRTSKIP構造体のメンバーについて説明します。 - 224 - unsigned long entry_no 読み飛ばすレコード件数のエントリー数を指定します。 0を指定すると読み飛ばすレコード件数の指定を省略したものとみなします。 unsigned long skip_recnum[n] 読み飛ばすレコード件数を指定します。 0を指定するとすべてのレコードが処理対象となります。入力ファイルの指定順に合わせて、入力ファイルごとに読み飛ばすレコード件 数を指定します。入力ファイル数より読み飛ばすレコード件数の指定が少ない場合は、指定のない入力ファイルのレコードはすべて処 理対象となります。入力ファイル数より読み飛ばすレコード件数の指定が多い場合は、入力ファイルに対応しない指定が無視されま す。 8.5.23 BSRTFUNC構造体 BSRTFUNC構造体は、BSORT関数の各アドレスが設定される構造体です。 typedef struct { int (BSPTR_BSRT bsrtput) (BSPTR_BSRTREC); int (BSPTR_BSRT bsrtget) (BSPTR_BSRTREC); int (BSPTR_BSRT bsrtmrge) (BSPTR_BSRTREC); int (BSPTR_BSRT bsrtinit) (long int, struct _BSRTFUNC BSPTR_BSRT, BSPTR_BSRTPRIM, BSPTR_BSRTREC, BSPTR_BSRTKEY, BSPTR_BSRTFILE, BSPTR_BSRTOPT); int (BSPTR_BSRT bsrtterm) (BSPTR_BSRTPRIM, BSPTR_BSRTREC); unsigned long reserve1; /* reserved */ unsigned long reserve2; /* reserved */ BSPTR_VOID handle; } BSRTFUNC; BSRTFUNC構造体メンバー 以下では、BSRTFUNC構造体のメンバーについて説明します。 int (BSPTR_BSRT bsrtput) (BSPTR_BSRTREC) bsrtopen関数により、bsrtput関数のアドレスが設定されます。 このメンバーは更新しないでください。 int (BSPTR_BSRT bsrtget) (BSPTR_BSRTREC) bsrtopen関数により、bsrtget関数のアドレスが設定されます。 このメンバーは更新しないでください。 int (BSPTR_BSRT bsrtmrge) (BSPTR_BSRTREC) bsrtopen関数により、bsrtmrge関数のアドレスが設定されます。 このメンバーは更新しないでください。 int (BSPTR_BSRT bsrtinit) (long int, struct _BSRTFUNC BSPTR_BSRT,BSPTR_BSRTPRIM, BSPTR_BSRTREC, BSPTR_BSRTKEY,BSPTR_BSRTFILE, BSPTR_BSRTOPT) PowerSORTが実行中に使用するメンバーです。 このメンバーは参照、および更新する必要はありません。 int (BSPTR_BSRT bsrtterm) (BSPTR_BSRTPRIM, BSPTR_BSRTREC) PowerSORTが実行中に使用するメンバーです。 このメンバーは参照、および更新する必要はありません。 - 225 - BSPTR_VOID handle PowerSORTが実行中に使用するメンバーです。 このメンバーは参照、および更新する必要はありません。 - 226 - 第9章 メッセージとエラーコード ここでは、bsortコマンド、bsortexコマンド、およびBSORT関数が出力するメッセージと、PowerSORT OCX、およびBSORT関数が返す エラー詳細コードについて説明します。 9.1 メッセージ PowerSORTが出力するメッセージには、情報メッセージ、警告メッセージ、およびエラーメッセージがあります。 また、環境変数BSORT_EVENTLOGにE、W、I、またはYESを指定した場合は、指定値に応じたメッセージをアプリケーションログへ 出力します。 出力されるメッセージは、システムの地域設定によって日本語メッセージと英語メッセージが切り替わります。 メッセージの出力先 メッセージの出力先は、環境変数BSORT_MSGOUTで指定します。 また、メッセージをファイルへ出力する場合は、環境変数BSORT_MSGFILE、bsortコマンドの-Gオプション、bsortexコマンドの-option オプションのmsgfileオペランド、またはBSORT関数のBSRTFILE構造体で指定します。 詳細は、それぞれの説明を参照してください。 メッセージの出力形式 メッセージの出力形式は、環境変数BSORT_MSGSTYLEで指定します。 環境変数BSORT_MSGSTYLEに1を指定した場合、以下のようにメッセージ本文だけをメッセージとして出力します。 メッセージ本文 メッセージ本文:メッセージの本文です。各メッセージの説明を参照してください。 指定を省略した場合、または2を指定した場合、以下の形式で出力します。 ヘッダー: 日付と時刻: メッセージ種別: メッセージ番号 メッセージ本文 ヘッダー: "PSORT" と出力します。 日付と時刻: "YYYY-MM-DD HH:MM:SS" の形式で出力します。 メッセージ種別:INFO(情報メッセージ)、WARNING(警告メッセージ)、ERROR(エラーメッセージ)のいずれかを出力します。 メッセージ番号:メッセージごとに一意に設定された4桁の番号を出力します。各メッセージの説明を参照してください。 メッセージ本文:メッセージの本文です。各メッセージの説明を参照してください。 9.1.1 情報メッセージ 情報メッセージは、PowerSORTの処理状況、および処理結果を通知するメッセージです。 環境変数BSORT_MSGLEVEL、bsortexコマンドの-optionオプションのmsglevelオペランド、bsortコマンドの-lオプション、またはBSORT 関数のBSRTPRIM構造体で情報メッセージの出力を指定した場合に出力されます。 9.1.1.1 情報メッセージの説明形式 以下に情報メッセージの説明形式を示します。 メッセージ番号 日本語メッセージ 英語メッセージ 可変情報 情報メッセージ中の可変情報を以下のように示します。 %s: %sの位置に示されている文字列の意味 - 227 - システムの処理 PowerSORTの処理を示します。 9.1.1.2 情報メッセージ 以下に情報メッセージを示します。 1044 入力レコード件数は%sです. Number of input records is %s. 可変情報 %s: 入力ファイルから読み込んだすべてのレコード件数、またはユーザアプリケーションから受け取ったすべてのレコード件数 システムの処理 処理を継続します。 1045 出力レコード件数は%sです. Number of output records is %s. 可変情報 %s: 出力ファイルに出力したすべてのレコード件数、またはユーザアプリケーションへ返却したすべてのレコード件数 システムの処理 処理を継続します。 1046 削除レコード件数は%sです. Number of suppress records is %s. 可変情報 %s: レコードの選択、集約、またはサプレス機能で処理の対象外になったレコード件数 システムの処理 処理を継続します。 1052 Business Sort Business Sort <<< %s1 >>> <<< %s1 >>> DATE %s2 TIME %s3 DATE %s2 TIME %s3 可変情報 %s1: PowerSORTのバージョン %s2: 日付 %s3: 時刻 システムの処理 処理を開始します。 - 228 - 1053 Business Sort Business Sort <<< %s1 >>> <<< %s1 >>> DATE %s2 TIME %s3 DATE %s2 TIME %s3 可変情報 %s1: PowerSORTのバージョン %s2: 日付 %s3: 時刻 システムの処理 処理を終了します。 9.1.2 警告メッセージ 警告メッセージは、PowerSORTが検出した異常を通知するメッセージです。 異常の検出後、処理を継続できる場合、警告メッセージとして検出した異常を通知します。 環境変数BSORT_MSGLEVEL、bsortexコマンドの-optionオプションのmsglevelオペランド、bsortコマンドの-lオプション、またはBSORT 関数のBSRTPRIM構造体で警告メッセージの出力を指定した場合に出力されます。 9.1.2.1 警告メッセージの説明形式 以下に警告メッセージの説明形式を示します。 メッセージ番号 日本語メッセージ 英語メッセージ 可変情報 警告メッセージ中の可変情報を以下のように示します。 %s: %sの位置に示されている文字列の意味 %d: %dの位置に示されている数値の意味 エラー原因 エラーの原因を示します。 システムの処理 PowerSORTの処理を示します。 ユーザの対処 ユーザの対処方法を示します。 9.1.2.2 警告メッセージ 以下に警告メッセージを示します。 0024 メッセージファイルの容量が足りません.メッセージファイルへの出力を中止します. The message file capacity was insufficient. The output to the message file was interrupted. 可変情報 なし - 229 - エラー原因 ディスクの空き容量がないため、スペースの拡張ができません。 システムの処理 メッセージファイルへの出力を中断し、本メッセージを含めて標準エラー出力に切り換えて処理を続行します。 ユーザの対処 次のいずれかの対処をお願いします。 ・ メッセージファイルを別のディスク上に指定してください。 ・ 不要なファイルを削除し、ディスクに空きスペースを作ってから再度実行してください。 0028 同じファイル(%s)を指定しています. Same file(%s) is specified. 可変情報 %s: ファイルパス名 エラー原因 次のいずれかの場合に出力されます。 ・ 一時ファイルと入力ファイル、一時ファイルと出力ファイル、一時ファイルとメッセージファイル、または一時ファイルと他の一時 ファイルに同じファイルを指定しています。 ・ 一時ファイルパス名の生成で、一意なパス名の生成に失敗しました。 システムの処理 エラーとなった一時ファイルは使用せず、処理を継続します。 ユーザの対処 同じファイルパス名を指定しないようにしてください。 0029 ファイル(%s)の形式に誤りがあります. Invalid format of file (%s). 可変情報 %s: エラーのあったファイルパス名 エラー原因 一時ファイルを作成するフォルダの指定がフォルダではありません。 システムの処理 エラーとなった一時ファイルを作成するフォルダは使用せず、処理を継続します。 ユーザの対処 一時ファイルの形式を確認してください。 0030 ファイル(%s)の属性に誤りがあります. Invalid attribute of file (%s). - 230 - 可変情報 %s: ファイルパス名 エラー原因 一時ファイルの属性が違います。または、一時ファイルを作成するフォルダが使用できません。 システムの処理 エラーとなった一時ファイルは使用せず、処理を継続します。 ユーザの対処 一時ファイルの属性、または指定した一時ファイルを作成するフォルダを確認してください。 0032 ファイル(%s1)のオープンでエラー(%s2)が発生しました. Error occurred during file (%s1) open.(%s2) 可変情報 %s1: 一時ファイルパス名 %s2: エラー番号、またはエラー詳細情報 エラー原因 一時ファイルのオープンでエラーが発生しました。 システムの処理 エラーとなった一時ファイルは使用せず、処理を継続します。 ユーザの対処 システムのマニュアルから出力されたエラー番号を参照し、エラー原因を取り除いてください。 0039 ファイル(%s)には参照許可または書込許可がありません. There is no reference or writing permission on the file(%s). 可変情報 %s: 一時ファイルパス名 エラー原因 参照、または書込みすることを許されていないファイルを指定しています。 システムの処理 処理を継続します。 ユーザの対処 一時ファイルの指定を確認し、再度実行してください。 0041 集約処理でオーバフローが発生しました. The overflow occurred at the summation process. 可変情報 なし - 231 - エラー原因 レコード集約処理でオーバフローが発生しました。 システムの処理 次のいずれかの処理を行います。どちらの処理を選択しても、ソート、またはマージの処理は継続します。 ・ 環境変数BSORT_SUMOVERCONTの指定がない、またはOFFの場合は、集約処理を中断し、それ以後の同値のキーフィー ルドを持つレコードに対しては、集約処理を行いません。 ・ 環境変数BSORT_SUMOVERCONTの指定がONの場合は、オーバフローする直前まで集約されたレコードを出力し、それ以 後の同値のキーフィールドを持つレコードに対しては、別レコードとして集約処理を継続します。 bsortexコマンド、またはbsortコマンドの場合、bsortopt.exe(BSORTオプション環境設定)によりBSORT_SUMOVERに値を設定する と、bsortexコマンド、またはbsortコマンドの復帰値として設定した値を返します。 ユーザの対処 集約フィールドで指定したフィールドを拡張してください。 0042 集約フィールドが存在しないレコードが入力されたため,集約処理を中止します. Summation field did not exist on the input record. Therefore, the summation process was discontinued. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ 可変長レコード入力中、集約フィールドを含まない短いレコードが入力されたため、集約処理を中止します。 ・ テキストレコード入力中、集約フィールドを含まないレコードが入力されたため、集約処理を中止します。 システムの処理 レコード集約処理を中断します。ソート、またはマージの処理は継続します。 bsortexコマンド、またはbsortコマンドの場合、bsortopt.exe(BSORTオプション環境設定)によりBSORT_SUMSHRTに値を設定する と、bsortexコマンド、またはbsortコマンドの復帰値として設定した値を返します。 ユーザの対処 集約フィールドの指定を確認してください。 0083 システムコールまたはライブラリ関数(%s)でエラー(%d)が発生しました. Error occurred during system call or library function (%s)(%d). 可変情報 %s: システムコール、またはライブラリ関数名 %d: エラー番号 エラー原因 システムコール、またはライブラリ関数の呼び出しでエラーが発生しました。 システムの処理 処理を継続します。 - 232 - ユーザの対処 関数名、およびエラー番号からエラーの原因が分かる場合は、そのエラー原因を取り除いてください。エラーの原因が分からない 場合は、関数名、およびエラー番号とともに技術員(SE)に連絡してください。 0084 システムコールまたはライブラリ関数(%s1)でエラー(%d)が発生しました(パス名:%s2). Error occurred during system call or library function (%s1)(%d) (path name:%s2). 可変情報 %s1: システムコール、またはライブラリ関数名 %d : エラー番号 %s2: パス名 エラー原因 ファイルに対するシステムコール、またはライブラリ関数の呼び出しでエラーが発生しました。 システムの処理 処理を継続します。 ユーザの対処 関数名、エラー番号、およびパス名からエラーの原因が分かる場合は、そのエラー原因を取り除いてください。エラーの原因が分 からない場合は、関数名、エラー番号、およびパス名とともに技術員(SE)に連絡してください。 0089 集約フィールド(%d)の内部に不適切なコードが発見されたため,集約処理を中断します. Unreasonable code is found in the summation-field(%d) specification. The summation process was interrupted. 可変情報 %d: フィールド番号 エラー原因 テキストレコードの集約フィールド内に、数字、符号、空白、およびタブ以外の文字が発見されました。 システムの処理 レコード集約処理を中断します。ソート、またはマージの処理は継続します。 bsortexコマンド、またはbsortコマンドの場合、bsortopt.exe(BSORTオプション環境設定)によりBSORT_SUMFILDに値を設定する と、bsortexコマンド、またはbsortコマンドの復帰値として設定した値を返します。 ユーザの対処 集約フィールドの指定を確認してください。 9.1.3 エラーメッセージ エラーメッセージは、PowerSORTが検出した異常を通知するメッセージです。 異常の検出後、処理を継続できない場合、エラーメッセージとして検出した異常を通知します。 エラーメッセージは、環境変数BSORT_MSGLEVEL、bsortexコマンドの-optionオプションのmsglevelオペランド、bsortコマンドの-lオプ ション、またはBSORT関数のBSRTPRIM構造体でエラーメッセージの出力を指定した場合に出力されます。 9.1.3.1 エラーメッセージの説明形式 以下にエラーメッセージの説明形式を示します。 - 233 - メッセージ番号 日本語メッセージ 英語メッセージ 可変情報 エラーメッセージ中の可変情報を以下のように示します。 %s: %sの位置に示されている文字列の意味 %d: %dの位置に示されている数値の意味 エラー原因 エラーの原因を示します。 システムの処理 PowerSORTの処理を示します。 ユーザの対処 ユーザの対処方法を示します。 9.1.3.2 エラーメッセージ 以下にエラーメッセージを示します。 0001 オプション(%s)は省略できません. Option (%s) is not specified. 可変情報 %s: 必要とするオプション エラー原因 次のいずかの場合に出力されます。 ・ 標準出力許可(-w)の指定がない場合、出力ファイル名(-o)の指定を省略できません。 ・ COBOLファイル、またはRDMファイルを指定した場合は、レコード形式(recform(-record)、または-Z)の指定を省略できません。 システムの処理 処理を中断します。 ユーザの対処 必要なオプションを指定して、再度実行してください。 0002 オプション(%s1)と(%s2)は同時に指定できません. Exclusive options (%s1), (%s2) are specified. 可変情報 %s1: 排他関係にあるオプション1 %s2: 排他関係にあるオプション2 エラー原因 次のいずれかの場合に出力されます。 ・ ソート機能(-s)、マージ機能(-m)、コピー機能(-c)のいずかを同時に指定しています。 - 234 - ・ サプレス機能(suppress(-summary)、または-u)、およびレコード集約機能(field(-summary)、または-g)を同時に指定しています。 ・ コピー機能(-copy、または-c)と他のオプション(-summary、overwrite(-input)、または-u、-g、-r、-v)のいずれかを同時に指定して います。 ・ マージ機能(-merge、または-m)と上書き許可(overwrite(-input)、または-v)を同時に指定しています。 システムの処理 処理を中断します。 ユーザの対処 排他関係にあるオプションの指定を修正して、再度実行してください。 0003 オプション(%s)が重複しています. Duplicate options (%s) are specified. 可変情報 %s: 重複しているオプション エラー原因 フィールド指定以外のオプションを重複して指定しています。 システムの処理 処理を中断します。 ユーザの対処 オプションの重複を修正して、再度実行してください。 0004 オプション(%s)の指定に誤りがあります. Invalid option (%s) is specified. 可変情報 %s: 不当なオプション エラー原因 次のいずれかの場合に出力されます。 ・ オプションとして認識できない文字列があります。 ・ マージ機能(-m)を指定していますが、入力ファイルの指定がありません。 ・ ファイルシステム(-F)の指定が許されたもの以外です。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0005 オプション(%s)の値に誤りがあります. Invalid value (%s) is specified. - 235 - 可変情報 %s: 不当なオプション エラー原因 次のいずれかの場合に出力されます。 ・ レコード長(-z) の指定が数値ではありません。 ・ 当該オプションの値として許されたもの以外です。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0006 文法的な誤り(%s)があります. Syntax error (%s). 可変情報 %s: 文法的な誤りを検出した文字列 エラー原因 次のいずれかの場合に出力されます。 ・ 引数が必要なオプションに引数がありません。 ・ 引数の無いオプション(例えば -s、-m、-f、-u、-v)と引数が必要なオプション(例えば、-y、-z、-o)を連続して指定しています。 システムの処理 処理を中断します。 ユーザの対処 オプション、またはオペランドの指定形式を修正して、再度実行してください。 0007 キーフィールド(%d)の指定に誤りがあります. The mistake is found in the key-field(%d) specification. 可変情報 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ・ 形式に誤りがあります。 ・ キーフィールド(BSRTKEY構造体のkey_entry[%d])の指定に誤りがあります。 ・ 当該データ形式で許しているフィールド長を超えています。または不当な値です。 ・ フィールド長の指定がレコード長を超えています。または、レコード長の指定がありません。 ・ オプションの指定に誤りがあります。 - 236 - システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0008 集約フィールド(%d)の指定に誤りがあります. The mistake is found in the summation-field(%d) specification. 可変情報 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ・ 形式に誤りがあります。 ・ 集約フィールド(BSRTSUM構造体のsum_entry[%d])の指定に誤りがあります。 ・ BSRTPRIM構造体のoptionfuncでBS_SUMを指定していますが、BSRTSUM構造体の指定がありません。 ・ 当該データ形式で許しているフィールド長を超えています。または不当な値です。 ・ フィールド長の指定がレコード長を超えています。または、レコード長の指定がありません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0009 再編成フィールド(%d)の指定に誤りがあります. The mistake is found in the reconstruction-field(%d) specification. 可変情報 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ・ 形式に誤りがあります。 ・ BSRTPRIM構造体のoptionfuncでBS_RECONを指定していますが、BSRTRCON構造体の指定がありません。 ・ 構成情報(rcon_consinf)の指定が認識できません。または指定されていません。 ・ bsortコマンドの引数(-e self.len typ)の自己規定値の長さ(len)より長い自己規定値(self)を指定しました。 ・ bsortexコマンドの引数(-input reconst=self-def.len typ)の自己規定値の長さ(len)より長い自己規定値(self-def)を指定しました。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 - 237 - 0010 選択フィールド(%d)の指定に誤りがあります. The mistake is found in the selection-field(%d) specification. 可変情報 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ・ 形式に誤りがあります。 ・ 選択フィールド(BSRTSELE構造体のsele_entry[%d])の指定に誤りがあります。 ・ BSRTPRIM構造体のoptionfuncでBS_SELECTを指定していますが、BSRTSELE構造体の指定がありません。 ・ 当該データ形式で許しているフィールド長を超えています。または不当な値です。 ・ フィールド長の指定がレコード長を超えています。または、レコード長の指定がありません。 ・ 真、または偽のオペレーションあるいは飛び先に誤りがあります。 ・ オプションの指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0011 環境変数の指定に誤りがあります. Invalid environment variable is specified. 可変情報 なし エラー原因 環境変数の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0014 bsrtopen関数で指定したBSRTPRIM(%s)に誤りがあります. The mistake is found in BSRTPRIM(%s) specified by the bsrtopen function. 可変情報 %s: 誤りを検出したフィールド名 エラー原因 次のいずれかの場合に出力されます。 ・ 主要機能(function)を認識できません。または、指定されていません。 - 238 - ・ レコード形式(recform)が認識できません。または、指定されていません。 ・ オプション機能(optionfunc)が認識できません。 ・ 入出力情報(fileoprat)が認識できません。 ・ レコードの受渡し方法(recoprat)が認識できません。 ・ メッセージの種別(msglevel)が認識できません。 ・ 入力ファイルのコード系(cdmode)が認識できません。 ・ チェック機構(chklevel)が認識できません。 ・ キーフィールドの操作(keyoption、またはkeyoption2)が認識できません。 ・ マージ機能のとき、入力ストリング数の指定がありません。 ・ マージ機能のとき、標準入力からレコードを入力するよう指定されています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0015 bsrtopen関数で指定したBSRTFILE(%s)に誤りがあります. The mistake is found in BSRTFILE(%s) specified by the bsrtopen function. 可変情報 %s: 誤りを検出したフィールド名 エラー原因 次のいずれかの場合に出力されます。 ・ 入力ファイルテーブル(infile_tbl)内の指定に誤りがあります。 ・ 出力ファイルテーブル(outfile_tbl)内の指定に誤りがあります。 ・ 一時ファイルテーブル(tmpfile_tbl)内の指定に誤りがあります。 ・ メッセージファイル(msgfile_addr)の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0016 キーフィールドと集約フィールド,または集約フィールドと集約フィールドが重なっています. Key field and summation field positions, or summation fields positions are identical. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ キーフィールドと集約フィールドが重なっています。 - 239 - ・ 集約フィールド同士が重なっています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0018 bsrtput関数の使用方法に誤りがあります. Invalid use for bsrtput function. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ ファイルから入力するよう指定しているときに、bsrtput関数を発行しています。 ・ bsrtput関数でBS_ENDDATA(レコード渡し終了)を指定した後、bsrtput関数を発行しています。 ・ bsrtopen関数でマージ機能を指定しているときに、ソート機能専用のbsrtput関数を発行しています。 システムの処理 処理を中断します。 ユーザの対処 誤りの原因を修正して、再度実行してください。 0019 bsrtget関数の使用方法に誤りがあります. Invalid use for bsrtget function. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ ファイルに出力するよう指定しているときに、bsrtget関数を発行しています。 ・ bsrtput関数でBS_ENDDATA(レコード渡し終了)を指定する前(レコード渡し途中)に、bsrtget関数を発行しています。 ・ PowerSORTからレコードの終了通知後、bsrtget関数を発行しています。 ・ bsrtopen関数でマージ機能を指定しているときに、ソート機能専用のbsrtget関数を発行しています。 システムの処理 処理を中断します。 ユーザの対処 誤りの原因を修正して、再度実行してください。 - 240 - 0020 bsrtmrge関数の使用方法に誤りがあります. Invalid use for bsrtmrge function. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ bsrtopen関数で入力ファイルと出力ファイルを指定しているときに、bsrtmrge関数を発行しています。 ・ PowerSORTからレコードの終了通知後、bsrtmrge関数を発行しています。 ・ bsrtopen関数でソート機能を指定したときに、マージ機能専用のbsrtmrge関数を発行しています。 ・ bsrtopen関数で指定したストリング番号より大きな値をbsrtmrge関数のストリング番号に設定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りの原因を修正して、再度実行してください。 0021 %s関数でレコードアドレスの指定がありません. Record address is not specified in %s function. 可変情報 %s: bsrtput、またはbsrtmrge エラー原因 次のいずれかの場合に出力されます。 ・ bsrtput関数でレコードアドレスを指定していません。 ・ bsrtmrge関数でレコードを渡し終えたことを指示する前に、レコードアドレスの指定を省略しました。 システムの処理 処理を中断します。 ユーザの対処 レコードアドレスを指定するようユーザアプリケーションを修正してください。すべてのレコードを渡し終えているのであれば、 BS_ENDDATAを指定するようにユーザアプリケーションを修正してください。 0022 %s関数で指定したレコード長に誤りがあります. Invalid record length is specified in %s function. 可変情報 %s: bsrtopen、bsrtput、またはbsrtmrge エラー原因 次のいずれかの場合に出力されます。 ・ 固定長レコード形式のときに、bsrtopen関数で指定した長さと異なる長さを指定しています。 - 241 - ・ 可変長レコード形式のときに、bsrtopen関数で指定した最大レコード長よりも長いレコードを指定しています。 ・ bsrtopen関数でレコード長を指定していません。 ・ 固定長レコード形式でレコード群渡しのとき、bsrtopen関数で指定したレコード長の整数倍の値を指定していません。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をしてください。 ・ レコード長が正しい値になるよう、ユーザアプリケーションを修正してください。 ・ bsrtopen関数で指定した最大レコード長が実際の最大レコード長以上であるか確認してください。違っていればユーザアプリ ケーションを修正してください。 ・ bsrtopen関数で検出された場合は、レコード長を指定するようユーザアプリケーションを修正してください。 0023 PowerSORTの動作に必要な領域を確保できません. A necessary PowerSORT working area cannot be secured. 可変情報 なし エラー原因 必要なメモリを確保できません。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をお願いします。 ・ 環境変数BSORT_MEMSIZEの指定を増やしてください。ただし、物理メモリの空きが少ないときは、BSORT_MEMSIZEの指 定を物理メモリの空き以下に減らしてください。 ・ ユーザアプリケーションから呼び出している場合には、PowerSORTが使用できるメモリ量が充分にあるか確認してください。 ・ PowerSORTの動作には最低32キロバイト以上の作業域が必要です。 0025 一時ファイルの容量が足りません. Not enough temporary file space. 可変情報 なし エラー原因 一時ファイルへのデータ書き出し時に容量不足を検出しました。 システムの処理 処理を中断します。 また、このメッセージに続いて、メッセージ番号0175、または0176のメッセージを出力します。 - 242 - ユーザの対処 次のいずれかの対処をお願いします。 ・ ディスクのスペースに空きがある場合は、空きスペースの存在するフォルダを一時ファイル用に定義してください。 ・ ディスクのスペースに空きがあり、bsrtopen関数で一時ファイルパス名を指定している場合は、指定する一時ファイルの数を増 やしてください。 ・ ディスクのスペースに空きがない場合は、不要なファイルを削除して空きスペースを作ってください。 参照 一時ファイルに関する指定については、以下を参照してください。 ・ 環境変数BSORT_TMPDIR ・ 実行環境オプション(-option)のtmpdirオペランド ・ bsrtopen関数におけるBSRTFILE構造体のtmpfile_tbl 0026 一時ファイルが生成できません. The temporary file cannot be created. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ 一時ファイルの指定に誤りがあります。 ・ 一時ファイルの自動確保処理で、一時ファイル生成に必要な仮想記憶域、またはディスクの空きスペースが不足しています。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をお願いします。 ・ 一時ファイルの指定を確認してください。 ・ PowerSORT、またはユーザアプリケーションが使用する仮想記憶域の大きさを減らしてください。 ・ システムの負荷が軽い時間帯に再度実行してください。 ・ 不要なファイルを削除してディスクに空きスペースを作ってください。 0027 ファイル(%s)は存在しません. File(%s) does not exist. 可変情報 %s: 入力ファイルパス名、または出力ファイルパス名 エラー原因 入力ファイル、または出力ファイルに指定されたファイルパス名が存在しません。 - 243 - システムの処理 処理を中断します。 ユーザの対処 入力ファイルパス名、または出力ファイルパス名を確認してください。 0028 同じファイル(%s)を指定しています. Same file(%s) is specified. 可変情報 %s: ファイルパス名 エラー原因 次のいずれかの場合に出力されます。 ・ 入力ファイルと出力ファイルに同じファイルを指定していますが、上書き許可(bsortexコマンドの-inputオプションのoverwriteオ ペランド、bsortコマンドの-vオプション、またはbsrtopen関数におけるfileopratのBS_OVERWRITE)を指定していません。 ・ マージ機能、またはコピー機能で、入力ファイルと出力ファイルに同じファイルを指定しています。 ・ 入力ファイルとメッセージファイルに同じファイルを指定しています。 ・ 出力ファイルとメッセージファイルに同じファイルを指定しています。 システムの処理 処理を中断します。 ユーザの対処 同じファイルパス名を指定しないようにしてください。 ソート機能で、入力ファイルと出力ファイルに同じファイルを指定する場合は、上書き許可(bsortexコマンドの-inputオプションのoverwrite オペランド、bsortコマンドの-vオプション、またはbsrtopen関数におけるfileopratのBS_OVERWRITE)を指定してください。なお、こ の場合に処理途中で異常が発生すると、ファイルの復元ができなくなることがあります。 0029 ファイル(%s)の形式に誤りがあります. Invalid format of file (%s). 可変情報 %s: エラーのあったファイルパス名 エラー原因 レコード形式に可変長形式を指定していますが、ファイルシステムを省略しているか、またはシステム標準のファイルシステムを指 定しています。 システムの処理 処理を中断します。 ユーザの対処 ファイルの形式を確認して再度実行してください。 0030 ファイル(%s)の属性に誤りがあります. Invalid attribute of file (%s). - 244 - 可変情報 %s: ファイルパス名 エラー原因 次のいずれかの場合に出力されます。 ・ 入力ファイルに固定長レコード形式と可変長レコード形式を混在して指定しています。 ・ 入力のレコード形式と異なるファイルを出力ファイルに指定しています。 ・ 指定されたレコード形式とファイル内のレコード形式が異なります。 ・ 指定されたレコード長とファイル内のレコード長が異なります。 ・ 入力ファイルが作成中(更新中)です。 システムの処理 処理を中断します。 ユーザの対処 エラー原因を取り除いて、再度実行してください。 0031 レコード長を指定していません. Record length is not specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ レコード長を指定していません。 ・ BSRTPRIM構造体のrec_lenの指定がありません。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をお願いします。 ・ レコード長を指定してください。 ・ BSRTPRIM構造体のrec_lenにレコード長を指定してください。 0032 ファイル(%s1)のオープンでエラー(%s2)が発生しました. Error occurred during file (%s1) open.(%s2) 可変情報 %s1: ファイルパス名 %s2: エラー番号、またはエラー詳細情報 エラー原因 次のいずれかの場合に出力されます。 ・ システム内のファイルオープン処理でメモリ不足が発生しました。 - 245 - ・ 親フォルダのスペースが拡張できません。 ・ ファイルのスペースを獲得できません。 ・ ファイルパス名の要素がフォルダではありません。 ・ 他プロセスで使用中です。 ・ 媒体障害、またはソフト障害によるデータ破壊が発生しました。 ・ ファイルの存在するディスクが使用できません。 ・ 索引ファイルの場合、インデックスの指定に誤りがあります。 ・ 格納レコード件数が0件のRDMファイルが入力されました。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をお願いします。 ・ メモリ不足が原因の場合は、PowerSORT、またはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してくだ さい。 ・ ディスクのスペース不足が原因の場合は、ディスク上に空きスペースを作って、再度実行してください。 ・ ファイルパス名の要素がフォルダでない場合は、正しいファイルパス名を指定してください。 ・ 他プロセスで使用中の場合は、使用中でない時間帯に再度実行してください。 ・ パス名、またはパス名の要素の長さが制限を超えている場合は、正しい名前を指定して再度実行してください。 ・ 格納レコード件数が0件のRDMファイルを処理する場合は、環境変数BSORT_RDM_EMPTYにCONTINUEを指定してくださ い。 参考 エラー原因の調査のため、エラー番号として以下に示す情報が出力されることがあります。 使用している各ファイルシステムのマニュアルを参照し、エラー原因を取り除いてください。 ・ 入出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システムが設定するエラーコード ・ 入出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通COBOLファイルシステムが設定す るエラーコード ・ 入出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラーコード("iserrno,isstat4"の形式) 0033 プロセス内,またはシステム内でオープン中のファイルが多過ぎます. There are too many files open in the system or in the process. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ プロセス内、またはシステム内でオープン中のファイルが多過ぎるため、必要なファイルをオープンできません。 ・ ソート処理に必要とする一時ファイルの数が多過ぎます。 - 246 - システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をお願いします。 ・ bsortコマンド、またはbsortexコマンドを使用している場合は、入力ファイルの数を減らしてください。 ・ BSORT関数を使用している場合は、BSORT関数発行前にオープン中のファイルをクローズしてください。 ・ システム内でオープン中のファイルが多過ぎる場合は、システムの負荷が低いときに再実行してください。 ・ ソート処理に必要とする一時ファイルの数が多過ぎる場合は、一時ファイルに指定したディスクスペースを拡張してください。ま た、環境変数BSORT_TMPDIR等により一時ファイルを作成するフォルダを指定している場合は、個々のディレクトリパス名の 長さを短くしてください。 0034 ファイル(%s1)のクローズでエラー(%s2)が発生しました. Error occurred during file (%s1) close.(%s2) 可変情報 %s1: ファイルパス名 %s2: エラー番号、またはエラー詳細情報 エラー原因 次のいずれかの場合に出力されます。 ・ メモリ不足が発生しました。 ・ 媒体障害、またはソフト障害によるデータ破壊が発生しました。 ・ ファイルの存在するディスクが使用できません。 システムの処理 処理を中断します。 ユーザの対処 PowerSORT、またはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してください。 参考 エラー原因の調査のため、エラー番号として以下に示す情報が出力されることがあります。 使用している各ファイルシステムのマニュアルを参照し、エラー原因を取り除いてください。 ・ 入出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システムが設定するエラーコード ・ 入出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通COBOLファイルシステムが設定す るエラーコード ・ 入出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラーコード("iserrno,isstat4"の形式) 0035 ファイル(%s1)からのレコード入力中にエラー(%s2)が発生しました. Error occurred during the file (%s1) reading.(%s2) - 247 - 可変情報 %s1: ファイルパス名 %s2: エラー番号、またはエラー詳細情報 エラー原因 次のいずれかの場合に出力されます。 ・ ファイルからのレコード入力中にメモリ不足が発生しました。 ・ 媒体障害、またはソフト障害によるデータ破壊が発生しました。 ・ ファイルの存在するディスクが使用できません。 システムの処理 処理を中断します。 ユーザの対処 PowerSORT、またはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してください。 参考 エラー原因の調査のため、エラー番号として以下に示す情報が出力されることがあります。 使用している各ファイルシステムのマニュアルを参照し、エラー原因を取り除いてください。 ・ 入力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システムが設定するエラーコード ・ 入力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通COBOLファイルシステムが設定するエ ラーコード ・ 入力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラーコード("iserrno,isstat4"の形式) 0036 ファイル(%s1)へのレコード出力中にエラー(%s2)が発生しました. Error occurred during the file (%s1) writing.(%s2) 可変情報 %s1: ファイルパス名 %s2: エラー番号、またはエラー詳細情報 エラー原因 次のいずれかの場合に出力されます。 ・ ファイルへのレコード出力中にメモリ不足が発生しました。 ・ ファイルのスペースを拡張できません。 ・ 媒体障害、またはソフト障害によるデータ破壊が発生しました。 ・ ファイルの存在するディスクが使用できません。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をお願いします。 ・ メモリ不足が発生した場合は、PowerSORT、またはユーザアプリケーションが使用する仮想記憶域を減らして、再度実行してく ださい。 - 248 - ・ 出力ファイルのスペースを拡張できなかった場合は、スペースの拡張ができるように、ディスク上に空きスペースを作ってから再 度実行してください。 参考 エラー原因の調査のため、エラー番号として以下に示す情報が出力されることがあります。 使用している各ファイルシステムのマニュアルを参照し、エラー原因を取り除いてください。 ・ 出力ファイルにシステムの標準ファイルシステムのファイルを指定していた場合、システムが設定するエラーコード ・ 出力ファイルに富士通COBOLファイルシステムのファイルを指定していた場合、富士通COBOLファイルシステムが設定するエ ラーコード ・ 出力ファイルにRDMファイルを指定していた場合、RDMファイルシステムが設定するエラーコード("iserrno,isstat4"の形式) 0037 ファイル(%s)には参照許可がありません. There is no reference permission in file(%s). 可変情報 %s: ファイルパス名 エラー原因 参照することを許されていないファイルを指定しています。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をお願いします。 ・ ファイルパス名を間違えていた場合は、正しいパス名を指定して再度実行してください。 ・ 指定に誤りがない場合は、参照する権利がありませんので、ファイルの管理者に許可をもらってください。 0038 ファイル(%s)には書込許可がありません. There is no writing permission in the file(%s). 可変情報 %s: ファイルパス名 エラー原因 書込みすることを許されていないファイルを指定しています。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をお願いします。 ・ ファイルパス名を間違えていた場合は、正しいパス名を指定して再度実行してください。 ・ 指定に誤りがない場合は、書き込む権利がありませんので、ファイルの管理者に許可をもらってください。 - 249 - 0040 ストリングが並んでいません. The string was not sorted. 可変情報 なし エラー原因 マージ機能の入力に指定したファイル、またはストリングが、指定したキーフィールドの順に並んでいません。 システムの処理 処理を中断します。 ユーザの対処 マージ機能では、ソート済みのファイル、またはストリングを指定してください。 0043 PowerSORTの処理で内部論理の矛盾を検出しました.(%s-%d) Logical error occurred at PowerSORT.(%s-%d) 可変情報 %s: 検出モジュール名 %d: エラー識別番号 エラー原因 内部論理の矛盾を検出しました。 システムの処理 処理を中断します。 ユーザの対処 エラー識別番号とともに技術員(SE)に連絡してください。 参考 検出モジュール名に「qha7tmpp」、エラー識別番号に「162」が出力されていた場合、入力ファイルが作成中(更新中)であることが考 えられます。他のプロセスによって、入力ファイルが作成中(更新中)でないかを確認してください。 0072 選択フィールドが存在しないレコードが入力されました. Selection field did not exist on the input record. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ 可変長レコード入力中、選択フィールドを含まない短いレコードが入力されました。 ・ テキストレコード入力中、選択フィールドを含まないレコードが入力されました。 - 250 - システムの処理 処理を中断します。 ユーザの対処 選択フィールドの指定を確認してください。 0073 再編成フィールドが存在しないレコードが入力されました. Reconstruction field did not exist on the input record. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ 可変長レコード入力中、再編成フィールドを含まない短いレコードが入力されました。 ・ テキストレコード入力中、再編成フィールドを含まないレコードが入力されました。 システムの処理 処理を中断します。 ユーザの対処 再編成フィールドの指定を確認してください。 0074 キーフィールドの内部に判別不可能なコードが検出されました. Unreasonable code is found in the key field. 可変情報 なし エラー原因 キーフィールドの内部に未定義のコードが検出されました。 システムの処理 処理を中断します。 ユーザの対処 キーフィールドの指定を確認してください。 0075 ファイルシステム(%s)でエラーが発生しました. Error occurred in file system(%s). 可変情報 %s: 指定したファイルシステム エラー原因 指定したファイルシステムがインストールされていません。 - 251 - システムの処理 処理を中断します。 ユーザの対処 必要なファイルシステムをインストールしてください。 0076 引数ファイルに誤りがあります. The mistake is found in argument file. 可変情報 なし エラー原因 アーギュメントファイル(引数ファイル)内のクォーテーション( ' )、またはダブルクォーテーション( " )がペアになっていません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0078 ファイルパス名(%s)が長すぎます. File path name(%s) is too long. 可変情報 %s: ファイルパス名 エラー原因 入力ファイル、出力ファイル、またはアーギュメントファイルのパス名の長さがシステムで定義されているPATH_MAXを超えていま す。 システムの処理 処理を中断します。 ユーザの対処 ファイルパス名の長さをPATH_MAX以下にして、再度実行してください。 0079 %sのパスプレフィックスの構成要素にフォルダでないものがあります. A path prefix component of %s is not a folder. 可変情報 %s: ファイルパス名 エラー原因 入力ファイル、出力ファイル、またはアーギュメントファイルのパスプレフィックスの中にフォルダでないものがあります。 システムの処理 処理を中断します。 - 252 - ユーザの対処 ファイルの指定を修正して、再度実行してください。 0080 指定した%sはフォルダです. Specified %s is a folder. 可変情報 %s: パス名 エラー原因 出力ファイルにフォルダを指定しています。 システムの処理 処理を中断します。 ユーザの対処 出力ファイルの指定を修正して、再度実行してください。 0081 出力デバイス上のスペースが足りません. No space left on the output device. 可変情報 なし エラー原因 出力ファイル、または一時ファイルの書込み中にそのデバイス上に空き領域がなくなりました。 システムの処理 処理を中断します。 ユーザの対処 充分な空き領域があるデバイスを割り当て、再度実行してください。 0082 ファイル(%s)のサイズがプロセスの限度あるいは最大ファイルサイズを超えました. File(%s) size exceeds the process's file size limit or the maximum file size. 可変情報 %s: ファイル名 エラー原因 出力ファイル、または一時ファイルの書込み中に、そのファイルサイズがシステムで設定しているプロセスのファイルサイズの限度、 またはユーザが設定している最大ファイルサイズを超えました。 システムの処理 処理を中断します。 ユーザの対処 処理対象のレコードを選択して出力ファイルサイズを小さくしてください。 - 253 - 0083 システムコールまたはライブラリ関数(%s)でエラー(%d)が発生しました. Error occurred during system call or library function (%s)(%d). 可変情報 %s: システムコール、またはライブラリ関数名 %d: エラー番号 エラー原因 システムコール、またはライブラリ関数の呼び出しでエラーが発生しました。 システムの処理 処理を中断します。 ユーザの対処 関数名、およびエラー番号からエラーの原因が分かる場合は、そのエラー原因を取り除いて再度実行してください。エラーの原因 が分からない場合は、関数名、およびエラー番号とともに技術員(SE)に連絡してください。 0084 システムコールまたはライブラリ関数(%s1)でエラー(%d)が発生しました(パス名:%s2). Error occurred during system call or library function (%s1)(%d) (path name:%s2). 可変情報 %s1: システムコール、またはライブラリ関数名 %d : エラー番号 %s2: パス名 エラー原因 ファイルに対するシステムコール、またはライブラリ関数の呼び出しでエラーが発生しました。 システムの処理 処理を中断します。 ユーザの対処 関数名、エラー番号、およびパス名からエラーの原因が分かる場合は、そのエラー原因を取り除いて再度実行してください。エラー の原因が分からない場合は、関数名、エラー番号、およびパス名とともに技術員(SE)に連絡してください。 0085 PowerSORTのローディング中にエラーが発生しました. Error occurred during PowerSORT loading. 可変情報 なし エラー原因 PowerSORTのライブラリがインストールの時点から移動された可能性があります。または、ファイルが壊されている可能性がありま す。 システムの処理 処理を中断します。 - 254 - ユーザの対処 PowerSORTを再インストールしてください。 0086 %s関数で指定したレコードにラインフィードが存在しません. Line feed did not exist on the record specified in %s function. 可変情報 %s: bsrtput、またはbsrtmrge エラー原因 指定したテキストレコードにラインフィードが存在しません。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をしてください。 ・ 入力レコードがテキスト形式であることを確認してください。 ・ bsrtput関数、またはbsrtmrge関数で指定するレコード長を確認してください。 0088 レコード長の指定に誤りがあります. Invalid record length is specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ 可変長レコード入力中に指定したレコード長を超えるレコードが入力されました。 ・ テキストレコード入力中に指定したレコード長を超えるレコードが入力されました。 システムの処理 処理を中断します。 ユーザの対処 レコード長の指定を確認してください。 0090 漢字コードの変換処理(%s)でエラー(%d)が発生しました. Error occurred during kanji code conversion (%s)(%d). 可変情報 %s: エラーが発生した関数名 %d: エラー番号、またはADJUSTが設定するエラー詳細コード エラー原因 ADJUST、または標準コード変換関数(iconv)がインストールされていません。 - 255 - システムの処理 処理を中断します。 ユーザの対処 ADJUST、および標準コード変換関数(iconv)が正しくインストールされているか確認してください。 0093 環境変数(%s)の指定に誤りがあります. Invalid environment variable (%s) is specified. 可変情報 %s: 誤りを検出した環境変数 エラー原因 環境変数の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0095 bsrtopen関数で指定したBSRTOPT(%s)に誤りがあります. The mistake is found in BSRTOPT(%s) specified by the bsrtopen function. 可変情報 %s: 誤りを検出したフィールド名 エラー原因 次のいずれかの場合に出力されます。 ・ オプション機能(optfunc)が認識できません。 ・ 出力レコード位置(outrecpos)が認識できません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0096 入力処理後のレコード長に誤りがあります. The mistake is found in record length after the input process. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ 入力ファイルのレコード再編成の指定がない場合、入力ファイルグループ間で指定したレコード長が異なります。 - 256 - ・ 入力ファイルのレコード再編成の指定がある場合、入力ファイルグループ間で入力レコード再編成後のレコード長が異なりま す。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をしてください。 ・ 入力ファイルのレコード再編成機能を使用する場合は、入力ファイルグループ間でレコード再編成後のレコード長が同じにな るようにして、再度実行してください。 ・ 入力ファイルのレコード再編成機能を使用しない場合は、入力ファイルグループ間で同じレコード長にして、再度実行してくだ さい。 0098 同時に指定すべきオプション(%s1)と(%s2)の指定がありません. Synchronous option (%s1), (%s2) are not specified. 可変情報 %s1: 必要とするオプション1 %s2: 必要とするオプション2 エラー原因 同時に指定すべき2つのオプションのどちらかを指定していません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0100 ASCIIコードとEBCDICコード間の変換方式の指定に誤りがあります. Invalid conversion method between ASCII code and EBCDIC code is specified. 可変情報 なし エラー原因 ASCIIコードとEBCDICコード間の変換方式の指定に誤りがあります。 参照 ・ bsortコマンドにおける-Qオプション ・ bsortexコマンドにおける-optionのiconvオペランド ・ BSRTPRIM構造体におけるaltmode システムの処理 処理を中断します。 - 257 - ユーザの対処 誤りを修正して、再度実行してください。 0102 インデックスの作成方法の指定に誤りがあります. Invalid index creation method is specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ 主キーと副キーのどちらも指定していません。 ・ インデックスの作成方法の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0104 インデックスのデータ形式を指定していません. Index data type is not specified. 可変情報 なし エラー原因 インデックスのデータ形式を指定していません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0105 インデックスの作成方法を指定していません. Index creation method is not specified. 可変情報 なし エラー原因 インデックスの作成方法を指定していません。 システムの処理 処理を中断します。 - 258 - ユーザの対処 誤りを修正して、再度実行してください。 0106 インデックスの長さの指定に誤りがあります. Invalid index length is specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ インデックスの長さが0バイトです。 ・ インデックスの長さが、指定したデータ形式で指定できる長さを超えています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0107 インデックスの並びの指定に誤りがあります. Invalid index order is specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ 富士通COBOLファイルシステム、またはMicro Focus COBOLファイルシステムの索引ファイルの場合に、降順を指定していま す。 ・ インデックスの並びの指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0108 レコード全体をキーフィールドとする場合のキーフィールドの操作に誤りがあります. The mistake is found in the operation of the key field when the key field is omitted. 可変情報 なし エラー原因 レコード全体をキーフィールドとする場合のキーフィールドの操作で、排他関係にある操作(n、N、w)を同時に指定しています。 - 259 - システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0109 キー形式の指定に誤りがあります. Invalid key type is specified. 可変情報 なし エラー原因 キー形式の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0110 コピー機能と集約機能/サプレス機能/並びの降順は同時に指定できません. Exclusive options, copy and summation/suppress/reverse are specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ コピー機能でレコード集約機能を指定しています。 ・ コピー機能でサプレス機能を指定しています。 ・ コピー機能で並びの降順を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0111 ストリング数の指定に誤りがあります. Invalid string number is specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 - 260 - ・ マージ機能で、入力ファイル数とストリング数が異なります。 ・ マージ機能で、ストリング数に0を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0112 チェックレベルの指定に誤りがあります. Invalid check level is specified. 可変情報 なし エラー原因 チェックレベルの指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0113 テキストファイルのフィールド分離文字列の指定に誤りがあります. Invalid field separating character-string in the text file is specified. 可変情報 なし エラー原因 フィールド分離文字列にレコード分離文字が含まれています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0114 テキストファイルのフィールド形式を指定していません. Text field format is not specified. 可変情報 なし エラー原因 テキストファイルの場合に、フィールドの指定方法の指定がありません。 - 261 - システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0116 ファイルシステムの指定に誤りがあります. Invalid file system is specified. 可変情報 なし エラー原因 ファイルシステムの指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0118 メッセージレベルの指定に誤りがあります. Invalid message level is specified. 可変情報 なし エラー原因 メッセージの種別(レベル)の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0119 出力時のレコード区切り文字の指定に誤りがあります. Invalid output line delimiter is specified. 可変情報 なし エラー原因 出力時のレコード分離文字の指定に誤りがあります。 システムの処理 処理を中断します。 - 262 - ユーザの対処 誤りを修正して、再度実行してください。 0120 レコード形式の指定に誤りがあります. Invalid record format is specified. 可変情報 なし エラー原因 レコード形式の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0121 レコード形式を指定していません. Record format is not specified. 可変情報 なし エラー原因 レコード形式を指定していません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0122 レコード形式またはテキストフィールド形式を指定していません. Record format or text field format is not specified. 可変情報 なし エラー原因 バイナリ固定長レコード形式、バイナリ可変長レコード形式、テキストファイル固定フィールド指定のレコード形式、テキストファイル 浮動フィールド指定のレコード形式、テキストファイルCSV形式、およびテキストファイルTSV形式のいずれも指定していません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 - 263 - 0123 レコード受渡し方法の指定に誤りがあります. Invalid method of passing and receiving records is specified. 可変情報 なし エラー原因 レコード受渡し方法の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0124 索引ファイルで出力可能な最大ファイルサイズまたは最大レコード数を指定しています. Exclusive options, max output file size/max output record number and indexed file are specified. 可変情報 なし エラー原因 索引ファイルのときに、1つのファイルに出力可能な最大ファイルサイズ、または最大レコード数を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0125 集約機能とサプレス機能は同時に指定できません. Exclusive options, summation and suppress are specified. 可変情報 なし エラー原因 レコード集約機能とサプレス機能を同時に指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0126 集約機能/サプレス機能以外で先頭/最終レコードの出力を指定しています. First/last option is specified without summation/suppress function. - 264 - 可変情報 なし エラー原因 レコード集約機能、およびサプレス機能の指定がないときに、先頭/最終レコードの出力を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0128 出力ファイルとメッセージファイルに同じファイル(%s)を指定しています. Same file(%s) is specified for output file and message file. 可変情報 %s: ファイルパス名 エラー原因 出力ファイルとメッセージファイルに同じファイルパス名を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0129 出力ファイルに同じファイル(%s)を指定しています. Same file(%s) is specified for output files. 可変情報 %s: ファイルパス名 エラー原因 出力ファイルに同じファイルを複数指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0130 出力ファイルシステムに誤りがあります. Invalid output file system is specified. 可変情報 なし - 265 - エラー原因 次のいずれかの場合に出力されます。 ・ テキストファイルのとき、システム標準のファイルシステム(dos)以外を指定しています。 ・ 標準出力のとき、システム標準のファイルシステム(dos)以外を指定しています。 ・ 出力ファイルシステムに誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0131 入力時のレコード区切り文字の指定に誤りがあります. Invalid input line delimiter is specified. 可変情報 なし エラー原因 入力時のレコード分離文字の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0132 出力ファイルパス名(%s)の指定に誤りがあります. Invalid output file path name(%s) is specified. 可変情報 %s: ファイルパス名 エラー原因 出力ファイルパス名の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0133 出力可能な最大ファイルサイズの指定に誤りがあります. Invalid max output file size is specified. 可変情報 なし - 266 - エラー原因 次のいずれかの場合に出力されます。 ・ 出力レコード長(レコード再編成後の長さ)より小さい最大ファイルサイズを指定しています。 ・ 出力可能な最大ファイルサイズの指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0134 出力可能な最大ファイルサイズまたは最大レコード数の指定に誤りがあります. Invalid max output file size or max output record number is specified. 可変情報 なし エラー原因 出力ファイルが標準出力のときに、1つのファイルに出力可能な最大ファイルサイズ、または最大レコード数を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0135 マージ機能/コピー機能で入力ファイルへの上書きを指定しています. Exclusive options, merge/copy and overwrite are specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ マージ機能のときに、入力ファイルへの上書きを指定しています。 ・ コピー機能のときに、入力ファイルへの上書きを指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0136 入力コード系の指定に誤りがあります. Invalid input data code is specified. - 267 - 可変情報 なし エラー原因 入力コード系の指定に誤りがあります。 参照 ・ bsortコマンドにおける-qオプション ・ bsortexコマンドにおける-optionのicodeオペランド ・ BSRTPRIM構造体におけるcdmode システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0138 入力ファイルとメッセージファイルに同じファイル(%s)を指定しています. Same file(%s) is specified for input file and message file. 可変情報 %s: ファイルパス名 エラー原因 入力ファイルとメッセージファイルに同じファイルパス名を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0139 入力ファイルと出力ファイルに同じファイル(%s)を指定しています. Same file(%s) is specified for input file and output file. 可変情報 %s: ファイルパス名 エラー原因 入力ファイルと出力ファイルに同じファイルパス名を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 - 268 - 0140 入力ファイルシステムに誤りがあります. Invalid input file system is specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ テキストファイルのとき、システム標準のファイルシステム(dos)以外を指定しています。 ・ 標準入力のとき、システム標準のファイルシステム(dos)以外を指定しています。 ・ 入力ファイルシステムに誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0141 入力ファイルパス名(%s)の指定に誤りがあります. Invalid input file path name(%s) is specified. 可変情報 %s: ファイルパス名 エラー原因 入力ファイルパス名の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0142 標準入力と入力への上書きは同時に指定できません. Exclusive options, standard input and overwrite are specified. 可変情報 なし エラー原因 標準入力と入力ファイルへの上書きを同時に指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 - 269 - 0143 入力ファイルパス名を指定していません. Input file path name is not specified. 可変情報 なし エラー原因 入力ファイルパス名を指定していません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0144 出力ファイルパス名を指定していません. Output file path name is not specified. 可変情報 なし エラー原因 出力ファイルパス名を指定していません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0145 入力ファイルシステムの指定に誤りがあります. The mistake is found in input file system specification. 可変情報 なし エラー原因 入力ファイルシステムの指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0146 出力ファイルシステムの指定に誤りがあります. The mistake is found in output file system specification. - 270 - 可変情報 なし エラー原因 出力ファイルシステムの指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0147 インデックスのデータ形式の指定に誤りがあります. Invalid index data type is specified. 可変情報 なし エラー原因 次のいずれかの場合に出力されます。 ・ 富士通COBOLファイルシステム、またはMicro Focus COBOLファイルシステムの索引ファイルで、ASCIIコード、Unicode以外 を指定しています。 ・ インデックスのデータ形式の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0148 システム標準のファイルシステムでは可変長レコード形式を指定できません. Exclusive options, standard file system and variable-length record format are specified. 可変情報 なし エラー原因 システム標準のファイルシステムで可変長レコード形式を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0149 索引ファイルで出力レコード渡しを指定しています. Exclusive options, output record passing and indexed file are specified. - 271 - 可変情報 なし エラー原因 索引ファイルで出力レコード渡しを指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0150 bsrtopen関数でBSRTPRIMを指定していません. BSRTPRIM is not specified by the bsrtopen function. 可変情報 なし エラー原因 bsrtopen関数でBSRTPRIM構造体を指定していません。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0151 バイナリファイルでテキスト用キーオプションを指定しています. Key option is specified for binary file. 可変情報 なし エラー原因 バイナリファイルでテキスト用キーオプションを指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0152 テキストファイルで入力コード系にEBCDICコード系を指定しています. Exclusive options, text file and EBCDIC input data code are specified. 可変情報 なし - 272 - エラー原因 テキストファイルで入力コード系にEBCDICコード系を指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0153 bsrtopen関数で指定した%s1(%s2)に誤りがあります. The mistake is found in %s1(%s2) specified by the bsrtopen function. 可変情報 %s1: 誤りを検出した構造体名 %s2: 誤りを検出したフィールド名 エラー原因 BSIDX構造体のidx_flagの指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0154 出力可能な最大ファイルサイズ指定または最大レコード数指定は,出力ファイルが1つのとき指定できません. Division of output file cannot be specified for one output file. 可変情報 なし エラー原因 出力ファイルが1つのとき、出力可能な最大ファイルサイズ、または最大レコード数による出力ファイルの分割出力を指定していま す。 システムの処理 処理を中断します。 ユーザの対処 次のいずれかの対処をしてください。 ・ 複数の出力ファイルを指定して、再度実行してください。 ・ 出力ファイルの分割出力の指定を外して、再度実行してください。 0155 ソート機能,マージ機能またはコピー機能を同時に指定しています. Exclusive options, -sort, -merge or -copy are specified. 可変情報 なし - 273 - エラー原因 ソート機能、マージ機能、またはコピー機能のいずれかを同時に指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0156 オペランド(%s)の指定に誤りがあります. Invalid operand (%s) is specified. 可変情報 %s: 不当なオペランド エラー原因 次のいずれかの場合に出力されます。 ・ オペランドとして認識できない文字列があります。 ・ bsortexコマンドのソートオプション(-sort)、またはマージオプション(-merge)におけるkey=ALL指定のとき、キーフィールドの操 作の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0157 分割出力で指定した%sの後の出力ファイルが足りません. Not enough output file after %s specified for the output division. 可変情報 %s: 分割出力で指定した最後の出力ファイルパス名 エラー原因 分割出力で指定した出力ファイルが少ないため、出力できないレコードがあります。 システムの処理 処理を中断します。 ユーザの対処 分割出力で指定する出力ファイルを増やして、再度実行してください。 0158 指定したファイルシステムでは出力可能な最大ファイルサイズを指定できません. Max output file size is specified with the file system which does not support it. 可変情報 なし - 274 - エラー原因 システム標準のファイル(テキストファイル、バイナリファイル)以外のファイルで、1つのファイルに出力可能な最大ファイルサイズを 指定しています。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0159 オペランド(%s)は省略できません. Operand (%s) is not specified. 可変情報 %s: 必要とするオペランド エラー原因 -inputオプションでレコード長(reclenオペランド)の指定がありません。 システムの処理 処理を中断します。 ユーザの対処 必要なオペランドを指定して、再度実行してください。 0160 漢字フィールド(%d)の指定に誤りがあります. The mistake is found in the jef-field(%d) specification. 可変情報 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ・ 漢字ソートマージの方式の指定に誤りがあります。 ・ 漢字フィールドの漢字属性の指定に誤りがあります。 ・ ふりがなフィールドの位置、または長さの指定に誤りがあります。 ・ ふりがなフィールドのデータ形式の指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0161 インデックスフィールド(%d)の指定に誤りがあります. The mistake is found in the index-field(%d) specification. - 275 - 可変情報 %d: 誤っているフィールド番号 エラー原因 次のいずれかの場合に出力されます。 ・ 位置、または長さの指定に誤りがあります。 ・ データ形式の指定に誤りがあります。 ・ オプションの指定に誤りがあります。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0173 ファイル(%s1)の属性取得処理でエラー(%s2)が発生しました. Attribute acquisition error of file(%s1). (%s2) 可変情報 %s1: ファイルパス名 %s2: エラー番号 エラー原因 ファイルの属性取得処理でエラーが発生しました。 システムの処理 処理を中断します。 ユーザの対処 誤りを修正して、再度実行してください。 0174 PowerSORTが正しくインストールされていません. PowerSORT is not correctly installed. 可変情報 なし エラー原因 PowerSORTが正しくインストールされていません。 システムの処理 処理を中断します。 ユーザの対処 PowerSORTのインストール環境が壊れている可能性があります。必要であればPowerSORTを再度インストールしてください。 0175 一時フォルダ(%s)を使用しました. Temporary folder (%s) was used. - 276 - 可変情報 %s: 一時フォルダ名 エラー原因 一時ファイルへのデータ書き出し時に容量不足を検出しました。 システムの処理 処理を中断します。 メッセージ番号0025のメッセージの付加情報として、0025のメッセージに続いて出力されます。 ユーザの対処 使用した一時フォルダ名を確認し、次のいずれかの対処をお願いします。 ・ ディスクのスペースに空きがある場合は、空きスペースの存在するフォルダを一時ファイル用に定義してください。 ・ ディスクのスペースに空きがない場合は、不要なファイルを削除して空きスペースを作ってください。 0176 一時ファイル(%s)を使用しました. Temporary file (%s) was used. 可変情報 %s: 一時ファイル名 エラー原因 一時ファイルへのデータ書き出し時に容量不足を検出しました。 システムの処理 処理を中断します。 メッセージ番号0025のメッセージの付加情報として、0025のメッセージに続いて出力されます。 ユーザの対処 使用した一時ファイル名を確認し、次のいずれかの対処をお願いします。 ・ ディスクのスペースに空きがある場合は、bsrtopen関数で指定する一時ファイルの数を増やしてください。 ・ ディスクのスペースに空きがない場合は、不要なファイルを削除して空きスペースを作ってください。 0177 キーフィールドは省略できません. Key field is not specified. 可変情報 なし エラー原因 テキストファイルCSV形式、またはテキストファイルTSV形式の場合、キーフィールドの指定を省略できません。 システムの処理 処理を中断します。 ユーザの対処 キーフィールドを指定して、再度実行してください。 - 277 - 9.1.4 アプリケーションログへの出力メッセージ PowerSORTは、環境変数BSORT_EVENTLOGの指定に応じたメッセージをアプリケーションログへ出力します。 アプリケーションログは、システム付属のイベントビューアを使用して参照してください。 環境変数BSORT_EVENTLOGにE、W、またはIを指定した場合に出力されるメッセージは、環境変数BSORT_EVENTLOGを参照し てください。環境変数BSORT_EVENTLOGにYESを指定した場合は、以下に示すメッセージが出力対象となります。エラー原因、お よびユーザの対処については、各メッセージの説明を参照してください。 メッセージ番号 メッセージ 0015 bsrtopen関数で指定したBSRTFILE(%s)に誤りがあります. 0023 PowerSORTの動作に必要な領域を確保できません. 0035 ファイル(%s1)からのレコード入力中にエラー(%s2)が発生しました. 0036 ファイル(%s1)へのレコード出力中にエラー(%s2)が発生しました. 0043 PowerSORTの処理で内部論理の矛盾を検出しました.(%s-%d) 0081 出力デバイス上のスペースが足りません. 0085 PowerSORTのローディング中にエラーが発生しました. 0090 漢字コードの変換処理(%s)でエラー(%d)が発生しました. 0102 インデックスの作成方法の指定に誤りがあります. 0105 インデックスの作成方法を指定していません. 0106 インデックスの長さの指定に誤りがあります. 0107 インデックスの並びの指定に誤りがあります. 0134 出力可能な最大ファイルサイズまたは最大レコード数の指定に誤りがあります. 0147 インデックスのデータ形式の指定に誤りがあります. 0153 bsrtopen関数で指定した%s1(%s2)に誤りがあります. 0157 分割出力で指定した%sの後の出力ファイルが足りません. 0158 指定したファイルシステムでは出力可能な最大ファイルサイズを指定できません. 参考 PowerSORTが出力するアプリケーションログでは、ソースに「PowerSORT」、イベントIDにメッセージ番号が設定されます。なお、メッ セージ番号が0001~0999までの場合、先頭から続く '0' は削除されます。 9.2 エラーコード BSORT関数を組み込んだユーザアプリケーション、またはPowerSORT OCXからPowerSORTを利用しているときにPowerSORTがエ ラーを検出した場合は、以下のようにエラーコードを通知します。 ・ ユーザアプリケーションからPowerSORTを利用している場合は、BSRTREC構造体のerrdetailにエラー詳細コードを設定します。ま た、富士通COBOLファイルシステム、Btrieveファイルシステム、および漢字ソートマージ機能使用時は、より詳細なコードをBSRTREC 構造体のsub_error_codeに設定します。 ・ PowerSORT OCXからPowerSORTを利用している場合は、ErrorDetailプロパティにエラー詳細コードを設定します。また、富士通 COBOLファイルシステム、Btrieveファイルシステム、および漢字ソートマージ機能使用時は、より詳細なコードをSubErrorCodeプロ パティに設定します。 - 278 - 9.2.1 BSORT関数のエラー詳細コード(errdetail) BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、PowerSORTがエラーを検出した場合、 BSRTREC構造体のerrdetailにエラー詳細コードを設定します。 errdetailに設定されるエラー詳細コード、エラーコードの定義値、およびエラー詳細コードの意味を以下に示します。 エラー詳細 コード エラーコードの定義値 意味 1 BSERR_VL bsrtopen関数、またはbsrtclse関数の第1引数 に誤りがあります。 2 BSERR_LOAD PowerSORTのローディングでエラーが発生 しました。 3 BSERR_DELETE PowerSORTを仮想記憶域から消去する処理 でエラーが発生しました。 5 BSERR_PRODUCT PowerSORTが正しくインストールされていま せん。 50 BSERR_MEMSIZE bsrtopen関数で指定したメモリサイズが小さ過 ぎます。 51 BSERR_PASSMEM bsrtopen関数で指定したメモリアドレスの領域 は、bsrtclse関数で環境の消去がされていま せん。 52 BSERR_ALCMEM PowerSORTの動作に必要な仮想記憶域を 確保できません。 53 BSERR_MEMZERO bsrtopen関数で仮想記憶域のアドレスを指定 していますが、仮想記憶域の大きさを指定し ていません。 54 BSERR_MANYFILE bsrtopen関数で指定した入力ファイルパス名 の数が多過ぎます。 55 BSERR_INFILETAB bsrtopen関数で指定した入力ファイル名テー ブルに誤りがあります。 bsrtopen関数で指定したBSRTPRIM情報に 誤りがあります。 ・ bsrtopen関数でマージ機能を指定してい ますが、ファイル数、またはストリング数の 指定がありません。 56 BSERR_BSRTPRIM ・ 入力ストリング数がBSRTFILEの指定と異 なります。 ・ 入力ファイルのレコード形式と BSRTPRIMで指定したレコード形式が異 なります。 排他関係にある機能を指定しました。 57 ・ サプレス機能、レコード集約機能 BSERR_EXCLUSIVE ・ ソート機能、マージ機能、コピー機能 キーフィールドの指定に誤りがあります。 ・ キーフィールドがレコードの外を指してい 59 ます。 BSERR_KEYTAB ・ キーフィールドのデータ形式を認識でき ません。 - 279 - エラー詳細 コード エラーコードの定義値 意味 ・ キーフィールド長が各データ形式のサ ポート範囲外です。 ・ オプションの指定に誤りがあります。 集約フィールドの指定に誤りがあります。 ・ 集約フィールドの数を指定していません。 ・ 集約フィールドがレコードの外を指してい 60 ます。 BSERR_SUMTAB ・ 集約フィールドのデータ形式を認識でき ません。 ・ 集約フィールド長がサポート範囲外で す。 61 BSERR_DUPKEY キーフィールドと集約フィールド、または集約 フィールド同士が重なっています。 62 BSERR_UNSUPPORT 未サポート機能を指定しています。 63 BSERR_SELTAB 選択フィールドの指定に誤りがあります。 64 BSERR_RECONTAB 再編成フィールドの指定に誤りがあります。 65 BSERR_FILESYS ファイルシステムの指定に誤りがあります。ま たは、PowerSORTのファイルアクセスライブラ リがローディングできません。 選択フィールドの指定に誤りがあります。 ・ 可変長のレコード入力中に、選択フィー 66 ルドより短いレコードが入力されました。 BSERR_SELSHRTREC ・ テキストファイルのレコード入力中に、選 択フィールドを含まないレコードが入力さ れました。 再編成フィールドの指定に誤りがあります。 ・ 可変長のレコード入力中に、再編成フィー 67 ルドより短いレコードが入力されました。 BSERR_RCONSHRTREC ・ テキストファイルのレコード入力中に、再 編成フィールドを含まないレコードが入力 されました。 68 BSERR_OUTFILETAB 出力ファイルテーブルに誤りがあります。 69 BSERR_BSRTOPT bsrtopen関数で指定したBSRTOPT構造体に 誤りがあります。 100 BSERR_NOOPEN bsrtopen関数を呼び出す前に、bsrtput関数、 bsrtget関数、またはbsrtmrge関数を使用しま した。 bsrtput関数の使用方法に誤りがあります。 ・ bsrtopen関数でファイルからレコードを入 101 力するよう指定しているときに、bsrtput関 数を使用しました。 BSERR_BSRTPUT ・ レコードの受渡しが完了した後に、bsrtput 関数を使用しました。 - 280 - エラー詳細 コード エラーコードの定義値 意味 ・ マージ処理を指定しているときに、bsrtput 関数を使用しました。 bsrtget関数の使用方法に誤りがあります。 ・ bsrtopen関数でファイルにレコードを出力 するよう指定しているときに、bsrtget関数 を使用しました。 102 ・ bsrtput関数によるレコードの受渡しが完 BSERR_BSRTGET 了する前に、bsrtget関数を使用しました。 ・ bsrtget関数ですべてのレコードを出力し た後に、bsrtget関数を使用しました。 ・ マージ処理を指定しているときに、bsrtget 関数を使用しました。 bsrtmrge関数の使用方法に誤りがあります。 ・ bsrtopen関数でファイルからレコードを入 力して結果をファイルに出力するよう指定 しているときに、bsrtmrge関数を使用しま した。 103 ・ bsrtmrge関数ですべてのレコードを出力 BSERR_BSRTMRGE した後に、bsrtmrge関数を使用しました。 ・ ソート処理を指定しているときに、bsrtmrge 関数を使用しました。 ・ bsrtopen関数で指定したストリング番号よ り大きい値を、bsrtmrge関数のストリング 番号に指定しました。 104 BSERR_BSRTCLSE 出力処理の途中でbsrtclse関数を呼び出しま した。 110 BSERR_NORECADR レコードのアドレスが設定されていません。 111 BSERR_RECLEN レコード長に誤りがあります。 114 BSERR_NOTORDER マージ処理の入力ストリングが並んでいませ ん。 115 BSERR_OVERFLOW レコード集約処理でオーバフローが発生しま した。 集約フィールドの指定に誤りがあります。 ・ 可変長のレコード入力中に、集約フィー 116 ルドを含まない短いレコードが入力され たため、レコード集約処理を中止します。 BSERR_SUMSHRTREC ・ テキストファイルのレコード入力中に、集 約フィールドを含まないレコードが入力さ れたため、レコード集約処理を中止しま す。 117 BSERR_NONLF テキストファイルでレコードの終りに改行文字 がありません。 118 BSERR_EXTSHRTREC テキストファイルのレコード入力中に、キー フィールドを含まないレコードが入力されまし た。 - 281 - エラー詳細 コード エラーコードの定義値 意味 119 BSERR_SUMFIELD テキストファイルのレコード集約処理中に、 フィールド内に不適切なコードが発見された ため、レコード集約処理を中止します。 200 BSERR_READFILE ファイルからのレコード読込み中に、エラーが 発生しました。 201 BSERR_WRITEFILE ファイルへのレコード書込み中に、エラーが 発生しました。 202 BSERR_FILEATTR ファイルの属性に誤りがあります。または、ファ イル属性の取得に失敗しました。 203 BSERR_TEMPATTR 一時ファイルの属性に誤りがあります。また は、ファイル属性の取得に失敗しました。 ファイルの形式に誤りがあります。 ・ 通常ファイルと順ファイルを混在して指定 しました。 204 BSERR_FILEFORMAT ・ 相対ファイル、または索引ファイルを指定 しました。 ・ メッセージファイルに通常ファイル以外を 指定しました。 ファイルパス名の指定に重複があります。 ・ 入力ファイルと出力ファイルに同じファイ ルを指定しました。 205 BSERR_SAMEFILE ・ 入力ファイルとメッセージファイルに同じ ファイルを指定しました。 ・ 出力ファイルとメッセージファイルに同じ ファイルを指定しました。 レコード形式に誤りがあります。 ・ 固定長ファイルと可変長ファイルを混在 206 して指定しています。 BSERR_RECFORM ・ 入力と出力のレコード形式が異なってい ます。 レコード長に誤りがあります。 ・ 可変長レコード形式のファイルを指定し 207 たときは、bsrtopen関数で指定した長さよ りファイル属性のレコード長の方が長い 場合に発生します。 BSERR_FILERECLEN ・ 固定長レコード形式のファイルを指定し たときは、bsrtopen関数で指定した長さと ファイル属性の長さが異なる場合に発生 します。 208 BSERR_FILEOPEN ファイルのオープンでエラーが発生しました。 209 BSERR_OPENMAX プロセス内、またはシステム内でオープン中 のファイルが多過ぎます。または、必要とする 一時ファイルの数が多過ぎます。 210 BSERR_FILECLOSE ファイルのクローズでエラーが発生しました。 - 282 - エラー詳細 コード エラーコードの定義値 意味 211 BSERR_FILEIO 媒体障害、またはソフト障害によるデータ破 壊が発生しました。 212 BSERR_TEMPSPACE 一時ファイルの容量が足りません。 213 BSERR_INCORE インコアソートできません。 214 BSERR_TEMPCREAT 一時ファイルの生成ができません。 215 BSERR_FILENONE 入力、または出力に指定したファイルがあり ません。 216 BSERR_PERMIFILE 入力ファイルに指定したファイルには、参照 許可がありません。 217 BSERR_PERMOFILE 出力ファイルに指定したファイルには、書込 許可がありません。 218 BSERR_PERMMFILE メッセージファイルに指定したファイルには、 書込許可がありません。 219 BSERR_PERMTFILE 一時ファイルに指定したファイルには、参照 許可、または書込許可がありません。 220 BSERR_MSGSPACE メッセージファイルの容量が足りません。メッ セージファイルへの出力を中断します。 221 BSERR_EXTRECLEN bsrtopen関数で指定したレコード長に誤りが あります。 222 BSERR_STRFILEREC 入力に通常ファイルを指定していますが、通 常ファイルを指定した場合は、レコード長の 省略はできません。 223 BSERR_CLSEARG bsrtclse関数の引数に誤りがあります。 224 BSERR_WRITETEMP 一時ファイルへの書込み中にエラーが発生 しました。 225 BSERR_READTEMP 一時ファイルからの読込み中にエラーが発生 しました。 226 BSERR_ENVAR 環境変数の設定に誤りがあります。 230 BSERR_EUC キーフィールド、または選択フィールドに判別 不可能なコードがあります。 231 BSERR_COBOL85 ファイルシステムのエラーが発生しました。ま たは、指定したファイルシステムのライブラリ がありません。 232 BSERR_SYMLINK パス名のチェック中に見つかったシンボリック リンクの数がMAXSYMLINKSを超えました。 233 BSERR_NAMELONG ファイルパス名が長過ぎます。 234 BSERR_NOTDIR パスプレフィックスの構成要素にフォルダで ないものがあります。 235 BSERR_ISDIR 指定したパスはフォルダです。 236 BSERR_OUTNOSPC 出力デバイス上のスペースが足りません。 237 BSERR_FILEBIG ファイルサイズがプロセスの限度、または最 大ファイルサイズを超えました。 238 BSERR_LIBC システムコール、またはライブラリ関数でエ ラーが発生しました。 - 283 - エラー詳細 コード エラーコードの定義値 意味 250 BSERR_LOGICAL PowerSORTの処理に誤りがあります。 251 BSERR_ALREADY_EXISTS 既に存在しているファイルを作成しようとしま した。 252 BSERR_BAD_DEVICE 指定されたデバイス名が無効です。 253 BSERR_IN_BAD_DEVICE 指定された入力ファイルのデバイス名が無効 です。 254 BSERR_OUT_BAD_DEVICE 指定された出力ファイルのデバイス名が無効 です。 255 BSERR_BAD_PATHNAME 指定されたパス名が無効です。 256 BSERR_IN_BAD_PATHNAME 指定された入力ファイルのパス名が無効で す。 257 BSERR_OUT_BAD_PATHNAME 指定された出力ファイルのパス名が無効で す。 258 BSERR_BAD_UNIT 指定されたデバイスを見つけることができま せん。 259 BSERR_IN_BAD_UNIT 指定された入力ファイルのデバイスを見つけ ることができません。 260 BSERR_OUT_BAD_UNIT 指定された出力ファイルのデバイスを見つけ ることができません。 261 BSERR_BUFFER_OVERFLOW ファイル名が長過ぎます。 262 BSERR_IN_BUFFER_OVERFLOW 入力ファイル名が長過ぎます。 263 BSERR_OUT_BUFFER_OVERFLOW 出力ファイル名が長過ぎます。 264 BSERR_CANNOT_MAKE フォルダ、またはファイルを作成できません。 265 BSERR_IN_CANNOT_MAKE 入力ファイルとして指定されたフォルダ、また はファイルを作成できません。 266 BSERR_OUT_CANNOT_MAKE 出力ファイルとして指定されたフォルダ、また はファイルを作成できません。 267 BSERR_CONNECTION_UNAVAIL デバイスへの接続は以前から記憶されている 接続ですが現在は接続されていません。 268 BSERR_IN_CONNECTION_UNAVAIL 入力ファイルのデバイスへの接続は以前から 記憶されている接続ですが現在は接続され ていません。 269 BSERR_OUT_CONNECTION_UNAVAIL 出力ファイルのデバイスへの接続は以前から 記憶されている接続ですが現在は接続され ていません。 270 BSERR_DIR_NOT_ROOT 指定されたフォルダは有効なフォルダではあ りません。 271 BSERR_IN_DIR_NOT_ROOT 入力ファイルとして指定されたフォルダは有 効なフォルダではありません。 272 BSERR_OUT_DIR_NOT_ROOT 出力ファイルとして指定されたフォルダは有 効なフォルダではありません。 273 BSERR_DIRECTORY フォルダ名が無効です。 274 BSERR_IN_DIRECTORY 入力ファイルとして指定されたフォルダ名が 無効です。 - 284 - エラー詳細 コード エラーコードの定義値 意味 275 BSERR_OUT_DIRECTORY 出力ファイルとして指定されたフォルダ名が 無効です。 276 BSERR_DISK_CORRUPT ディスク装置が壊れていて読み取ることがで きません。 277 BSERR_DISK_FULL ディスク上に充分な容量がありません。 278 BSERR_DISK_OPERATION_FAILED ハードディスクへアクセス中にディスク操作に 失敗し、再試行も失敗しました。 279 BSERR_DISK_RECALIBRATE_FAILED ハードディスクへアクセス中に再校正処理に 失敗し、再試行も失敗しました。 280 BSERR_DISK_RESET_FAILED ハードディスクへのアクセス中にディスクコン トローラのリセットが必要になりましたが、失敗 しました。 281 BSERR_DRIVE_LOCKED ディスクは使用中か、または他のプロセスが ロックしています。 282 BSERR_IN_DRIVE_LOCKED 入力ファイルとして指定されたディスクは使用 中か、または他のプロセスがロックしていま す。 283 BSERR_OUT_DRIVE_LOCKED 出力ファイルとして指定されたディスクは使用 中か、または他のプロセスがロックしていま す。 284 BSERR_EXTENDED_ERROR 拡張エラーが発生しました。 285 BSERR_FILE_CORRUPT ファイル、またはフォルダが壊れており、読み 取ることができません。 286 BSERR_FILE_INVALID ファイルのボリュームが外部的に交換されて おり、オープンされているファイルは有効でな くなりました。 287 BSERR_IN_FILE_INVALID 入力ファイルとして指定されたボリュームが外 部的に交換されており、オープンされている ファイルは有効でなくなりました。 288 BSERR_OUT_FILE_INVALID 出力ファイルとして指定されたボリュームが外 部的に交換されており、オープンされている ファイルは有効でなくなりました。 289 BSERR_FILE_NOT_FOUND 指定されたファイルを見つけることができませ ん。 290 BSERR_IN_FILE_NOT_FOUND 指定された入力ファイルを見つけることがで きません。 291 BSERR_OUT_FILE_NOT_FOUND 指定された出力ファイルを見つけることがで きません。 292 BSERR_FILENAME_EXCED_RANGE ファイル名、または拡張子が長過ぎます。 293 BSERR_IN_FILENAME_EXCED_RANGE 入力ファイル名、または拡張子が長過ぎま す。 294 BSERR_OUT_FILENAME_EXCED_RANGE 出力ファイル名、または拡張子が長過ぎま す。 295 BSERR_HANDLE_DISK_FULL ディスクがいっぱいです。 296 BSERR_INVALID_DRIVE 指定されたドライブを見つけることができませ ん。 - 285 - エラー詳細 コード エラーコードの定義値 意味 297 BSERR_IN_INVALID_DRIVE 指定された入力ファイルのドライブを見つけ ることができません。 298 BSERR_OUT_INVALID_DRIVE 指定された出力ファイルのドライブを見つけ ることができません。 299 BSERR_INVALID_NAME ファイル名、フォルダ名、またはボリュームラ ベルが構文上正しくありません。 300 BSERR_IN_INVALID_NAME 入力ファイルのファイル名、フォルダ名、また はボリュームラベルが構文上正しくありませ ん。 301 BSERR_OUT_INVALID_NAME 出力ファイルのファイル名、フォルダ名、また はボリュームラベルが構文上正しくありませ ん。 302 BSERR_IO_DEVICE I/Oデバイスエラーのため要求を実行できま せんでした。 303 BSERR_LOCK_VIOLATION 他のプロセスがファイルの一部分を既にロッ クしているため、プロセスはそのファイルにア クセスできません。 304 BSERR_IN_LOCK_VIOLATION 他のプロセスが入力ファイルの一部分を既に ロックしているため、プロセスはそのファイル にアクセスできません。 305 BSERR_OUT_LOCK_VIOLATION 他のプロセスが出力ファイルの一部分を既に ロックしているため、プロセスはそのファイル にアクセスできません。 306 BSERR_NEGATIVE_SEEK ファイルの先頭よりも前の位置にファイルポイ ンタを移動しようとしました。 307 BSERR_NET_WRITE_FAULT 書込み違反がネットワーク上で発生しました。 308 BSERR_NETWORK_ACCESS_DENIED ネットワークアクセスが拒否されました。 309 BSERR_IN_NETWORK_ACCESS_DENIED 入力ファイルのネットワークアクセスが拒否さ れました。 310 BSERR_OUT_NETWORK_ACCESS_DENIED 出力ファイルのネットワークアクセスが拒否さ れました。 311 BSERR_NETWORK_BUSY ネットワークはビジー状態です。 312 BSERR_NO_MORE_FILE ファイルはこれ以上ありません。 313 BSERR_NO_NETWORK ネットワークが存在しないか、または開始され ていません。 314 BSERR_IN_NO_NETWORK 入力ファイルのネットワークが存在しないか、 または開始されていません。 315 BSERR_OUT_NO_NETWORK 出力ファイルのネットワークが存在しないか、 または開始されていません。 316 BSERR_NO_SUCH_ALIAS 指定されたエイリアスが存在しません。 317 BSERR_IN_NO_SUCH_ALIAS 指定された入力ファイルのエイリアスが存在 しません。 318 BSERR_OUT_NO_SUCH_ALIAS 指定された出力ファイルのエイリアスが存在 しません。 319 BSERR_NO_VOLUME_LABEL ディスクにはボリュームラベルがありません。 - 286 - エラー詳細 コード エラーコードの定義値 意味 320 BSERR_IN_NO_VOLUME_LABEL 入力ファイルのディスクにはボリュームラベル がありません。 321 BSERR_OUT_NO_VOLUME_LABEL 出力ファイルのディスクにはボリュームラベル がありません。 322 BSERR_NOT_CONNECTED 指定されたファイルのネットワーク接続は存在 しません。 323 BSERR_IN_NOT_CONNECTED 入力ファイルとして指定されたファイルに対す るネットワーク接続は存在しません。 324 BSERR_OUT_NOT_CONNECTED 出力ファイルとして指定されたファイルに対す るネットワーク接続は存在しません。 325 BSERR_NOT_DOS_DISK 指定されたディスクにはアクセスできません。 326 BSERR_IN_NOT_DOS_DISK 指定された入力ファイルのディスクにはアクセ スできません。 327 BSERR_OUT_NOT_DOS_DISK 指定された出力ファイルのディスクにはアクセ スできません。 328 BSERR_NOT_READY ドライブの準備ができていません。 329 BSERR_IN_NOT_READY 入力ファイルとして指定されたドライブの準備 ができていません。 330 BSERR_OUT_NOT_READY 出力ファイルとして指定されたドライブの準備 ができていません。 331 BSERR_NOT_SUPPORTED ネットワーク要求がサポートされていません。 332 BSERR_IN_NOT_SUPPORTED 入力ファイルとして指定されたファイルに対す るネットワーク要求がサポートされていませ ん。 333 BSERR_OUT_NOT_SUPPORTED 出力ファイルとして指定されたファイルに対す るネットワーク要求がサポートされていませ ん。 334 BSERR_OPEN_FAILED 指定されたデバイス、またはファイルをオープ ンできません。 335 BSERR_IN_OPEN_FAILED 入力ファイルとして指定されたデバイス、また はファイルをオープンできません。 336 BSERR_OUT_OPEN_FAILED 出力ファイルとして指定されたデバイス、また はファイルをオープンできません。 337 BSERR_PATH_BUSY この時点では、指定されたパスは使えませ ん。 338 BSERR_IN_PATH_BUSY この時点では、指定された入力ファイルのパ スは使えません。 339 BSERR_OUT_PATH_BUSY この時点では、指定された出力ファイルのパ スは使えません。 340 BSERR_PATH_NOT_FOUND 指定されたパスを見つけることができません。 341 BSERR_IN_PATH_NOT_FOUND 指定された入力ファイルのパスを見つけるこ とができません。 342 BSERR_OUT_PATH_NOT_FOUND 指定された出力ファイルのパスを見つけるこ とができません。 - 287 - エラー詳細 コード エラーコードの定義値 意味 343 BSERR_PRIVILEGE_NOT_HELD クライアントは必要な特権を保持していませ ん。 344 BSERR_IN_PRIVILEGE_NOT_HELD 入力ファイルに指定されたファイルに対して、 クライアントは必要な特権を保持していませ ん。 345 BSERR_OUT_PRIVILEGE_NOT_HELD 出力ファイルに指定されたファイルに対して、 クライアントは必要な特権を保持していませ ん。 346 BSERR_READ_FAULT システムは指定されたデバイスから読み取る ことができません。 347 BSERR_REM_NET_LIST リモートコンピュータが利用できません。 348 BSERR_REQ_NOT_ACCEP ネットワーク要求が受け入れられませんでし た。 349 BSERR_SECTOR_NOT_FOUND ドライブは、要求されたセクタを見つけること ができません。 350 BSERR_RD_SECTOR_NOT_FOUND ドライブは、読込み要求されたセクタを見つ けることができません。 351 BSERR_WT_SECTOR_NOT_FOUND ドライブは、書込み要求されたセクタを見つ けることができません。 352 BSERR_SEEK ドライブは、ディスク上の指定された領域やト ラックの位置を特定することができません。 353 BSERR_RD_SEEK 読込み処理中、ディスク上の指定された領域 やトラックの位置を特定することができません でした。 354 BSERR_WT_SEEK 書込み処理中、ディスク上の指定された領域 やトラックの位置を特定することができません でした。 355 BSERR_SEEK_ON_DEVICE 指定されたデバイス、またはファイルにファイ ルポインタを設定することができません。 356 BSERR_RD_SEEK_ON_DEVICE 指定された入力ファイルのデバイス、または ファイルにファイルポインタを設定することが できません。 357 BSERR_WT_SEEK_ON_DEVICE 指定された出力ファイルのデバイス、または ファイルにファイルポインタを設定することが できません。 358 BSERR_SHARING_PAUSED リモートサーバは、一時停止状態、または、 開始状態です。 359 BSERR_SHARING_VIOLATION 他のプロセスがファイルを使用しているため、 プロセスはそのファイルにアクセスできませ ん。 360 BSERR_IN_SHARING_VIOLATION 他のプロセスが入力ファイルを使用している ため、プロセスはそのファイルにアクセスでき ません。 361 BSERR_OUT_SHARING_VIOLATION 他のプロセスが出力ファイルを使用している ため、プロセスはそのファイルにアクセスでき ません。 362 BSERR_IN_TOO_MANY_OPEN_FILES 入力ファイルをオープンできません。 - 288 - エラー詳細 コード エラーコードの定義値 意味 363 BSERR_OUT_TOO_MANY_OPEN_FILES 出力ファイルをオープンできません。 364 BSERR_UNRECOGNIZED_MEDIA ディスクメディアが認識されていません。フォー マットされていない可能性があります。 365 BSERR_IN_UNRECOGNIZED_MEDIA 入力ファイルとして指定されたディスクメディ アが認識されていません。フォーマットされて いない可能性があります。 366 BSERR_OUT_UNRECOGNIZED_MEDIA 出力ファイルとして指定されたディスクメディ アが認識されていません。フォーマットされて いない可能性があります。 367 BSERR_UNRECOGNIZED_VOLUME ボリュームは、認識されたファイルシステムを 持っていません。必要なファイルシステムドラ イバがすべてロードされ、ボリュームが壊れて いないかどうか確認してください。 368 BSERR_WRITE_FAULT 指定されたデバイスに書き込むことができま せん。 369 BSERR_WRITE_PROTECT メディアは書込み禁止です。 370 BSERR_ACCESS_DENIED アクセスが拒否されました。 371 BSERR_IN_ACCESS_DENIED 入力ファイルのアクセスが拒否されました。 372 BSERR_OUT_ACCESS_DENIED 出力ファイルのアクセスが拒否されました。 600 BSERR_KANJI 漢字ソートマージ機能でエラーが発生しまし た。 601 BSERR_ADJUST 漢字属性の取得処理でエラーが発生しまし た。 602 BSERR_ICONV 文字コード変換処理でエラーが発生しまし た。 623 BSERR_INVALID_FRIGANA ふりがなフィールドの指定に誤りがあります。 9.2.2 富士通COBOLファイルに関するエラーコード BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、富士通COBOLファイルシステムがエラーを 検出した場合、富士通COBOLファイルシステムが通知するエラーコードをBSRTREC構造体のsub_error_codeに設定します。 富士通COBOLファイルシステムのエラーコードは、1~4バイトの16進数で通知されます。最終1バイトがファイルステータス値、それ以 前の値は詳細コードです。エラーコードは後ろから1バイトずつ参照してください。なお、富士通COBOLファイルシステムのエラーコー ドの詳細については、お使いの富士通COBOLのマニュアルを参照してください。 9.2.3 Btrieveファイルに関するエラーコード BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、Btrieveファイルシステムがエラーを検出した 場合、Btrieveファイルシステムが通知するエラーコードをBSRTREC構造体のsub_error_codeに設定します。 Btrieveファイルシステムのエラーコードの詳細については、お使いのBtrieve製品のマニュアルを参照してください。 9.2.4 ADJUSTに関するエラーコード BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、漢字ソートマージ機能でADJUSTプログラム がエラーを検出した場合、ADJUSTプログラムが通知するエラー詳細コードをBSRTREC構造体のsub_error_codeに設定します。 ADJUSTプログラムが通知するエラー詳細コード(10進数)を以下に示します。 - 289 - エラー詳細 コード 意味 100 ファイルは既にオープン済みです。 102 利用者定義情報体がありません。 103 属性辞書のオープンエラーが発生しました。 104 管理情報のオープンエラーが発生しました。 105 利用者定義情報のオープンエラーが発生しました。 106 領域不足が発生しました。 201 ファイルは既にクローズ済みです。 202 属性辞書のクローズエラーが発生しました。 203 管理情報のクローズエラーが発生しました。 204 利用者定義情報のクローズエラーが発生しました。 301 コードエラーが発生しました。 302 辞書ファイルが未オープンです。 303 属性情報がありません。 304 属性辞書のI/Oエラーが発生しました。 305 管理情報のI/Oエラーが発生しました。 306 利用者定義情報のI/Oエラーが発生しました。 9.2.5 ICONVに関するエラーコード BSORT関数を組み込んだユーザアプリケーションからPowerSORTを利用しているときに、漢字ソートマージ機能でICONVプログラム がエラーを検出した場合、ICONVプログラムが通知するエラー詳細コードをBSRTREC構造体のsub_error_codeに設定します。 ICONVプログラムのエラー詳細コード(10進数)を以下に示します。 エラー詳細 コード 意味 2 利用者定義コード変換表のファイルがオープンできませんでした。 7 変換元バッファ領域が小さいため変換処理を中断しました。 8 サポートしていない利用者定義コード変換表の形式が指定されました。 12 領域不足が発生しました。 22 変換元文字列の終りに、不完全なコード、またはシフトコードが現れたため変換処理を中断しまし た。 42 変換元文字列の中に変換元文字コードとして存在しないコードがあったため変換処理を中断しま した。 50 利用者固有のコード変換機能で、未定義文字での復帰指示、または利用者定義コードが現れた ため変換処理を中断しました。 54 利用者定義コード変換処理で、コード変換表内の変換先文字コード属性値が正しくありません。 61 利用者定義コード変換表のアドレスが指定されていません。 9.2.6 OCX使用時のエラー詳細コード PowerSORT OCXからPowerSORTを利用しているときに、PowerSORTがエラーを検出した場合、ErrorCodeプロパティにPowerSORT の復帰コードを設定します。また、ErrorDetailプロパティにPowerSORTのエラー詳細コードを設定します。 - 290 - 注意 PowerSORTの復帰コード(ErrorCodeプロパティ)の値により、ErrorDetailプロパティの設定値の意味は異なります。 9.2.6.1 ErrorCodeプロパティが0、-1、-2のときのエラー詳細コード ErrorCodeプロパティが、0、-1、または-2の場合のErrorDetailプロパティの設定値の意味は以下のとおりです。 設定値 意味 PowerSORTで使用するダイナミックリンクライブラリ(DLL)がローディングできません。以下のような 原因が考えられます。 ・ 漢字ソートマージ機能を指定していますが、ADJUSTがインストールされていません。 2 ・ 富士通COBOLファイルを指定していますが、富士通COBOLファイルシステムがインストール されていません。 ・ Btrieveファイルを指定していますが、Btrieveファイルシステムがインストールされていません。 50 指定したメモリサイズが小さすぎます。 52 PowerSORTの動作に必要なメモリを確保できませんでした。 設定された情報に以下のような誤りがあります。 ・ 実際の入力ファイルのレコード形式が指定されたレコード形式と異なります。 ・ 入力ファイルのファイル種別にバイナリファイルを指定していますが、バイナリファイルのファイ 56 ルサイズがレコード長の倍数ではありません。 ・ マージ、およびコピー機能で、上書き指定がされています。 ・ コピー機能で、降順が指定されています。 ・ コピー機能で、サプレス機能、またはレコード集約機能が指定されています。 排他関係にある機能を指定しました。 57 ・ サプレス機能、レコード集約機能 ・ ソート機能、マージ機能、コピー機能 キーフィールドの指定に誤りがあります。 ・ キーフィールドがレコードの外を指しています。 59 ・ キーフィールドで指定されたデータ形式を認識できません。 ・ キーフィールドで指定されたキーの長さがサポート範囲外です。 集約フィールドの指定に誤りがあります。 ・ 集約フィールドがレコードの外を指しています。 60 ・ 集約フィールドで指定されたデータ形式を認識できません。 ・ 集約フィールドで指定されたキーの長さがサポート範囲外です。 61 キーフィールドと集約フィールド、または集約フィールド同士が重なっています。 62 サポートされていない機能を指定しています。 63 選択フィールドに誤りがあります。 64 再編成フィールドに誤りがあります。 65 ファイルシステムの指定に誤りがあります。 66 選択フィールドが存在しないレコードが入力されました。 67 再編成フィールドが存在しないレコードが入力されました。 - 291 - 設定値 意味 111 レコード長に誤りがあります。 114 マージ処理の入力ファイルが並んでいません。 115 レコード集約処理でオーバフローが発生しました。 116 可変長レコード、またはテキストファイルのレコード入力中、集約フィールドが存在しないレコード が入力されました。集約処理を中止し、処理は継続します。 117 テキストファイルのレコードでレコードの終りに改行文字がありません。 118 テキストファイルのレコード入力中、キーフィールドを含まないレコードが入力されました。 200 ファイルからのレコード読込み中にエラーが発生しました。 201 ファイルへのレコード書込み中にエラーが発生しました。 202 ファイルの属性に誤りがあります。または、ファイル属性の取得に失敗しました。 203 一時ファイルの属性に誤りがあります。または、ファイル属性の取得に失敗しました。 ファイルの形式に誤りがあります。 204 ・ 組み合わせてはいけないファイル形式を指定しました。ファイル形式の組合せについては、 入力と出力のファイル種別の組合せについてを参照してください。 ・ サポート外のファイル形式を指定しました。 205 ファイルパス名の指定に重複があります。または、入力ファイルと出力ファイルに同じファイルを指 定しました。 レコード形式に誤りがあります。 206 ・ 固定長レコード形式のファイルと可変長レコード形式のファイルを混在して指定しています。 ・ 入力と出力のレコード形式が異なっています。 レコード長に誤りがあります。 ・ 可変長レコード形式のファイルを指定したときは、MaxRecordLengthプロパティで指定した長 207 さよりファイル属性のレコード長の方が長い場合に発生します。 ・ 固定長レコード形式のファイルを指定したときは、MaxRecordLengthプロパティで指定した長 さとファイル属性の長さが異なる場合に発生します。 208 ファイルのオープンでエラーが発生しました。 209 プロセス内、またはシステム内でオープン中のファイルが多過ぎます。または、必要とする一時ファ イルの数が多過ぎます。 210 ファイルのクローズでエラーが発生しました。 211 媒体障害、またはソフト障害によるデータ破壊が発生しました。 212 一時ファイルの容量が足りません。 213 インコアソート(メモリ内だけで行うソート)できません。 214 一時ファイルの生成ができません。または、指定された一時ファイルのフォルダ名や属性に誤りが あり、一時ファイルの生成ができません。 215 入力に指定したファイルがありません。 216 入力に指定したファイルには参照許可がありません。 217 出力に指定したファイルには書込み許可がありません。 219 一時ファイルに指定したファイルには参照許可、または書込み許可がありません。 222 レコード長の省略はできません。 224 一時ファイルへの書込み中にエラーが発生しました。 225 一時ファイルからの読込み中にエラーが発生しました。 - 292 - 設定値 意味 226 環境変数の設定に誤りがあります。 230 キーフィールドの内部に判別不可能なコードがあります。 COBOLファイルシステムでエラーが発生しました。 231 ・ COBOLランタイムライブラリが正しくインストールされていません。 ・ 富士通COBOLファイルシステムの場合、レジストリ中のセクション“Product_Directory”の設定 に誤りがあります。 233 ファイルパス名が長過ぎます。 234 パスプレフィックスの構成要素にフォルダでないものがあります。 235 指定したファイル名はフォルダです。 236 出力デバイス上のスペースが足りません。 237 ファイルのサイズがプロセスの限度、または最大ファイルサイズを超えました。 238 システムコール、またはライブラリ関数でエラーが発生しました。 240 レコード比較領域が確保できなかったため、処理を中断しました。 241 レコード集約処理中に数値として認識されない値が検出されました。 242 Btrieveファイルシステムでエラーを検出しました。SubErrorCodeプロパティにエラーコードが設定 されています。Btrieveのマニュアルを参照してください。 243 COBOLファイルシステム(索引ファイル)でエラーを検出しました。 250 PowerSORTの処理に誤りがあります。 251 既に存在しているファイルを作成しようとしました。 252 指定されたデバイス名が無効です。 253 指定された入力ファイルのデバイス名が無効です。 254 指定された出力ファイルのデバイス名が無効です。 255 指定されたパス名が無効です。 256 指定された入力ファイルのパス名が無効です。 257 指定された出力ファイルのパス名が無効です。 258 指定されたデバイスを見つけることができません。 259 指定された入力ファイルのデバイスを見つけることができません。 260 指定された出力ファイルのデバイスを見つけることができません。 261 ファイル名が長過ぎます。 262 入力ファイル名が長過ぎます。 263 出力ファイル名が長過ぎます。 264 フォルダ、またはファイルを作成できません。 265 入力ファイルとして指定されたフォルダ、またはファイルを作成できません。 266 出力ファイルとして指定されたフォルダ、またはファイルを作成できません。 267 デバイスへの接続は以前から記憶されている接続ですが現在は接続されていません。 268 入力ファイルのデバイスへの接続は以前から記憶されている接続ですが現在は接続されていま せん。 269 出力ファイルのデバイスへの接続は以前から記憶されている接続ですが現在は接続されていま せん。 270 指定されたフォルダは有効なフォルダではありません。 - 293 - 設定値 意味 271 入力ファイルとして指定されたフォルダは有効なフォルダではありません。 272 出力ファイルとして指定されたフォルダは有効なフォルダではありません。 273 フォルダ名が無効です。 274 入力ファイルとして指定されたフォルダ名が無効です。 275 出力ファイルとして指定されたフォルダ名が無効です。 276 ディスク装置が壊れていて読み取ることができません。 277 ディスク上に充分な容量がありません。 278 ハードディスクへアクセス中にディスク操作に失敗し、再試行も失敗しました。 279 ハードディスクへアクセス中に再キャリブレート操作に失敗し、再試行にも失敗しました。 280 ハードディスクへのアクセス中にディスクコントローラのリセットが必要になりましたが、失敗しまし た。 281 ディスクは使用中か、または他のプロセスがロックしています。 282 入力ファイルとして指定されたディスクは使用中か、または他のプロセスがロックしています。 283 出力ファイルとして指定されたディスクは使用中か、または他のプロセスがロックしています。 284 拡張エラーが発生しました。 285 ファイル、またはフォルダが壊れており、読み取ることができません。 286 ファイルのボリュームが外部的に交換されており、オープンされているファイルは有効でなくなりま した。 287 入力ファイルとして指定されたボリュームが外部的に交換されており、オープンされているファイル は有効でなくなりました。 288 出力ファイルとして指定されたボリュームが外部的に交換されており、オープンされているファイル は有効でなくなりました。 289 指定されたファイルを見つけることができません。 290 指定された入力ファイルを見つけることができません。 291 指定された出力ファイルを見つけることができません。 292 ファイル名、または拡張子が長過ぎます。 293 入力ファイル名、または拡張子が長過ぎます。 294 出力ファイル名、または拡張子が長過ぎます。 295 ディスクがいっぱいです。 296 指定されたドライブを見つけることができません。 297 指定された入力ファイルのドライブを見つけることができません。 298 指定された出力ファイルのドライブを見つけることができません。 299 ファイル名、フォルダ名、またはボリュームラベルが構文上正しくありません。 300 入力ファイルのファイル名、フォルダ名、またはボリュームラベルが構文上正しくありません。 301 出力ファイルのファイル名、フォルダ名、またはボリュームラベルが構文上正しくありません。 302 I/Oデバイスエラーのため要求を実行できませんでした。 303 他のプロセスがファイルの一部分を既にロックしているため、プロセスはそのファイルにアクセスで きません。 304 他のプロセスが入力ファイルの一部分を既にロックしているため、プロセスはそのファイルにアクセ スできません。 - 294 - 設定値 意味 305 他のプロセスが出力ファイルの一部分を既にロックしているため、プロセスはそのファイルにアクセ スできません。 306 ファイルの先頭よりも前の位置にファイルポインタを移動しようとしました。 307 書込み違反がネットワーク上で発生しました。 308 ネットワークアクセスが拒否されました。 309 入力ファイルのネットワークアクセスが拒否されました。 310 出力ファイルのネットワークアクセスが拒否されました。 311 ネットワークはビジー状態です。 312 ファイルはこれ以上ありません。 313 ネットワークが存在しないか、または開始されていません。 314 入力ファイルのネットワークが存在しないか、または開始されていません。 315 出力ファイルのネットワークが存在しないか、または開始されていません。 316 指定されたエイリアスが存在しません。 317 指定された入力ファイルのエイリアスが存在しません。 318 指定された出力ファイルのエイリアスが存在しません。 319 ディスクにはボリュームラベルがありません。 320 入力ファイルのディスクにはボリュームラベルがありません。 321 出力ファイルのディスクにはボリュームラベルがありません。 322 指定されたファイルのネットワーク接続は存在しません。 323 入力ファイルとして指定されたファイルに対するネットワーク接続は存在しません。 324 出力ファイルとして指定されたファイルに対するネットワーク接続は存在しません。 325 指定されたディスクにはアクセスできません。 326 指定された入力ファイルのディスクにはアクセスできません。 327 指定された出力ファイルのディスクにはアクセスできません。 328 ドライブの準備ができていません。 329 入力ファイルとして指定されたドライブの準備ができていません。 330 出力ファイルとして指定されたドライブの準備ができていません。 331 ネットワーク要求がサポートされていません。 332 入力ファイルとして指定されたファイルに対するネットワーク要求がサポートされていません。 333 出力ファイルとして指定されたファイルに対するネットワーク要求がサポートされていません。 334 指定されたデバイス、またはファイルをオープンできません。 335 入力ファイルとして指定されたデバイス、またはファイルをオープンできません。 336 出力ファイルとして指定されたデバイス、またはファイルをオープンできません。 337 この時点では、指定されたパスは使えません。 338 この時点では、指定された入力ファイルのパスは使えません。 339 この時点では、指定された出力ファイルのパスは使えません。 340 指定されたパスを見つけることができません。 341 指定された入力ファイルのパスを見つけることができません。 342 指定された出力ファイルのパスを見つけることができません。 343 クライアントは必要な特権を保持していません。 - 295 - 設定値 意味 344 入力ファイルに指定されたファイルに対して、クライアントは必要な特権を保持していません。 345 出力ファイルに指定されたファイルに対して、クライアントは必要な特権を保持していません。 346 システムは指定されたデバイスから読み取ることができません。 347 リモートコンピュータが利用できません。 348 ネットワーク要求が受け入れられませんでした。 349 ドライブは、要求されたセクタを見つけることができません。 350 ドライブは、読込み要求されたセクタを見つけることができません。 351 ドライブは、書込み要求されたセクタを見つけることができません。 352 ドライブは、ディスク上の指定された領域やトラックの位置を特定することができません。 353 読込み処理中、ディスク上の指定された領域やトラックの位置を特定することができませんでした。 354 書込み処理中、ディスク上の指定された領域やトラックの位置を特定することができませんでした。 355 指定されたデバイス、またはファイルにファイルポインタを設定することができません。 356 指定された入力ファイルのデバイス、またはファイルにファイルポインタを設定することができませ ん。 357 指定された出力ファイルのデバイス、またはファイルにファイルポインタを設定することができませ ん。 358 リモートサーバは、一時停止状態、または開始状態です。 359 他のプロセスがファイルを使用しているため、プロセスはそのファイルにアクセスできません。 360 他のプロセスが入力ファイルを使用しているため、プロセスはそのファイルにアクセスできません。 361 他のプロセスが出力ファイルを使用しているため、プロセスはそのファイルにアクセスできません。 362 入力ファイルをオープンできません。 363 出力ファイルをオープンできません。 364 ディスクメディアが認識されていません。フォーマットされていない可能性があります。 365 入力ファイルとして指定されたディスクメディアが認識されていません。フォーマットされていない 可能性があります。 366 出力ファイルとして指定されたディスクメディアが認識されていません。フォーマットされていない 可能性があります。 367 ボリュームは、認識されたファイルシステムを持っていません。必要なファイルシステムドライバが すべてロードされ、ボリュームが壊れていないかどうか確認してください。 368 指定されたデバイスに書き込むことができません。 369 メディアは書込み禁止です。 370 アクセスが拒否されました。 371 入力ファイルのアクセスが拒否されました。 372 出力ファイルのアクセスが拒否されました。 600 漢字ソートマージ機能でエラーが発生しました。 601 漢字属性の取得処理でエラーが発生しました。SubErrorCodeプロパティにエラー詳細コードが設 定されています。対応するエラー詳細コードについては9.2.4 ADJUSTに関するエラーコードを参 照してください。 602 文字コード変換処理でエラーが発生しました。SubErrorCodeプロパティにエラー詳細コードが設 定されています。対応するエラー詳細コードについては9.2.5 ICONVに関するエラーコードを参 照してください。 623 ふりがなフィールドの指定に誤りがあります。 - 296 - 9.2.6.2 ErrorCodeプロパティが-3のときのエラー詳細コード ErrorCodeプロパティが-3の場合のErrorDetailプロパティの設定値の意味は次のとおりです。 設定値 意味 1 PowerSORT OLEカスタムコントロール解析処理で使用する領域の確保に失敗しました。 2 メモリサイズが不正です。(6.3.36 UsableMemorySizeプロパティ) 3 一時ファイルが作成できません。または、ファイル名とフォルダ名の指定が混在しています。(6.3.35 TempDirプロパティ) 4 処理指定に無効な値を指定しています。(6.3.9 DisposalNumberプロパティ) 5 入力ファイル名を指定してください。(6.3.20 InputFilesプロパティ) 6 入力ファイル形式に無効な値を指定しています。(6.3.21 InputFileTypeプロパティ) 7 出力ファイル名を指定してください。(6.3.28 OutputFileプロパティ) 8 出力ファイル種別に無効な値を指定しています。(6.3.29 OutputFileTypeプロパティ) 9 キーフィールドが長過ぎます。(6.3.23 KeyCmdStrプロパティ) 10 再編成自己既定値が指定した長さに収まりません。(6.3.30 RconCmdStrプロパティ) 11 富士通COBOL索引情報に誤りがあります。(6.3.16 FjcobPrimeKeyプロパティ、6.3.13 FjcobAlternateKeyプロパティ) 12 同値キーの扱い指定と集約指定の組合せに誤りがあります。(6.3.17 HandlingSameKeyプロパ ティ、6.3.34 SumCmdStrプロパティ) 13 同値キーの扱い指定に無効な値を指定しています。(6.3.17 HandlingSameKeyプロパティ) 14 照合順序に無効な値を指定しています。(6.3.6 CollationOrderプロパティ) 15 フィールドモードに無効な値を指定しています。(6.3.11 FieldDefinitionプロパティ) 16 レコード分離文字に無効な値を指定しています。(6.3.24 LineDelimiterプロパティ) 17 フィールド分離文字指定が長過ぎます。(6.3.12 FieldDelimiterプロパティ) 18 フィールド分離文字指定に誤りがあります。(6.3.12 FieldDelimiterプロパティ) 19 ファイルの上書き指定はソート処理だけ有効です。 20 一時ファイルフォルダ指定に誤りがあります。(6.3.35 TempDirプロパティ) 22 レコード読み飛ばし件数の指定に誤りがあります。(6.3.22 InputFilesSkiprecプロパティ) Btrieve関連情報に誤りがあります。(6.3.5 BtrieveInfileOwnerNameプロパティ、6.3.4 BtrieveIndexKeyプロパティ、6.3.3 BtrieveFileInfoプロパティ) 以下のような原因が考えられます。 ・ 出力ファイル種別がBtrieveで、BtrieveIndexKeyプロパティ、BtrieveFileInfoプロパティの双方 に情報がない場合 23 - 出力がBtrieveファイルのとき、BtrieveIndexKeyプロパティ、BtrieveFileInfoプロパティの指 定が必要です。 ・ キー長やプリアロケーションサイズなどにshort int型で表現できない値が指定されている場合 - Btrieve関連の指定値は、特に記述がない場合、short int型で表現できる範囲(0~65535) です。例外として、セグメント番号はlong型で表現できる範囲(0~4294967295)まで指定で きます。 24 InputDataCodeプロパティに無効な値を指定しています。(6.3.19 InputDataCodeプロパティ) 25 AlternateModeプロパティに無効な値を指定しています。(6.3.2 AlternateModeプロパティ) 26 テキストファイルのときはInputDataCodeプロパティにEBCDICを選択できません。(6.3.19 InputDataCodeプロパティ、6.3.21 InputFileTypeプロパティ) - 297 - 9.2.6.3 ErrorCodeプロパティが-4のときのエラー詳細コード ErrorCodeプロパティが-4のときは、PowerSORT OCXのエラーです。 本エラーが発生した場合は、ErrorDetailプロパティの設定値を当社サポート員、または販売元に通知し、調査を依頼してください。 - 298 - 付録A 使用例 A.1 bsortコマンドの使用例 代表的な機能を使ったbsortコマンドの使用例を示します。 ・ ソート処理の例 ・ マージ処理の例 ・ コピー処理の例 ・ レコード選択機能を使った例 ・ レコード再編成機能を使った例 ・ レコード集約機能を使った例 ・ サプレス機能を使った例 ・ 先入力先出力(FIFO)機能を使った例 ・ Btrieveファイルをソートする例 ・ テキストファイルをソートする例(固定フィールド指定) ・ テキストファイルをソートする例(浮動フィールド指定) ・ 漢字ソートマージ機能(基本方式)を使った例 ・ 漢字ソートマージ機能(国語辞典方式)を使った例 ・ Micro Focus COBOLファイルシステムのファイルをソートする例 ・ 出力ファイル切換え機能を使った例 例1 ソート処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドは、レ コードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsort -s -z100 -0.10asca -o bsortout bsortin 例2 マージ処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、ファイルbsortoutに出力します。ファイルbsortin1 とbsortin2は、それぞれレコードの先頭から10バイトのASCIIコードのフィールドを昇順にソートしたファイルです。 bsort -m -z100 -0.10asca -o bsortout bsortin1 bsortin2 例3 コピー処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードを、富士通COBOLの順編成ファイルbsortoutにコピーします。 bsort -c -z100 -Zf -Fcobseq,dos -o bsortout bsortin 例4 レコード選択機能を使った例 レコード長が100バイトのバイナリ固定長ファイルbsortin1と富士通COBOLの順編成ファイルbsortin2のレコードをマージして、富士通 COBOLの順編成ファイルbsortoutに出力します。入力ファイルは、20バイトめから4バイトの固定小数点2進数のフィールドが昇順にソー トされているとします。さらに、マージの際、30バイトめから4バイトの固定小数点2進数の値が30以上40未満のレコードだけを処理の対 象とします。 bsort -m -z100 -Zf -19.4fbia -p29.4fbi.ge.d30,29.4fbi.lt.d40 -Fcobseq,dos,cobseq -o bsortout bsortin1 bsortin2 - 299 - 例5 レコード再編成機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトのASCIIコードのフィールドを降順に並べる指定です。さらに、ソート処理と同時にレコードを再編成します。再 編成は、レコードの左端に入力レコードの10バイトめから20バイトを、その右に外部10進数の形式で10バイトのフィールドを置き、その値に 0を設定するという指定です。 bsort -s -z100 -0.20ascr -e9.20,d0.10zdl -o bsortout bsortin ポイント ソート処理と再編成処理を同時に実行する場合のコマンドの指定では、キーフィールドは再編成後の値を指定します。 例6 レコード集約機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトのASCIIコードのフィールドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れ た場合、50バイトめから8バイトの内部10進数のフィールドを加算してレコードを1つに集約します。 bsort -s -z100 -9.20ascr -g49.8pdl -o bsortout bsortin 例7 サプレス機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトのASCIIコードのフィールドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れ た場合、任意の1つのレコードを残して他を削除します。 bsort -su -z100 -9.20ascr -o bsortout bsortin 例8 先入力先出力(FIFO)機能を使った例 レコード長100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトのASCIIコードのフィールドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れ た場合、入力ファイルに格納されていた順序で出力します。 bsort -sf -z100 -9.20ascr -o bsortout bsortin 例9 Btrieveファイルをソートする例 レコード長が100バイトのBtrieveファイルシステムの固定長ファイルbsortinのレコードをソートして、富士通COBOLの順編成(固定長) ファイルbsortoutに出力します。キーフィールドの指定は、レコードの先頭から20バイトの文字のフィールドを昇順に並べる指定です。 bsort -s -z100 -Zf -0.20asca -Fcobseq,btrv -o bsortout bsortin 例10 テキストファイルをソートする例(固定フィールド指定) 最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイルbsortoutに出力します。キーフィールドの 指定は、レコードの8バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsort -s -z100 -7.4asca -Tfix -o bsortout bsortin 例11 テキストファイルをソートする例(浮動フィールド指定) 最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイルbsortoutに出力します。キーフィールドの 指定は、レコード分離文字コロン( : )で区切られた第2番めのフィールドの先頭から4バイトのASCIIコードのフィールドを昇順に並べる 指定です。 bsort -s -z100 -1.4asca -Tflt -t: -o bsortout bsortin - 300 - 例12 漢字ソートマージ機能(基本方式)を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトの漢字(シフトJISコード)のフィールドを総画数順、音読み順の昇順に並べる指定です。 bsort -s -z100 -9.20sjiam -M stdSO -o bsortout bsortin 例13 漢字ソートマージ機能(国語辞典方式)を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトの漢字フィールドに対するふりがなフィールドが、レコードの50バイトめから10バイトにシフトJISコードで記述され ており、これを国語辞典の並びで昇順に並べる指定です。 bsort -s -z100 -9.20sjiam -M dic49.10sji -o bsortout bsortin 例14 Micro Focus COBOLファイルシステムのファイルをソートする例 レコード長が100バイトのMicro Focus COBOLファイルシステムの索引ファイルbsortinのレコードをソートして、Micro Focus COBOLファ イルシステムの順ファイルbsortoutに出力します。キーフィールドの指定は、第1キーとしてレコードの先頭から10バイトのASCIIコードの フィールドを昇順、第2キーとしてレコードの50バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsort -s -z100 -Zf -0.10asca49.4asca -Fmfcseq,mfcidx -o bsortout bsortin 例15 出力ファイル切換え機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートしてファイルbsortout1に出力します。ファイルbsortout1がファイルシ ステムの許容量を超えたときにファイルbsortout2に残りのレコードを出力します。キーフィールドの指定は、レコードの先頭から10バイトの ASCIIコードのフィールドを昇順に並べる指定です。 bsort -s -z100 -0.10asca -o bsortout1 -o bsortout2 bsortin A.2 bsortexコマンドの使用例 代表的な機能を使ったbsortexコマンドの使用例を示します。 ・ ソート処理の例 ・ マージ処理の例 ・ コピー処理の例 ・ レコード選択機能を使った例 ・ レコード再編成機能を使った例 ・ レコード集約機能を使った例 ・ サプレス機能を使った例 ・ 先入力先出力(FIFO)機能を使った例 ・ Btrieveファイルをソートする例 ・ テキストファイルをソートする(固定フィールド指定) ・ テキストファイルをソートする(浮動フィールド指定) ・ 漢字ソートマージ機能(基本方式)を使った例 ・ 漢字ソートマージ機能(国語辞典方式)を使った例 ・ Micro Focus COBOLファイルシステムのファイルをソートする例 ・ ファイルの分割出力機能を使った例 ・ 条件別ファイル出力機能を使った例(その1) - 301 - ・ 条件別ファイル出力機能を使った例(その2) 例1 ソート処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドは、レ コードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout 例2 マージ処理の例 レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、ファイルbsortoutに出力します。ファイルbsortin1 とbsortin2は、それぞれレコードの先頭から10バイトのASCIIコードのフィールドを昇順にソートしたファイルです。 bsortex -merge key=0.10asca -input reclen=100 file=bsortin1,bsortin2 -output file=bsortout 例3 コピー処理の例 レコード長が100バイトのシステム標準のファイルbsortinのレコードを、富士通COBOLの順編成ファイルbsortoutにコピーします。 bsortex -copy -record recform=fix -input reclen=100 file=bsortin filesys=dos -output file=bsortout filesys=cobseq 例4 レコード選択機能を使った例 レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、富士通COBOLの順編成ファイルbsortout に出力します。入力ファイルは、20バイトめから4バイトの固定小数点2進数のフィールドが昇順にソートされているとします。さらに、マー ジの際、30バイトめから4バイトの固定小数点2進数の値が30以上40未満のレコードだけを処理の対象とします。 bsortex -merge key=19.4fbia -record recform=fix -input reclen=100 file= bsortin1,bsortin2 include=29.4fbi.ge.d30.and. 29.4fbi.lt.d40 -output file=bsortout filesys=cobseq 例5 レコード再編成機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトのASCIIコードのフィールドを降順に並べる指定です。さらに、ソート処理と同時にレコードを再編成します。再 編成は、レコードの左端に入力レコードの10バイトめから20バイトを、その右に外部10進数の形式で10バイトのフィールドを置き、その値に 0を設定します。 bsortex -sort key=0.20ascr -input reclen=100 file=bsortin reconst=9.20,d0.10zdl -output file=bsortout ポイント ソート処理と入力再編成処理を同時に実行する場合のコマンドの指定では、キーフィールドは入力再編成後の値を指定します。 例6 レコード集約機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトのASCIIコードのフィールドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れ た場合、集約フィールドで指定した50バイトめから8バイトの内部10進数のフィールドを加算して、最初に入力したレコードに集約しま す。 bsortex -sort key=9.20ascr -input reclen=100 file=bsortin -summary field=49.8pdl first -output file=bsortout 例7 サプレス機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトのASCIIコードのフィールドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れ た場合、任意の1つのレコードを残して他を削除します。 - 302 - bsortex -sort key=9.20ascr -input reclen=100 file=bsortin -summary suppress -output file=bsortout 例8 先入力先出力(FIFO)機能を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトのASCIIコードのフィールドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れ た場合、入力ファイルに格納されていた順序で出力します。 bsortex -sort key=9.20ascr -input reclen=100 file=bsortin -output file=bsortout -option fifo 例9 Btrieveファイルをソートする例 レコード長が100バイトのBtrieveファイルシステムの固定長ファイルbsortinのレコードをソートして、富士通COBOLの順編成(固定長) ファイルbsortoutに出力します。キーフィールドの指定は、レコードの先頭から10バイトの文字のフィールドを昇順に並べる指定です。 bsortex -sort key=0.10asca -record recform=fix -input reclen=100 file=bsortin filesys=btrv -output file=bsortout filesys=cobseq 例10 テキストファイルをソートする例(固定フィールド指定) 最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイルbsortoutに出力します。キーフィールドの 指定は、レコードの8バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsortex -sort key=7.4asca -record recform=txtfix -input reclen=100 file=bsortin -output file=bsortout 例11 テキストファイルをソートする例(浮動フィールド指定) 最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイルbsortoutに出力します。キーフィールドの 指定は、レコード分離文字コロン( : )で区切られた第2番めのフィールドの先頭から4バイトのASCIIコードのフィールドを昇順に並べる 指定です。 bsortex -sort key=1.4asca -record recform=txtflt fldsep=: -input reclen=100 file=bsortin -output file=bsortout 例12 漢字ソートマージ機能(基本方式)を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトの漢字(シフトJISコード)フィールドを総画数順、音読み順の昇順に並べる指定です。 bsortex -sort key=9.20sjiam jef=stdSO -input reclen=100 file=bsortin -output file=bsortout 例12 漢字ソートマージ機能(国語辞典方式)を使った例 レコード長が100バイトのバイナリファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの 10バイトめから20バイトの漢字フィールドに対するふりがなフィールドが、レコードの50バイトめから10バイトにシフトJISコードで記述され ており、これを国語辞典の並びで昇順に並べる指定です。 bsortex -sort key=9.20sjiam jef=dic49.10asc -input reclen=100 file=bsortin -output file=bsortout 例13 Micro Focus COBOLファイルシステムのファイルをソートする例 レコード長が100バイトのMicro Focus COBOLファイルシステムの索引ファイルbsortinのレコードをソートして、Micro Focus COBOLファ イルシステムの順ファイルbsortoutに出力します。キーフィールドの指定は、第1キーとしてレコードの先頭から10バイトのASCIIコードの フィールドを昇順、第2キーとしてレコードの50バイトめから4バイトのASCIIコードのフィールドを昇順に並べる指定です。 bsortex -sort key=0.10asca,49.4asca -record recform=fix -input reclen=100 file=bsortin filesys=mfcidx -output file=bsortout filesys=mfcseq 例14 ファイルの分割出力機能を使った例 レコード長が100バイトのファイルbsortinのレコードをソートして、ファイルbsortout1とbsortout2に出力します。出力の際、ファイルサイズ の上限を1GBにします。キーフィールドの指定は、レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる指定です。 - 303 - bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1,bsortout2 maxfilesize=1G 例15 条件別ファイル出力機能を使った例(その1) レコード長が100バイトのファイルbsortinのレコードをソートして、ファイルbsortout1とbsortout2に出力します。出力の際、50バイトめから4 バイトの内部10進数のフィールドが100以上のレコードをbsortout1に出力し、80バイトめから8バイトの外部10進数のフィールドが50未 満のレコードをbsortout2に出力します。キーフィールドの指定は、レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並 べる指定です。 bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1 include=49.4pdl.ge.d100 -output file=bsortout2 include=79.8zdl.lt.d50 例16 条件別ファイル出力機能を使った例(その2) レコード長が100バイトのファイルbsortinのレコードをソートして、ファイルbsortout1、bsortout2、およびbsortout3に出力します。出力の 際、50バイトめから4バイトの内部10進数のフィールドが100以上のレコードをbsortout1に出力し、bsortout1に出力されなかったレコードの内 80バイトめから8バイトの外部10進数のフィールドが50未満のレコードをbsortout2 に出力し、bsortout1にもbsortout2にも出力されなかっ たレコードをbsortout3に出力します。キーフィールドの指定は、レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べ る指定です。 bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1 case=49.4pdl.ge.d100 -output file=bsortout2 case=79.8zdl.lt.d50 -output file=bsortout3 case=other A.3 PowerSORT OCXの使用例 Visual Basicを使用したPowerSORT OCXの使用例を説明します。 A.3.1 ソート処理(バイナリファイル)の例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル "c:¥sortin" を、レコードの先頭から10バイトの外部10進数を キーフィールドとして昇順に並べ、その結果をバイナリファイル "c:¥sortout" に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'キーフィールドとしてレコードの先頭から10バイトの外部10進数を昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "0.10zdla" 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub - 304 - A.3.2 ソート処理(テキストファイル)の例 次のプログラムは、既に存在する最大レコード長120バイトのテキストファイル "c:¥sortin.txt" を、レコードの20バイトめから10バイトのASCII コードをキーフィールドとして昇順に並べ、その結果をテキストファイル "c:¥sortout.txt" に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'フィールドはカラム位置で指定します。 PowerSORT1.FieldDefinition = 1 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥sortin.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥sortout.txt" '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 'キーフィールドとしてレコードの20バイトめから10バイトのASCIIコードを昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "19.10asca" '最大レコード長は120バイトです。 PowerSORT1.MaxRecordLength = 120 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.3 マージ処理(バイナリファイル)の例 次のプログラムは、既にレコードの先頭から10バイトの外部10進数をキーフィールドとして昇順に並べられているレコード長100バイトの バイナリファイル "c:¥mergein1" と "c:¥mergein2" をマージし、その結果をバイナリファイル "c:¥mergeout" に出力するコードの記述例 です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'マージ処理を指定します。 PowerSORT1.DisposalNumber = 1 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥mergein1 c:¥mergein2" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥mergeout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 '既にキーフィールドとしてレコードの先頭から10バイトの外部10進数が昇順で並べられています。 PowerSORT1.KeyCmdStr = "0.10zdla" 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub - 305 - End If End Sub A.3.4 マージ処理(テキストファイル)の例 次のプログラムは、既にレコードの20バイトめから10バイトのASCIIコードをキーフィールドとして昇順に並べられている最大レコード長120 バイトのテキストファイル "c:¥mergein1.txt" と "c:¥mergein2.txt" をマージし、その結果をテキストファイル "c:¥mergeout.txt" に出力する コードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'マージ処理を指定します。 PowerSORT1.DisposalNumber = 1 'フィールドはカラム位置で指定します。 PowerSORT1.FieldDefinition = 1 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥mergein1.txt c:¥mergein2.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥mergeout.txt" '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 '既にキーフィールドとしてレコードの20バイトめから10バイトの'ASCIIコードが昇順で並べられています。 PowerSORT1.KeyCmdStr = "19.10asca" '最大レコード長は120バイトです。 PowerSORT1.MaxRecordLength = 120 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.5 コピー処理(バイナリファイル)の例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル "c:¥copyin" を、バイナリファイル "c:¥copyout" に出力するコー ドの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'コピー処理を指定します。 PowerSORT1.DisposalNumber = 2 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥copyin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥copyout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail - 306 - Exit Sub End If End Sub A.3.6 コピー処理(テキストファイル)の例 次のプログラムは、既に存在する最大レコード長120バイトのテキストファイル "c:¥copyin.txt" を、テキストファイル "c:¥copyout.txt" に出 力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'コピー処理を指定します。 PowerSORT1.DisposalNumber = 2 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥copyin.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥copyout.txt" '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 '最大レコード長は120バイトです。 PowerSORT1.MaxRecordLength = 120 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.7 レコード選択機能を使った例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル "c:¥sortin" を、10バイトめから4バイトの方が30バイトめから4バ イトより大きいレコードの場合のみを選択し、バイナリファイル "c:¥sortout" に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'レコードの10バイトめから4バイトの方が30バイトめから4バイトより大きいレコードが選択されるように指定します。 PowerSORT1.SelCmdStr = "9.4asc.gt.29.4asc" '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub - 307 - End If End Sub A.3.8 レコード再編成機能を使った例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル "c:¥sortin" を、レコードの20バイトめから10バイト、30バイトから 10バイト、先頭から10バイト、40バイトから10バイトの順に再編成し、バイナリファイル "c:¥sortout" に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'レコードの20バイトめから10バイト、30バイトめから10バイト、先頭から10バイト、40バイトめから10バイトの順に再編成するよ うに指定します。 PowerSORT1.RconCmdStr = "19.10 29.10 0.10 39.10" '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.9 レコード集約機能を使った例 次のプログラムは、既に存在するレコード長15バイトのテキストファイル "c:¥sortin.txt" を、レコードの9バイトめから4バイトをキーフィー ルドとしてASCIIコードの昇順に並べます。同値のキーフィールドを持つレコードが複数存在した場合、4バイトめから4バイトのASCII コードを集約し、その結果をテキストファイル "c:¥sortout.txt" に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'フィールドはカラム位置で指定します。 PowerSORT1.FieldDefinition = 1 'キーフィールドとしてレコードの9バイトめから4バイトのASCIIコードを昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "8.4asca" '集約フィールドとしてレコードの4バイトめから4バイトのASCIIコードを集約するように指定します。 PowerSORT1.SumCmdStr = "3.4asc" '指定したキーフィールドが同じ内容だった場合、レコード集約機能を用いて、集約フィールドを加算します。 PowerSORT1.HandlingSameKey = 3 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥sortin.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥sortout.txt" '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 - 308 - '最大レコード長は15バイトです。 PowerSORT1.MaxRecordLength = 15 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.10 レコード選択機能、レコード再編成機能、レコード集約機能を組み合わせた例 次のプログラムは、既に存在する最大レコード長15バイトのテキストファイル "c:¥sortin.txt" を、レコード選択、レコード再編成、レコード 集約の中から1つを選んで実行し、テキストファイル "c:¥sortout.txt" に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'フィールドはカラム位置で指定します。 PowerSORT1.FieldDefinition = 1 'レコード選択をチェックした場合。 If Option1.Value = True Then '選択フィールドとしてレコードの先頭から3バイトが文字列'DDD'以外のレコードを選択するように指定します。 PowerSORT1.SelCmdStr = "0.3asc.ne.'DDD'" End If 'レコード再編成をチェックした場合。 If Option2.Value = True Then '再編成フィールドとしてレコードの9バイトめから4バイト、3バイトめから5バイト、先頭から3バイトの順に再編成します。 PowerSORT1.RconCmdStr = "8.4 2.5 0.3" End If 'レコード集約をチェックした場合。 If Option3.Value = True Then 'キーフィールドとしてレコードの9バイトめから4バイトを指定します。 PowerSORT1.KeyCmdStr = "8.4asca" '集約キーのフィールドとしてレコードの4バイトめから4バイトのASCIIコードを集約するように指定します。 PowerSORT1.SumCmdStr = "3.4asc" '指定したキーフィールドが同じ内容だった場合、レコード集約機能を用いて、集約フィールドを加算するように指定しま す。 PowerSORT1.HandlingSameKey = 3 End If '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥sortin.txt" '入力ファイル種別にテキストを指定します。 PowerSORT1.InputFileType = 0 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥sortout.txt" '出力ファイル種別にテキストを指定します。 PowerSORT1.OutputFileType = 0 '最大レコード長は15バイトです。 PowerSORT1.MaxRecordLength = 15 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub - 309 - A.3.11 サプレス機能を使った例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル "c:¥sortin" を、レコードの20バイトめから4バイトの外部10進数 をキーフィールドとして昇順に並べます。同値のキーフィールドを持つレコードが複数あった場合、1つのレコードのみ残して他のレコー ドを削除し、その結果をバイナリファイル "c:¥sortout" に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'キーフィールドとしてレコードの20バイトめから4バイトの外部10進数を昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "19.4zdla" '指定したキーフィールドが同じ内容だった場合、1つのレコードのみ残して他のレコードを削除するように指定します。 PowerSORT1.HandlingSameKey = 2 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.12 FIFO機能を使った例 次のプログラムは、既に存在するレコード長100バイトのバイナリファイル "c:¥sortin" を、レコードの20バイトめから4バイトの外部10進数 をキーフィールドとして昇順に並べます。同値のキーフィールドを持つレコードが複数あった場合、先に入力したレコードを先に出力 し、その結果をバイナリファイル "c:¥sortout" に出力するコードの記述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 'キーフィールドとしてレコードの20バイトめから4バイトの外部10進数を昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "19.4zdla" '指定したキーフィールドが同じ内容だった場合、先に入力したレコードを先に出力するように指定します。 PowerSORT1.HandlingSameKey = 1 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥sortin" '入力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.InputFileType = 1 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥sortout" '出力ファイル種別にバイナリ固定長を指定します。 PowerSORT1.OutputFileType = 1 'レコード長は100バイトです。 PowerSORT1.MaxRecordLength = 100 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 - 310 - If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.3.13 富士通COBOL索引ファイルのソート例 次のプログラムは、既に存在する最大レコード長20バイトの富士通COBOL索引固定長ファイル "c:¥sortcob" を、レコードの5バイトめから 3バイトのASCIIコードをキーフィールドとして昇順に並べ、その結果を富士通COBOL索引ファイル "c:¥sortout" に出力するコードの記 述例です。 Private Sub Command1_Click() 'エラーメッセージを表示しない旨を指定します。 PowerSORT1.DispMessage = False 'ソート処理を指定します。 PowerSORT1.DisposalNumber = 0 '入力ファイル名を指定します。 PowerSORT1.InputFiles = "c:¥sortcob" '入力ファイル種別に富士通COBOL索引固定長ファイルを指定します。 PowerSORT1.InputFileType = 4 '出力ファイル名を指定します。 PowerSORT1.OutputFile = "c:¥sortout" '出力ファイル種別に富士通COBOL索引ファイルを指定します。 PowerSORT1.OutputFileType = 3 'キーフィールドとしてレコードの5バイトめから3バイトのASCIIコードを昇順で並べるように指定します。 PowerSORT1.KeyCmdStr = "4.3asca" '富士通COBOL索引ファイルの主キーとしてレコードの5バイトめから3バイトを指定します。 PowerSORT1.FjcobPrimeKey = "D(4,3)" 'レコード長は20バイトです。 PowerSORT1.MaxRecordLength = 20 'PowerSORTのDLLを呼出し実行します。 PowerSORT1.Action 'エラー検出時の処理。 If PowerSORT1.ErrorCode <> 0 Then Msgbox "PowerSORTでエラーを検出しました。" & " ErrorDetail=" & PowerSORT1.ErrorDetail Exit Sub End If End Sub A.4 BSORT関数の使用例 BSORT関数の使用例を説明します。 この例では、テキストファイルからレコードを入力し、ソート結果を出力ファイルに出力します。ライブラリ関数、およびWin32APIに対す るエラー判定は行っていないため、このような関数でエラーが発生した場合、本プログラムの動作は保証されません。 なお、この使用例は、製品のインストールフォルダのSAMPLES¥c¥sample7.cとして添付されています。 /* ヘッダーファイルの宣言 */ #include "sample.h" #include "bsrt.h" #include <memory.h> #include <malloc.h> #include <stdlib.h> /* 共通定義ファイルの宣言 */ /* DLLの呼び出しに使用する構造体変数の宣言 */ BSRTFUNC func; /* 関数アドレス格納領域の宣言 */ BSRTPRIM prim; /* 主要情報テーブル領域の宣言 */ BSRTREC rec; /* レコード情報領域の宣言 */ BSRTFILE file; /* ファイル情報領域の宣言 */ BSPTR_BSRTKEY key; /* キー情報領域の宣言 */ BSRTOPT opt; /* オプション情報領域の宣言 */ - 311 - int sample() { int rcd; HGLOBAL hHdlFile; HGLOBAL hHdlKey; char szStr[80]; /* /* /* /* 関数復帰値 */ 入力ファイルテーブル領域ハンドル */ キーテーブル領域ハンドル */ エラー詳細コード表示用領域 */ /* bsrtopen関数の引数情報設定・・・(1) */ /* BSRTPRIMの設定処理・・・(2) */ memset(&prim, 0x00, sizeof(BSRTPRIM)); prim.function = BS_SORT; prim.optionfunc = 0; prim.msglevel = BSMSG_LEVEL0; prim.cdmode = BSZD_AU; prim.chklevel = BSCHK_LEVEL0; prim.rec_len = 15; prim.fieldmode = BS_FLTFLD; /* /* /* /* /* /* /* /* /* BSRTFILEの設定処理 */ memset(&file, 0x00, sizeof(BSRTFILE)); /* BSRTFILE(file)領域の初期化 */ BSRTPRIM(prim)領域の初期化 */ ソート機能 */ レコード処理指定なし */ 処理情報を出力しない */ 入力データのコード系はASCII */ BSORT関数のチェックをしない */ レコード長は15バイト */ 浮動フィールド指定 */ /* 入力ファイルテーブル領域の確保・・・(3) */ hHdlFile = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, BS_FILESIZE(1)); file.inpfile_tbl = (BSPTR_BSFILE)GlobalLock((HGLOBAL)hHdlFile); file.inpfile_tbl->entry_no = 1; /* 入力ファイル数は1個 */ file.inpfile_tbl->file_addr[0] = (BSPTR_UCHAR)"sortin.txt"; /* ファイル名はsortin.txt */ /* 出力ファイル名の指定(ファイル名をポイントするアドレスを指定) */ file.outfile_addr = (BSPTR_UCHAR)"sortout.txt"; /* ファイル名はsortout.txt */ /* キーテーブル領域の確保・・・(4) */ hHdlKey = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, BS_KEYTABSIZE(1)); key = (BSPTR_BSRTKEY)GlobalLock((HGLOBAL)hHdlKey); /* キーテーブル領域の確保 */ memset(key, 0x00, BS_KEYTABSIZE(1)); /* BSRTKEY(key)領域の初期化 */ /* BSRTKEYの設定処理 */ key->entry_no key->key_entry[0].key_position key->key_entry[0].key_length key->key_entry[0].key_type key->key_entry[0].key_order = = = = = 1; 0; 4; BSKEY_ASC; BS_ASCND; /* /* /* /* /* キーの個数は1個 */ 比較位置は第1フィールド */ キー長は4バイト */ データ形式はASCII文字 */ 昇順に並べる */ /* BSRTRECの設定処理(初期化) */ memset(&rec, 0x00, sizeof(BSRTREC)); /* BSRTREC(rec)領域の初期化 */ /* BSRTOPTの設定処理(初期化) */ memset(&opt, 0x00, sizeof(BSRTOPT)); /* BSRTOPTの設定処理(初期化) */ /* bsrtopen関数の発行・・・(5) */ rcd = bsrtopen(BSRTVL, &func, &prim, &rec, key, &file, &opt); /* bsrtopen関数の復帰値・・・(6) */ if(rcd != 0) /* エラーの表示例 */ { wsprintf((LPSTR)szStr, "bsrtopen関数で詳細コード %d のエラーが発生しました.",rec.errdetail); MessageBox(NULL, szStr, "PowerSORT 関数呼び出しサンプル", MB_OK | MB_ICONSTOP); } - 312 - if(rcd == -1) /* bsrtopen関数実行環境構築後にエラー発生 */ { bsrtclse(BSRTVL, &func, &prim, &rec); GlobalUnlock((HGLOBAL)hHdlKey); GlobalFree((HGLOBAL)hHdlKey); GlobalUnlock((HGLOBAL)hHdlFile); GlobalFree((HGLOBAL)hHdlFile); return -1; } else if(rcd == -2) /* bsrtopen関数実行環境構築前にエラー発生 */ { GlobalUnlock((HGLOBAL)hHdlKey); GlobalFree((HGLOBAL)hHdlKey); GlobalUnlock((HGLOBAL)hHdlFile); GlobalFree((HGLOBAL)hHdlFile); return -1; } /* bsrtclse関数の発行 */ rcd = bsrtclse(BSRTVL, &func, &prim, &rec); /* bsrtclse関数の復帰値・・・(7) */ if(rcd == -1) /* bsrtclse関数でエラー発生 */ { GlobalUnlock((HGLOBAL)hHdlKey); GlobalFree((HGLOBAL)hHdlKey); GlobalUnlock((HGLOBAL)hHdlFile); GlobalFree((HGLOBAL)hHdlFile); return -2; } GlobalUnlock((HGLOBAL)hHdlKey); GlobalFree((HGLOBAL)hHdlKey); GlobalUnlock((HGLOBAL)hHdlFile); GlobalFree((HGLOBAL)hHdlFile); return 0; /* 正常終了 */ } 上記使用例の括弧付き数字は、以下の数字と対応しています。 1. 使用例で設定する情報は以下に示すものです。なお、これらの領域は必ず初期化してから使用してください。 - BSRTPRIM:主要情報 - BSRTFILE:ファイル情報 - BSRTOPT:オプション情報(初期化のみ) - BSRTKEY:キー情報 - BSRTREC:レコード情報(初期化のみ) - BSRTFUNC:その他(初期化のみ) 2. テキストファイル処理時の注意を示します。 - レコード長(prim.rec_len)には、最大レコード長を指定します。 テキストファイルの場合の最大レコード長とは、改行コードを含んだ最大行長のことをいいます。 - フィールドの指定(prim.fieldmode)を必ず指定します。 - prim.fieldmodeにBS_FLTFLD(浮動フィールド指定)を指定している場合、浮動フィールド指定だけに有効なフィールド分離 文字(prim.fldchar_addr)が指定可能になります。フィールド分離文字の指定を省略すると、空白とタブがフィールド分離文字 となります。 3. ファイル数が1つなので、BS_FILESIZEマクロのパラメタ値は1です。 複数個指定する場合はその数を指定します。PowerSORTでは、複数の入力ファイルと1つの出力ファイルを指定できます。 - 313 - 4. キーフィールドの数が1つなので、BS_KEYTABSIZEマクロのパラメタ値は1です。 複数個指定する場合はその数を指定します。 5. 本使用例の処理では、入出力ファイルを指定しているため、レコードの入出力処理はPowerSORTが行います。したがって、ユー ザアプリケーションは、bsrtopen関数とbsrtclse関数だけを発行します。 6. bsrtopen関数の復帰値には、0、-1、および-2があります。 それぞれの値の意味は以下のとおりです。 - 0 : bsrtopen関数は正常終了(bsrtclse関数を発行する必要があります)。 - -1 : bsrtopen関数で実行環境構築後にエラー発生(bsrtclse関数を発行する必要があります)。 - -2 : bsrtopen関数で実行環境構築前にエラー発生(bsrtclse関数を発行する必要はありません)。 7. bsrtclse関数の復帰値には、0、1、および-1があります。 それぞれの値の意味は以下のとおりです。 - 0 : bsrtclse関数は正常終了。 - 1 : bsrtclse関数は正常に中断処理を終了。 - -1 : bsrtclse関数で異常終了。 - 314 - 付録B 留意事項 B.1 メモリ不足への対処方法について PowerSORT実行中にメモリ不足が発生した場合、以下のように対処してください。 ・ bsortコマンドのメモリサイズオプション(-y)、bsortexコマンドの実行環境オプション(-option)のmemsizeオペランド、または環境変数 BSORT_MEMSIZEを指定している場合は、PowerSORTが使用するメモリサイズの指定を省略してください。メモリサイズの指定を 省略することにより、PowerSORTが動作条件に応じたメモリサイズを自動設定します。 ・ また、メモリサイズの指定を増加することも有効です。メモリサイズの上限値は2097151キロバイト(2ギガバイト)です。ただし、使用可 能な物理メモリ量を超えないように指定してください。 B.2 一時ファイルのフォルダ指定方法について 環境変数BSORT_TMPDIR、またはbsortexコマンドにおける-optionオプションのtmpdirオペランドにより、一時ファイルを作成するフォ ルダを指定する場合は、以下の点に注意してください。 ・ 存在するドライブ、およびフォルダ、使用可能なドライブ、およびフォルダを指定してください。 ・ 一時フォルダ名の指定は、最後に円記号( ¥ )を付けて指定してください。円記号( ¥ )を付けないと誤動作の原因となります。 ・ フォルダを複数指定する場合は、空白を入れずにセミコロン( ; )で区切って指定してください。 例 例1) 正しい指定 C:¥;D:¥ 例2) 誤った指定 C:¥ ; D:¥ ・ 充分な空きスペースがあるフォルダを指定してください。 B.3 フィールドの指定方法について PowerSORTは、以下に示す順番で各機能を処理します。 1. データ入力処理 2. 入力ファイルのレコード選択処理 3. 入力ファイルのレコード再編成処理 4. ソート処理、マージ処理、およびコピー処理 5. レコード集約処理 6. 出力ファイルのレコード選択処理 7. 出力ファイルのレコード再編成処理 8. データ出力処理 したがって、入力ファイルのレコード再編成処理によりフィールドの位置が変わると、以降に指定するフィールドの位置は、入力レコー ド内のフィールドと異なったものになります。 フィールドの位置は、以下の規則にしたがって指定してください。 - 315 - 入力選択フィールド 常に入力レコードをもとにフィールドを指定します。 入力再編成フィールド 常に入力レコードをもとにフィールドを指定します。 キーフィールド 通常は入力レコードをもとに指定しますが、入力ファイルのレコード再編成機能を使用する場合は、再編成後のレコードをもとにフィー ルドを指定します。 集約フィールド 通常は入力レコードをもとに指定しますが、入力ファイルのレコード再編成機能を使用する場合は、再編成後のレコードをもとにフィー ルドを指定します。 出力選択フィールド 通常は入力レコードをもとに指定しますが、入力ファイルのレコード再編成機能を使用する場合は、再編成後のレコードをもとにフィー ルドを指定します。 出力再編成フィールド 通常は入力レコードをもとに指定しますが、入力ファイルのレコード再編成機能を使用する場合は、再編成後のレコードをもとにフィー ルドを指定します。 B.4 英字と数字の連結データに関する留意事項 キーフィールドの操作にNを指定して、英字と数字の連結データを並べ換える場合、以下の注意が必要です。 キーフィールドの指定例1 キーフィールドの操作にNを指定して英字と数字の連結データを並べ換える場合、数字部分の並びは数値の大小だけを比較しま す。 したがって、以下のようなデータでは出力される順序が特定できません。 0.9ascaN 入力データ 出力結果のケース1 出力結果のケース2 data001 data001 data00001 data2 data00001 data1 data1 data1 data001 data00001 data2 data2 ポイント 数字部分の“1”、“001”、および“00001”は、どれも1という値のため、data1、data001、およびdata00001は全て同一のキーと判断されま す。先入力先出力(FIFO)機能オプション(fifo(-option)、または-f)を指定している場合は入力順を保って出力されますが、先入力先出力 (FIFO)機能オプション(fifo(-option)、または-f)の指定がない場合は、上記の出力結果のケース1、ケース2にあるように出力順は不定と なります。 キーフィールドの指定例2 キーフィールドの指定例1に対して、数字部分の桁数も考慮して並べ換えたい場合は、以下のように指定します。 - 316 - 0.9ascaN0.9ascr 入力データ 出力結果 data001 data1 data2 data001 data1 data00001 data00001 data2 ポイント 以下の順で出力順が決まります。 1. 第1キー(0.9ascaN)の比較により、data001、data1、およびdata00001とdata2の順序が決まります。第1キーの比較によって大小関 係が確定したdata2については、以降の第2キーによる比較は行われません。 2. data001、data1、およびdata00001は、キーの値が等しいため、第2キー(0.9ascr)で比較します。 3. 第2キーは文字列として比較し、大きい順に並べます。この例では、dataの次の文字で最初の大小関係が決まります。したがっ て、data1がdata001、およびdata00001よりも大きい値となり、最初に出力されます。同様にdata001とdata00001ではdata001の1の 部分がdata00001では0なので、data001が大きい値と判断され、2番目に出力されます。残ったdata00001と既に順序が決定したdata2 が順に出力され、上記の出力結果が得られます。 B.5 ASCIIコードをEBCDICコード順、EBCDICコードをASCIIコード順に並 べる方法について PowerSORTは、ASCIIコードのフィールドをEBCDICコード順に並べる、またはEBCDICコードのフィールドをASCIIコード順に並べる ことができます。 このような処理を行う場合の指定方法について説明します。 ASCIIコードのフィールドをEBCDICコード順に並べる場合 入力ファイルのコード系をASCIIコード系、キーフィールドのデータ形式をEBCDICコードと指定します。 また、ASCIIコードとEBCDICコード間の変換方式を扱うコードに合わせて指定します。 例 1) bsortコマンドを使用した場合 bsort -s -z 100 -20.8ebca -q au -Q 1 sortin -o sortout -20.8ebca:キーフィールドのデータ形式にEBCDICコードを指定 -q au: 入力ファイルのコード系にASCIIコード系を指定 -Q 1: ASCIIコードとEBCDICコード間の変換方式に、EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定 2) bsortexコマンドを使用した場合 bsortex -sort key=20.8ebca -input reclen=100 file=sortin -output file=sortout -option icode=au iconv=1 key=20.8ebca:キーフィールドのデータ形式にEBCDICコードを指定 icode=au: 入力ファイルのコード系にASCIIコード系を指定 iconv=1: ASCIIコードとEBCDICコード間の変換方式に、EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定 - 317 - EBCDICコードのフィールドをASCIIコード順に並べる場合 入力ファイルのコード系をEBCDICコード系、キーフィールドのデータ形式をASCIIコードと指定します。 また、ASCIIコードとEBCDICコード間の変換方式を扱うコードに合わせて指定します。 例 1) bsortコマンドを使用した場合 bsort -s -z 100 -20.8asca -q eb -Q 2 sortin -o sortout -20.8asca:キーフィールドのデータ形式にASCIIコードを指定 -q eb: 入力ファイルのコード系にEBCDICコード系を指定 -Q 2: ASCIIコードとEBCDICコード間の変換方式に、EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定 2) bsortexコマンドを使用した場合 bsortex -sort key=20.8ebca -input reclen=100 file=sortin -output file=sortout -option icode=au iconv=1 key=20.8asca:キーフィールドのデータ形式にASCIIコードを指定 icode=eb: 入力ファイルのコード系にEBCDICコード系を指定 iconv=2: ASCIIコードとEBCDICコード間の変換方式に、EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定 注意 以下のような処理はできません。 ・ シフトJISコードのフィールドをEBCDIC/JEFコード順に並べる。 ・ EBCDIC/JEFコードのフィールドをシフトJISコード順に並べる。 ・ Unicode(UCS-2形式、またはUTF-8形式)のフィールドをEBCDIC/JEFコード順に並べる。 ・ EBCDIC/JEFコードのフィールドをUnicode(UCS-2形式、またはUTF-8形式)順に並べる。 B.6 ファイル種別に関する留意事項 ファイル種別に関しては、以下の点にご注意ください。 ・ 実際のファイル種別と異なるファイル種別を指定すると誤動作の原因となります。 ・ 入力ファイルと出力ファイルでファイル種別が異なる場合もレコード形式は入力ファイルと出力ファイルで同じレコード形式になりま す。 ・ 入力ファイルがテキストファイルの場合、入力ファイル中にEOF(End Of File)のコードが含まれると、そのEOFコード以降のデータ は処理対象となりません。なお、bsortexコマンドでは、EOF以降のデータを処理対象とすることが可能です。詳細は、入力ファイル 情報オプション(-input)のeofオペランドを参照してください。 ・ 入力ファイルがテキストファイルの場合、入力ファイル中にEOFコードが存在した場合は、出力ファイルの終わりにEOFコードが付 加されます。なお、bsortexコマンドでは、出力ファイルの終わりのEOFコードを削除することが可能です。詳細は、出力ファイル情 報オプション(-output)のremoveeofオペランドを参照してください。 ・ 入力ファイルがテキストファイルの場合、入力ファイル中にEOFコードが存在しない場合は、出力ファイルの終わりにもEOFコード は付加されません。 ・ 入力ファイルがテキストファイルの場合、EOFコードが存在する入力ファイルが複数ある場合でも、出力ファイル1つに対して付加される EOFコードは1つです。 ・ 出力ファイルがBtrieveファイルの場合、既存のファイルに上書きすることはできません。新規のファイル名を指定してください。 - 318 - B.7 富士通COBOLファイルシステムに関する留意事項 PowerSORTでは、富士通のNetCOBOLシリーズ、PowerCOBOL97シリーズ等でサポートしているCOBOLファイルを富士通COBOL ファイルという名称でマニュアルに記述しています。 ここでは、富士通COBOLファイルを処理する場合の留意事項について説明します。 ・ 富士通COBOL行順ファイルに関する留意事項 ・ 富士通COBOLファイルシステム(BSAM対応順ファイル)に関する留意事項 富士通COBOL行順ファイルに関する留意事項 富士通COBOLファイルシステムの行順ファイルは、PowerSORTではテキストファイルとして処理することができます。 富士通COBOLファイルシステムの行順ファイルを処理する場合は、以下のように指定してください。ただし、富士通COBOLファイルシ ステムがオープン処理で行っているファイルの共用・排他などの制御は行われないため、ファイルの指定には注意してください。 ・ ファイルシステムの指定は「システムの標準ファイルシステム」とします。 指定方法については以下を参照してください。 - bsortコマンドの場合 入出力ファイルシステムオプション(-F) - bsortexコマンドの場合 入力ファイル情報オプション(-input)のfilesysオペランド、および出力ファイル情報オプション(-output)のfilesysオペランド - BSORT関数の場合 BSRTFILE構造体のinpfsys_tbl、およびoutfsys - PowerSORT OCXの場合 InputFileTypeプロパティ、およびOutputFileTypeプロパティ ・ 入力ファイル種別の指定は「テキストファイル固定フィールド指定」とします。 指定方法については以下を参照してください。 - bsortコマンドの場合 テキストファイルオプション(-T) - bsortexコマンドの場合 入力レコード情報オプション(-record)のrecformオペランド - BSORT関数の場合 BSRTPRIM構造体のfieldmode - PowerSORT OCXの場合 FieldDefinitionプロパティ 富士通COBOLファイルシステム(BSAM対応順ファイル)に関する留意事項 PowerSORTはBSAMに対応した富士通COBOL順ファイルを処理することが可能です。 BSAMに対応した富士通COBOL順編成ファイルを処理する場合の留意事項を以下に説明します。 ・ BSAMに対応した富士通COBOL順ファイルを処理する場合は、入出力ファイルのファイルシステムに"富士通COBOLファイルシステム (BSAM対応順ファイル)"を指定してください。 ・ "富士通COBOLファイルシステム(順ファイル)"で扱える最大ファイルサイズは1ギガバイトです。"富士通COBOLファイルシステム (BSAM対応順ファイル)"では、ファイルサイズが1GBを超えるファイルを扱うことができます。扱うことのできる最大ファイルサイズに ついては、お使いの富士通COBOLファイルシステムのマニュアルを参照してください。 ・ 入出力ファイルのファイルシステムに"富士通COBOLファイルシステム(BSAM対応順ファイル)"を指定した場合、富士通COBOL ファイルシステムの仕様によりレコード排他処理が行われません。 ・ お使いの富士通COBOLファイルシステムがBSAMに対応しているかどうかの確認、およびBSAMについての詳細は、お使いの富士通 COBOLファイルシステムのマニュアルを参照してください。 ・ お使いの富士通COBOLファイルシステムがBSAMに対応していない場合、入出力ファイルのファイルシステムに"富士通COBOL ファイルシステム(BSAM対応順ファイル)"を指定しても"富士通COBOLファイルシステム(順ファイル)"として動作します。 - 319 - B.8 Visual Basicのデータ型とPowerSORTのデータ形式の関係 PowerSORTで扱うデータ形式とVisual Basicで扱うデータ型の対応を以下に示します。 データ型 データ形式 1996 意味 -1996 String asc 3139393620 2D31393936 文字列型 Byte asc - - バイト型 Integer fbl CC07 34F8 整数型 Long fbl CC070000 34F8FFFF 長整数型 Single ifl 0080F944 0080F9C4 単精度浮動小数点数型 Double ifl 0000000000309F40 0000000000309FC0 倍精度浮動小数点数型 Currency - C090300100000000 406FCFFFFFFFFFFF 通貨型 Date - 0000000000309F40 00000000000309FC0 日付型 Boolean - - - ブール型 Variant - - - バリアント型 データ型 バイト数 値の範囲 String 文字あたり2バイト、または半角1文字あ たり1バイト 0 ~ 約65,500バイト Byte 1バイト 0 ~ 255 Integer 2バイト -32,768 ~ 32,767 Long 4バイト -2,147,483,648 ~ 2,147,483,647 Single 4バイト -3.402823E38 ~ -1.401298E-45 (負の値) 1.401298E-45 ~ 3.402823E38 (正の値) Double 8バイト -1.79769313486231E308 ~ -4.94065645841247E-324 (負の値) 4.94065645841247E-324 ~ 1.79769313486231E308 (正の値) Currency 8バイト -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 Date 8バイト 西暦100年1月1日 ~ 西暦9999年12月31日 Boolean 2バイト True、またはFalse Variant 16バイト、文字列の場合は1文字あたり 1バイト ――――― データ型:Visual Basic データ形式:PowerSORT B.9 PowerSORT VBXからの移行方法 PowerSORT OCXのプロパティは、PowerSORTカスタムコントロール(以降、PowerSORT VBX)のプロパティといくつかの違いがありま す。以下に変更点と対応について説明します。 ・ PowerSORT OCXで削除されたプロパティの一覧 - CompareAsNumberプロパティ(CollationOrderプロパティで指定) - 320 - - ContainWideCharプロパティ(CollationOrderプロパティで指定) - Actionプロパティ(Actionメソッドで指定) ・ 追加されたプロパティの一覧 - 6.3.6 CollationOrderプロパティ - 6.3.9 DisposalNumberプロパティ ・ 追加されたメソッドの一覧 - 6.5.1 Actionメソッド ・ 値の指定方法が変更されたプロパティの一覧 - 6.3.11 FieldDefinitionプロパティ - 6.3.36 UsableMemorySizeプロパティ 追加されたプロパティについて ・ PowerSORT VBXでは、CompareAsNumberプロパティとContainWideCharプロパティは別々に指定するものでしたが、実際は、同 時に有効にできないため、CollationOrderプロパティにまとめました。CollationOrderプロパティと各値の指定については、 CollationOrderプロパティの説明を参照してください。 ・ PowerSORT VBXでは、Actionプロパティによって、PowerSORTの主機能であるソート、マージ、およびコピー処理を指定すると同時に PowerSORTを起動していましたが、PowerSORT OCXでは、処理の指定にDisposalNumberプロパティ、PowerSORTの起動にAction メソッドを使用します。 値の指定方法が変更になったプロパティについて ・ FieldDefinitionプロパティは、PowerSORT VBXではBOOL型でしたが、PowerSORT OCXではshort型に変更されています。値の 指定方法については、FieldDefinitionプロパティの説明を参照してください。 ・ UsableMemorySizeプロパティの単位は、PowerSORT VBXではバイト単位でしたが、キロバイト単位に変更しました。 その他のプロパティについて その他のプロパティにも型の変更がありますが、PowerSORT VBXのプロパティ指定と同じように指定することが可能です。 記述例 例 1) DisposalNumberプロパティ、Actionメソッドについて PowerSORTの実行部分において、PowerSORT VBXでは以下のようにしてPowerSORTを実行しました。 object.Action = 0 PowerSORT OCXでは以下のようにDisposalNumberプロパティでどの処理を行うかを指定した後、Actionメソッドを呼びます。 object.DisposalNumber = 0 object.Action 2) FieldDefinitionプロパティについて PowerSORT VBXのFieldDefinitionプロパティは、設定値にFALSE、またはTRUEで指定しました。 object.FieldDefinition = TRUE PowerSORT OCXでは0、または1を指定してください。 object.FieldDefinition = 1 3) CollationOrderプロパティについて - 321 - キーフィールドの照合順序の指定において、複数バイトが混在しても文字単位に比較する場合、PowerSORT VBXでは以下のように ContainWideCharプロパティで指定していました。 object.ContainWideChar = TRUE PowerSORT OCXでは、CollationOrderプロパティに1を設定します。 object.CollationOrder = 1 また、符号を含む数字を算術的に扱う場合、PowerSORT VBXでは以下のようにCompareAsNumberプロパティで指定していました。 object.CompareAsNumber = TRUE PowerSORT OCXでは、CollationOrderプロパティに2を設定します。 object.CollationOrder = 2 この結果、PowerSORT VBXのContainWideCharプロパティとCompareAsNumberプロパティは、PowerSORT OCXでは同時に指定で きなくなりました。 - 322 - 用語集 インコアソート すべての入力レコードがメモリ内に入る場合の、一時ファイルを使用せずにメモリ内だけで行うソート処理です。 漢字ソートマージ機能 漢字コードで表現された文字(日本語)を含むレコードを、文字の持つ属性に従って並べる機能です。 並べ方には、基本方式と国語辞典方式の2つの方式があります。 漢字フィールド 漢字ソートマージ機能で使用する、レコード内の漢字コードで表現されたフィールドです。 キーフィールド レコードの大小関係を決めるために使用するレコード内のフィールドです。 フィールドの位置、長さ、データ形式と操作方法の情報からなっています。 基本方式 漢字ソートマージ機能で実現している並べ方の1つで、文字の属性に従って並べます。 属性には、総画数、部首、音読み、訓読み、およびコードが指定できます。 固定フィールド バイト位置によって区分されるフィールドです。 フィールドの位置は全レコードで共通です。 国語辞典方式 漢字ソートマージ機能で実現している並べ方の1つで、国語辞典に採用されている読み(清音読み)を基本とした並べ方です。 漢字コードで表現された文字に対応するふりがなのフィールドが必要となります。 コピー機能 入力ファイルを出力ファイルに複写する機能です。 入力ファイルを単純に連結する場合や、複写するレコードを選択する場合に利用できます。 再編成フィールド レコード再編成機能で使用する入力レコード内のフィールドです。 再編成フィールドは、フィールドの位置と長さの情報からなっています。 先入力先出力(FIFO)機能 同値のキーフィールドを持つレコードが複数あるファイル、またはレコード群をソートする際、先に入力したレコードを先に出力する 機能です。 ソート機能と組み合わせて使います。 サプレス機能 同値のキーフィールドを持つレコードが複数あるファイル、またはレコード群をソート、またはマージする際、1つを残して他を削除 する機能です。 ソート、またはマージ機能と組み合わせて使います。 自己規定値 レコード選択機能とレコード再編成機能で使用する10進数、16進数の定数、または文字列定数です。 - 323 - 集約フィールド レコード集約機能で使用する、数値を加算するためのフィールドです。 集約フィールドは、フィールドの位置、長さ、データ形式、および出力形式の情報からなっています。 処理定義ファイル PowerSORT GUIのメニューやダイアログボックスで指定した内容を保存するファイルです。 処理定義ファイルを[ファイル]メニューの[実行]や[開く]コマンドで選択することにより、メニューの選択やダイアログボックスでの項 目設定を繰り返すことなく、実行や再利用が簡単にできるようになります。 ストリング ソート済みのレコードの集まりです。 選択フィールド レコード選択機能で使用する、処理の対象となるレコードを選択するためのフィールドです。 ソート機能 指定された1つ以上のキーフィールドにより昇順(0から9、AからZの順)、または降順(ZからA、9から0の順)にレコードを並べ替える 機能です。 通常、レコードをソートする場合、キーフィールドを指定します。PowerSORTは、指定されたキーフィールドをもとにレコードの並べ 替えを行います。 フィールド PowerSORTを使用するためのフィールドの種類には、ソート、およびマージ機能で使用するキーフィールドと、レコード選択機能で 使用する選択フィールド、レコード再編成機能で使用する再編成フィールド、およびレコード集約機能で使用する集約フィールド があります。 フィールド分離文字 テキストファイル浮動フィールド指定のときにフィールドを区分する文字列です。 省略時の値として、空白、またはタブをフィールド分離文字として扱います。この他に任意の文字列をフィールド分離文字として指 定することができます。ただし、レコード分離文字と同じ文字は指定できません。 浮動フィールド フィールド分離文字によって区分されるフィールドです。 フィールドの位置を、フィールド分離文字によって区切られたフィールド番号によって指定します。フィールド分離文字の位置によっ てフィールドの位置が決定されるため、レコードごとにフィールドの位置(カラム位置)が異なります。 ふりがなフィールド 漢字ソートマージ機能の国語辞典方式で使用する、漢字フィールドに対応する読みが入っているフィールドです。 ふりがなフィールドは、ひらがな文字、およびカタカナ文字で表現します。 マージ機能 ソート済みの複数ファイルを1つのファイルに併合する(まとめる)機能です。 ソート処理と同じキーフィールドでの並びを保証します。 レコード選択機能 処理の対象となるレコードの選択方法を指定して、必要なレコードだけを選択する機能です。 ソート機能、マージ機能、またはコピー機能と組み合わせて使います。レコード選択機能には、被比較フィールドと比較フィールド を比較する方法、被比較フィールドと自己規定値を比較する方法があります。PowerSORTは、指定された2つのフィールドを比較 方法に従って比較し、レコードを選択します。 - 324 - レコード再編成機能 フィールドの位置を変更したり、自己規定値をレコードに埋め込む機能です。 レコードを再編成する場合は、出力レコードの左端から順番に詰めるフィールドを指定します。入力レコードのフィールドを詰める 場合はその位置と長さを、自己規定値を詰める場合はその自己規定値を指定します。 レコード集約機能 同値のキーフィールドを持つレコードが複数あるファイル、またはレコード群をソート、またはマージする際、集約フィールドの値を 加算して1つのレコードにする機能です。 レコード分離文字 テキストファイルのときにレコードを区分する文字列です。 レコード分離文字は、CRLF(復帰改行)、CR(復帰)、またはLF(改行)から選択できます。一般的な形式のテキストファイルは、 CRLF(復帰改行)でレコードが区分されています。 BOM BOM(Byte Order Mark)は、Unicodeのエンディアンを指定するためにファイルの先頭に記入される特定のコードです。 Big endian 何バイトかで整数を表す場合、上位の桁を前の方の番地に記憶する方法です。 bsrt.h BSORT関数で使用する情報が設定されているヘッダーファイルです。 本ヘッダーファイルは、PowerSORTインストール時に作成されるINCLUDEフォルダ内にあります。 Little endian 何バイトかで整数を表す場合、下位の桁を前の方の番地に記憶する方法です。 Unicode 世界中の文字を統一的に記述できる国際的な文字コードです。 PowerSORTでは、以下の形式をサポートしています。 ・ UCS-2形式 1文字を2バイトで表現する形式です。 ・ UTF-8形式 1文字を1~6バイトの可変長のバイトで表現する形式です。PowerSORTでは、1~3バイトまでをサポートしています。 - 325 - 索 引 [数字] 10進形式2桁年号....................................................................57 8086形式固定小数点2進数....................................................56 8086形式符号なし固定小数点2進数.....................................56 BSSUM構造体.......................................................................214 BtrieveFileInfoプロパティ......................................................147 BtrieveIndexKeyプロパティ....................................................148 BtrieveInfileOwnerNameプロパティ......................................149 Btrieveファイルに関するエラーコード...................................289 [A] Actionメソッド..........................................................................180 ADJUSTに関するエラーコード.............................................289 AlphaNumOnlyプロパティ.....................................................145 AlternateModeプロパティ.......................................................146 ASCIIコード..............................................................................54 ASCIIコードをEBCDICコード順、EBCDICコードをASCIIコード 順に並べる方法について......................................................317 [C] COBOLプログラムからPowerSORTを使用する....................182 CollationOrderプロパティ.......................................................149 CompareAsUpperCaseプロパティ..........................................150 C言語プログラムからPowerSORTを使用する.......................183 [D] DispMessageプロパティ..........................................................151 DisposalNumberプロパティ....................................................152 [B] Big endian...............................................................................325 BOM.......................................................................................325 BSCOL構造体.......................................................................205 BSFILE_BASE構造体...........................................................212 BSFILE_BTRV構造体..........................................................211 BSFILE_EXT構造体.............................................................210 BSFILE構造体.......................................................................207 BSFSYS構造体......................................................................207 BSIDXKEY構造体................................................................209 BSIDX構造体........................................................................208 BSKANJI構造体....................................................................203 BSKEY構造体.......................................................................201 bsortexコマンドオプション......................................................104 bsortexコマンドの形式...........................................................102 bsortexコマンドの使用例.......................................................301 BSORT関数一覧...................................................................183 BSORT関数で使用する構造体............................................192 BSORT関数とは.....................................................................183 BSORT関数のエラー詳細コード(errdetail).........................279 BSORT関数の使用例...........................................................311 BSORT関数の使い方............................................................183 bsortコマンドオプション............................................................73 bsortコマンドとbsortexコマンドの機能差について..................70 bsortコマンドの形式.................................................................72 bsortコマンドの使用例...........................................................299 BSRCON構造体....................................................................222 bsrt.h.......................................................................................325 BSRTFILE構造体..................................................................205 BSRTFUNC構造体................................................................225 bsrtget関数.............................................................................190 BSRTKEY構造体..................................................................200 bsrtmrge関数..........................................................................191 BSRTOPT構造体...................................................................213 BSRTPRIM構造体................................................................192 bsrtput関数.............................................................................189 BSRTRCON構造体...............................................................222 BSRTREC構造体..................................................................198 BSRTSELE構造体.................................................................217 BSRTSKIP構造体..................................................................224 BSRTSUM構造体..................................................................214 BSSELE構造体......................................................................218 [E] EBCDICコード..........................................................................54 EnableOverwriteInputFileプロパティ.....................................153 ErrorCodeプロパティ..............................................................178 ErrorDetailプロパティ.............................................................179 [F] FieldDefinitionプロパティ......................................................154 FieldDelimiterプロパティ........................................................154 FjcobAlternateKeyプロパティ................................................155 FjcobDataCompressionプロパティ.........................................157 FjcobKeyCompressionプロパティ..........................................157 FjcobPrimeKeyプロパティ......................................................158 [H] HandlingSameKeyプロパティ.................................................159 [I] ICONVに関するエラーコード................................................290 IEEE形式浮動小数点2進数....................................................56 IgnoreControlCodeプロパティ................................................160 InputDataCodeプロパティ.......................................................161 InputFilesSkiprecプロパティ...................................................164 InputFilesプロパティ...............................................................162 InputFileTypeプロパティ........................................................162 [J] JEFコード..................................................................................55 [K] KeyCmdStrプロパティ............................................................164 [L] LineDelimiterプロパティ........................................................166 Little endian............................................................................325 [M] MaxRecordLengthプロパティ.................................................167 MessageFileNameプロパティ.................................................167 MessageLevelプロパティ........................................................168 M形式浮動小数点2進数.........................................................56 - 326 - 漢字ソートマージオプション(-M)............................................88 漢字ソートマージ機能......................................................43,323 漢字ソートマージ機能の留意事項..........................................44 漢字フィールド.......................................................................323 関数の組合せ........................................................................183 基本方式...........................................................................43,323 キーフィールド...................................................................51,323 キーフィールドオプション(-key-def).......................................84 キーフィールドに指定可能なデータ形式...............................59 警告メッセージ.......................................................................229 降順オプション(-r)...................................................................96 後置オーバパンチ符号付数字...............................................58 後置別符号付数字..................................................................58 互換に関する情報.....................................................................4 国語辞典方式...................................................................44,323 固定小数点2進数....................................................................56 固定フィールド.......................................................................323 固定フィールド指定.................................................................52 コピーオプション(-c)................................................................96 コピーオプション(-copy)........................................................105 コピー機能.........................................................................40,323 コピー機能を使用する場合..............................................73,103 [O] OCX使用時のエラー詳細コード...........................................290 OutputFileTypeプロパティ......................................................169 OutputFileプロパティ..............................................................168 [P] PowerSORT OCXからPowerSORTを使用する....................140 PowerSORT OCXの使用例..................................................304 PowerSORT OCXのプロパティシート...................................140 PowerSORT OLEカスタムコントロールとは...........................140 PowerSORT VBXからの移行方法........................................320 PowerSORTのbsortexコマンドを使用する............................102 PowerSORTのbsortコマンドを使用する..................................72 PowerSORTの概要..................................................................40 PowerSORTの使い方..............................................................70 PowerSORTの入出力環境......................................................50 [R] RconCmdStrプロパティ..........................................................170 Reverseプロパティ..................................................................172 [S] SelCmdStrプロパティ..............................................................173 SkipLeadingBlankプロパティ.................................................175 SubErrorCodeプロパティ........................................................180 SumCmdStrプロパティ...........................................................176 [さ] 再編成フィールド..............................................................52,323 再編成フィールドオプション(-e).............................................74 再編成フィールドの自己規定値に指定可能なデータ形式..... 67 先入力先出力(FIFO)機能オプション(-f)..............................80 先入力先出力(FIFO)機能...............................................42,323 サプレスオプション(-u)............................................................98 サプレス機能.....................................................................42,323 自己規定値............................................................................323 システム依存形式固定小数点2進数......................................56 システム依存形式符号なし固定小数点2進数........................56 実行環境オプション(-option)................................................123 実行後に参照するプロパティ................................................178 実行前に設定するプロパティ................................................145 シフトJISコード..........................................................................55 集約フィールド..................................................................52,324 集約フィールドオプション(-g).................................................80 集約フィールドで指定可能なデータ形式...............................61 出力ファイルオプション(-o)....................................................90 出力ファイル情報オプション(-output)..................................127 主要機能..................................................................................40 照合順序変更..........................................................................55 照合順序変更オプション(-x)................................................100 使用するPowerSORTの機能と関連するBSORT関数一覧..... 183 情報メッセージ.......................................................................227 使用例....................................................................................299 処理定義ファイル...................................................................324 処理定義ファイルオプション(-P)............................................90 処理定義ファイルを使用する場合..........................................73 数字..........................................................................................57 数値..........................................................................................55 ストリング.................................................................................324 [T] TempDirプロパティ................................................................177 [U] UCS-2形式...............................................................................55 Unicode..............................................................................55,325 UsableMemorySizeプロパティ...............................................178 UTF-8形式...............................................................................55 [V] Visual Basicのデータ型とPowerSORTのデータ形式の関係..... 320 [あ] アプリケーションログへの出力メッセージ..............................278 アーギュメントファイルオプション(-a)...............................73,104 一時ファイルのフォルダ指定方法について..........................315 インコアソート..........................................................................323 インデックス作成方法オプション(-I).......................................84 インデックス指定オプション(-X).............................................99 英字と数字の連結データに関する留意事項.......................316 エラーコード...........................................................................278 エラーメッセージ....................................................................233 オプション機能.........................................................................40 オプション機能と主要機能の組合せ.......................................43 [か] 外部10進形式2桁年号............................................................57 外部10進数..............................................................................57 各フィールドで指定可能なデータ形式...................................59 環境設定..................................................................................68 環境変数..................................................................................45 - 327 - 選択フィールド..................................................................52,324 選択フィールドオプション(-p).................................................91 選択フィールドに指定可能なデータ形式...............................62 前置オーバパンチ符号付数字...............................................58 前置別符号付数字..................................................................58 ソートオプション(-s).................................................................96 ソートオプション(-sort)..........................................................134 ソート機能..........................................................................40,324 ソート機能を使用する場合...............................................72,102 マージオプション(-merge).....................................................119 マージ機能........................................................................40,324 マージ機能を使用する場合.............................................72,103 メソッド.....................................................................................180 メッセージ...............................................................................227 メッセージとエラーコード........................................................227 メッセージファイルオプション(-G)...........................................80 メッセージレベルオプション(-l)...............................................87 メモリサイズオプション(-y)....................................................100 メモリ不足への対処方法について........................................315 文字..........................................................................................54 文字形式2桁年号....................................................................55 文字コード系変換オプション(-Q)...........................................94 [た] 追加機能の概要........................................................................1 定義オプション(-define)........................................................105 テキストファイルオプション(-T)...............................................96 データ形式...............................................................................54 [や] ユーザアプリケーション開発時の留意事項..........................186 [な] 内部10進形式2桁年号............................................................57 内部10進数..............................................................................56 入出力上書きオプション(-v)...................................................98 入出力ファイルシステムオプション(-F)..................................78 入力コード系オプション(-q)....................................................95 入力ファイルオプション(infile)...............................................84 入力ファイル情報オプション(-input)....................................106 入力レコード情報オプション(-record)..................................132 [ら] 留意事項................................................................................315 リリース情報................................................................................1 レコード形式オプション(-Z)..................................................101 レコード再編成機能..........................................................41,325 レコード集約オプション(-summary)......................................134 レコード集約機能..............................................................41,325 レコード選択機能..............................................................40,324 レコード長オプション(-z).......................................................101 レコード分離文字...................................................................325 レコード分離文字オプション(-L)............................................87 レコード読み飛ばしオプション(-R).........................................95 [は] 被比較フィールドと自己規定値に指定可能なデータ形式の組 合せ..........................................................................................66 被比較フィールドと比較フィールドに指定可能なデータ形式.... 62 被比較フィールドと比較フィールドに指定可能なデータ形式の 組合せ......................................................................................63 標準出力オプション(-w).........................................................99 ファイル種別に関する留意事項............................................318 フィールド...............................................................................324 フィールドとデータ形式...........................................................51 フィールドの指定方法..............................................................52 フィールドの指定方法について............................................315 フィールドの種類......................................................................51 フィールド分離文字...............................................................324 フィールド分離文字オプション(-t)..........................................97 符号なし2進数.........................................................................56 符号なし外部10進数...............................................................57 符号なし固定小数点2進数.....................................................56 符号なし数字...........................................................................58 符号なし内部10進数...............................................................56 富士通COBOLファイルに関するエラーコード.....................289 富士通COBOLファイルシステムに関する留意事項............319 浮動フィールド.......................................................................324 浮動フィールド指定.................................................................52 ふりがなフィールド.................................................................324 ふりがなフィールドに含まれる特殊文字の扱い......................45 プログラム修正一覧.................................................................26 ヘルプオプション(-h).......................................................84,106 [ま] マージオプション(-m).............................................................96 - 328 -
© Copyright 2024 Paperzz