| Interstage Data Effector ユーザーズガイド |
目次
索引
![]()
|
| 付録F サンプルプログラム |
入力データの中で検索条件に一致するデータを検索し、抽出結果をファイルに出力します。
スキーマ情報ファイル (schema.csv)
"Kbn","Kname","Number","Nname","Code","Name","Val" |
入力データファイル (indata.csv)
"01","設備","1000","第一開発部","AAA","ブロックA","1000" "01","設備","1000","第一開発部","BBB","ブロックB","1200" "01","設備","1000","第一開発部","CCC","ブロックC","800" "02","事務","1000","第一開発部","AAA","ブロックA","500" "02","事務","1000","第一開発部","BBB","ブロックB","200" "01","設備","1001","第二開発部","AAA","ブロックA","100" "01","設備","1001","第二開発部","BBB","ブロックB","500" "02","事務","1001","第二開発部","AAA","ブロックA","5000" "02","事務","1001","第二開発部","BBB","ブロックB","3200" "01","設備","1002","第三開発部","AAA","ブロックA","1500" "01","設備","1002","第三開発部","BBB","ブロックB","1000" "02","事務","1002","第三開発部","AAA","ブロックA","1520" |
3つの検索条件に対する抽出処理を同時に実行します。
以下にAPIを使用したプログラミング例を示します。
#include <stdio.h>
#include "libAsis.h"
/* 抽出機能 サンプルプログラム */
int main()
{
/* ハンドル変数群 */
ASISHANDLE handle;
/* 作業用変数群 */
int status;
/* 入力パラメタ群 */
char *logFile;
char *CharacterCode;
char *inFileType;
char *query1, *query2, *query3;
char *outFile1, *outFile2, *outFile3;
char *queryId1, *queryId2, *queryId3; char *schemaFile;
int inFileCnt;
char *inFile;
/* エラー用変数群 */
int errorLevel;
const char *Message;
/* 変数の初期化 */
handle = NULL;
/* 抽出ハンドルの割当て */
logFile = "C:\\shunAsis\\sample\\Select.log";
status = AsisAllocHandleSelect( &handle, logFile );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
/* 動作環境パラメタの指定 */
CharacterCode = "SHIFT-JIS";
inFileType = "CSV";
status = AsisInitSelect( handle, CharacterCode, inFileType,
NULL, NULL, 0, 0,
NULL, NULL, NULL );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
/* 抽出条件1の登録 */
query1 = "$Kbn==\'01\'";
outFile1 = "C:\\shunAsis\\sample\\out1.csv";
queryId1 = "1";
status = AsisAddQuerySelect( handle, query1, 0,
outFile1, queryId1, NULL, NULL );
if ( status == ASIS_ERROR ) {
goto ErrorEnd;
}
/* 抽出条件2の登録 */
query2 = "%1 AND $Code==\'AAA\'";
outFile2 = "C:\\shunAsis\\sample\\out2.csv";
queryId2 = "2";
status = AsisAddQuerySelect( handle, query2, 0,
outFile2, queryId2, NULL, NULL );
if ( status == ASIS_ERROR ) {
goto ErrorEnd;
}
/* 抽出条件3の登録 */
query3 = "~(%1) AND $Code==\'AAA\'";
outFile3 = "C:\\shunAsis\\sample\\out3.csv";
queryId3 = "3";
status = AsisAddQuerySelect( handle, query3, 0,
outFile3, queryId3, NULL, NULL );
if ( status == ASIS_ERROR ) {
goto ErrorEnd;
}
/* スキーマ情報の指定 */
schemaFile = "C:\\shunAsis\\sample\\schema.csv";
status = AsisSetSchemaSelect( handle, 1, schemaFile );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
/* 入力ファイルの指定 */
inFileCnt = 1;
inFile = "C:\\shunAsis\\sample\\indata.csv";
status = AsisSetDataSelect( handle, inFileCnt, &inFile );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
/* 抽出の実行 */
status = AsisExecuteSelect( handle );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
/* 抽出ハンドルの解放 */
status = AsisFreeHandleSelect( handle );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
return 0;
ErrorEnd: /* エラーが発生した際のエラー処理 */
/* エラー情報の取得 */
status = AsisGetErrorLevel( handle, &errorLevel );
if ( status == ASIS_SUCCESS ) {
switch( errorLevel ) {
case ASIS_EL_WARNING:
printf( "エラーレベル : 警告\n");
break;
case ASIS_EL_ERR_DATA:
printf( "エラーレベル : データのエラー\n");
break;
case ASIS_EL_ERR_PARAMETER:
printf( "エラーレベル : パラメタのエラーまたは使用方法のエラー\n");
break;
case ASIS_EL_ERR_ENVIRONMENT:
printf( "エラーレベル : 実行環境のエラー\n");
break;
default:
printf( "エラーレベル取得エラー\n");
break;
}
}
else {
printf( "エラーレベル取得エラー : %d\n", status );
}
status = AsisGetMessageText( handle, &Message );
if ( status == ASIS_SUCCESS ) {
printf( "メッセージ : %s\n", Message );
}
else {
printf( "メッセージ取得エラー : %d\n", status );
}
/* 抽出ハンドルの解放 */
if ( handle != NULL ) {
status = AsisFreeHandleSelect( handle );
if ( status != ASIS_SUCCESS ) {
printf( "ハンドル解放エラー : %d\n", status );
}
}
return 1;
} |
・抽出条件1の実行結果(out1.csv)
"Kbn","Kname","Number","Nname","Code","Name","Val" "01","設備","1000","第一開発部","AAA","ブロックA","1000" "01","設備","1000","第一開発部","BBB","ブロックB","1200" "01","設備","1000","第一開発部","CCC","ブロックC","800" "01","設備","1001","第二開発部","AAA","ブロックA","100" "01","設備","1001","第二開発部","BBB","ブロックB","500" "01","設備","1002","第三開発部","AAA","ブロックA","1500" "01","設備","1002","第三開発部","BBB","ブロックB","1000" |
・抽出条件2の実行結果(out2.csv)
"Kbn","Kname","Number","Nname","Code","Name","Val" "01","設備","1000","第一開発部","AAA","ブロックA","1000" "01","設備","1001","第二開発部","AAA","ブロックA","100" "01","設備","1002","第三開発部","AAA","ブロックA","1500" |
・抽出条件3の実行結果(out3.csv)
"Kbn","Kname","Number","Nname","Code","Name","Val" "02","事務","1000","第一開発部","AAA","ブロックA","500" "02","事務","1001","第二開発部","AAA","ブロックA","5000" "02","事務","1002","第三開発部","AAA","ブロックA","1520" |
AsisDeleteQuerySelect関数に、抽出ハンドルと検索番号を指定して検索式を削除します。
検索番号に0を指定した場合はすべての検索式を削除します。
|
目次
索引
![]()
|