機能
入力ファイルよりグループごとにデータを集計し、結果をファイルに出力します。
記述形式
#include "libAsis.h" /* 公開ヘッダ */ int AsisExecuteAnalyze( ASISHANDLE AHandle, /* ハンドル */ char *CharacterCode, /* 文字コード */ char *InFileType, /* 入力ファイルタイプ */ char *InFile, /* 入力ファイル */ char *OutFileType, /* 出力ファイルタイプ */ char *OutFile, /* 出力ファイル */ char *Gcondition, /* グループ式 */ char *Rcondition, /* 集計式 */ char *Gstring, /* 出力用のグループキーの代替文字列 */ char *RootTagName, /* 出力ルートタグ名 */ char *LCondition, /* 仮想項目定義 */ char *Reserve1); /* リザーブ(NULL) */ |
パラメタ
データ型 | パラメタ | 用途 | 説明 |
---|---|---|---|
ASISHANDLE | AHandle | 入力 | ハンドルを指定します。 |
char* | 入力 | 検索対象となる文字列の文字コードを指定します。 | |
char* | 入力 | 入力ファイルタイプを指定します。 | |
char* | 入力 | 入力ファイルまたは入力ファイルが配置されたディレクトリを指定を指定します。(注) | |
char* | 入力 | 出力ファイルタイプを指定します。 | |
char* | 入力 | 出力ファイルおよび出力方法を指定します。(注) | |
char* | Gcondition | 入力 | 集計単位を指定するグループ式を指定します。 |
char* | Rcondition | 入力 | 集計式を指定します。 |
char* | Gstring | 入力 | CSV形式で出力する場合に、グループ化に使用されていないグループ項目の値として、グループキーの代わりに出力される文字列を指定します。 |
char* | 入力 | 集計結果を取りまとめるルートタグ名を指定します。 | |
char* | LCondition | 入力 | 仮想項目機能を使う場合に、仮想項目定義を指定します。 |
char* | Reserve1 | - | NULLを指定します。 |
注) ファイル名に特殊な文字を指定した場合の扱いについては、 “パス名に指定する特殊な文字の扱い”を参照してください。
図2.15 入力ファイルタイプがCSVの場合
図2.16 入力ファイルタイプがXMLの場合
入力ファイルタイプがCSVの場合に、入力ファイルの項目名を記述したスキーマ情報ファイルを指定します。
スキーマ情報を指定した場合、入力ファイルは先頭行からデータとして扱います。
スキーマ情報ファイルに標準入力は指定できません。
入力ファイルを指定します。物理ファイル名を指定しない場合(""を記述)、標準入力より入力します。
入力ファイルが配置されたディレクトリを指定します。ディレクトリ名または物理ファイル名を指定しない場合(""を記述)、標準入力より入力します。
物理ファイル名とディレクトリ名の混在も指定可能です。
InFileパラメタの規約を以下に説明します。
本パラメタに物理ファイル名およびディレクトリ名を省略した場合は、標準入力より入力します。物理ファイルとディレクトリの混在も指定可能です。
標準入力だけを指定する場合は、本パラメタにNULL(または"")を指定してください。
入力ファイルタイプがCSVの場合で、スキーマ情報を指定する場合は、スキーマ情報ファイル名と各物理ファイル名またはディレクトリ名をセミコロン(;)で接続します。
入力ファイルタイプがCSVの場合で、スキーマ情報を指定しない場合は、各物理ファイル名またはディレクトリ名をカンマ(,)で接続します。
スキーマ情報を指定した場合、物理ファイル名またはディレクトリ名に指定した各ファイルの先頭行には項目名が記述されていないものとみなし、データとして集計対象になります。
スキーマ情報を指定しない場合、物理ファイル名またはディレクトリ名に指定した各ファイルの先頭行には項目名が記述されているものとみなし、先頭行のデータを集計対象にしません。
入力ファイルタイプがXMLで複数のファイルまたはディレクトリを指定する場合には 各物理ファイル名またはディレクトリ名をカンマ(,)で接続します。
注意
ディレクトリ配下のファイルは、ファイル名でソートされた順番に処理されます。ただし、ParallelNumパラメタ指定時には、順番は保証されません。
集計処理実行中に、指定されたディレクトリに対してファイルの追加、削除を実施した場合は、そのファイルが本機能に反映されない場合があります。
指定されたディレクトリが存在しない場合には、異常終了します。
指定されたディレクトリ配下にファイルが存在しない場合、または、処理すべきファイルが存在しない場合には、異常終了します。(ディレクトリが複数指定されていて、1つのディレクトリ配下にファイルが存在しなくても、他のディレクトリ配下にファイルが存在すれば、異常終了しません。)
指定されたディレクトリ直下のファイルだけが処理対象となります。サブディレクトリ配下のファイルは対象としません。
ディレクトリ配下の内容が以下の場合は、異常終了します。
Data Effectorとして処理対象外のファイルが存在する
参照
処理対象のファイルの種類については、“導入・運用ガイド”の“処理対象ファイルの種類”を参照してください。
ポイント
入力ファイルのエラー処理
入力ファイルタイプがCSVの場合、入力ファイルのエラー処理機能が利用できます。入力ファイルのエラー処理機能は、AsisSetErrFile関数で指定します。
その場合、入力ファイル名に半角英数字を入れるなど工夫すると便利です。
詳細については、“2.5.2 AsisSetErrFile”を参照してください。
出力先および出力方法を指定します。
出力ファイルタイプがCSVの場合で、見出し行とデータ行を別ファイルに分けて出力したいときは、以下のように指定します。
指定されたスキーマ情報ファイルには、見出し行だけを出力し、物理ファイルにはデータを出力します。
注意
スキーマ情報ファイルと物理ファイルの扱い
指定の組合せと出力先を以下に示します。
指定例 | 出力先 | |
---|---|---|
スキーマ情報ファイル | 物理ファイル | |
スキーマ情報ファイル名;物理ファイル名 | 指定したファイル | 指定したファイル |
;物理ファイル名 | 作成されない | 指定したファイル |
スキーマ情報ファイル名; | 指定したファイル | 標準出力 |
; | 作成されない | 標準出力 |
見出し行とデータ行に分けて標準出力へ出力することはできません。
スキーマ情報ファイル名と物理ファイル名には、セミコロン(;)を含むことはできません。
復帰値
復帰値 | 説明 |
---|---|
ASIS_SUCCESS | 関数が正常に終了したことを示します。 |
ASIS_ERROR | 関数の実行時に問題が検出されたことを示します。 |
関数の利用規則
OutFileパラメタで指定したファイルが存在する場合は上書きします。
注意
本関数の実行中にキャンセルをした場合、AsisSetEnvAnalyze関数のWorkFolderパラメタで指定した作業ディレクトリ配下に一時ファイルが残ることがあります。この場合は、一時ファイルを削除してください。