連結機能のshunreplaceコマンドを使って、ユーザー定義関数を呼び出す場合の例を示します。
ここでは、以下の文書例を使用して説明します。
"氏名","性別","生年月日","住所","職業" "井上 一郎","男","19590101","静岡県・・・","会社員" "高島 一郎","男","19550708","静岡県・・・","医者" "田中 刑事","男","19800805","静岡県・・・","公務員" |
文書Aに対して、個人情報を保護するため、氏名と住所を暗号化します。
C言語関数の作成
暗号化処理を行うC言語関数(Defunc)を作成します。
int Defunc( oper, **handle, **data ){ ・・・ switch( oper ){ case DE_USER_FUNCTION_THREAD_OPEN: /* 環境開設 */ ・・・ return 0; case DE_USER_FUNCTION_EXEC: /* 変換処理 */ /* 住所と氏名を暗号化する */ ~~~~~ return 0; case DE_USER_FUNCTION_FREE: /* 領域解放 */ /* 暗号化した文字列の領域を解放する */ |
動作環境ファイルの定義
replace用動作環境ファイル(Replace.cfg)に、Functionパラメタを定義します。
ライブラリパス:C:\lib\defunc.dll
ユーザー定義関数名:defunc
C言語関数名:Defunc
・・・ # ユーザー定義関数の指定 Function { library( "C:\lib\defunc.dll" ) { "defunc" "Defunc" } } ・・・ |
処理条件の記述
連結条件ファイル(例:JoinCond.cfg)のリターン式にユーザー定義関数を指定します.
ユーザー定義関数名:defunc
・・・ #リターン式でユーザー定義関数を呼び出す OutputDef { call( "defunc", $住所;$氏名 ) 暗号化処理, $性別, $職業 } ・・・ |
コマンドの実行
shunreplaceコマンドを実行します。
Windowsの場合
shunreplace -s D:\Shunsaku\cfg\Replace.cfg -j D:\Shunsaku\cfg\JoinCond.cfg |
Linux/Solarisの場合
shunreplace -s /home/shunsaku/cfg/Replace.cfg -j /home/shunsaku/cfg/JoinCond.cfg |
処理結果
以下のようなデータが出力されます。
暗号化処理,性別,職業 XXXXXXXXXX,"男","会社員" YYYYYYYYYY,"男","医者" ZZZZZZZZZZ,"男","公務員" |