7.4.5 文字編集DLL

<この項の構成>
(1) ファイルの取り込み
(2) 数字から数値に変換
(3) 数値から数字に変換
(4) 右寄せ配置の指定
(5) 左寄せ配置の指定

(1) ファイルの取り込み

(a) 汎用関数を使用した場合のC言語でのファイルの取り込み

汎用APインタフェースでは,XMAP3が提供するDLLを使用するため,インタフェース宣言ファイル,およびリンケージライブラリを取り込む必要があります。

(b) Visual BasicおよびAccessでのファイルの取り込み

文字編集DLLでは,XMAP3が提供するDLLを使用するため,インタフェース宣言ファイルを取り込む必要があります。Visual BasicおよびAccessでの,インタフェース宣言ファイルを取り込む例を次に示します。

  1. [プロジェクト]-[ファイルの追加]を選択し,インタフェーステーブルを指定します。
    X3mwst32.bas…インタフェース宣言ファイル
(c) Delphiでのファイルの取り込み

文字編集DLLでは,XMAP3が提供するDLLを使用するため,インタフェース宣言ファイルを取り込む必要があります。インタフェース宣言ファイルを取り込む例を次に示します。

  1. インタフェース宣言ファイル「X3mwst32.pas」をカレントフォルダにコピーします。
  2. [プロジェクト]-[オプション]を選択し,「ディレクトリ/条件」の検索パスを指定します。

(2) 数字から数値に変換

数字データを数値データに変換します。変換には,文字列変換関数「XmapStrAtoI」を使用します。

[図データ]

(a) 引数

unsigned char   *lpszIn:入力領域の先頭アドレス
long      nInLng:入力文字の有効桁数

(b) 戻り値(4バイト)

long:数字から数値に変換した結果

(c) 補足説明

*lpszInが示すアドレスからnInLngバイト分で,「0~9」「+」「-」「¥」「,」の文字だけを抜き出し,数字から数値変換します。不当な文字が検出された時点で,処理を中断し,値を返します。変換結果が,long型で表現できない数値の場合,0を返します。

変換例を次に示します。

入力数字出力数値
"¥123,456"123456
"-¥123,456"-123456
"123456"123456

(3) 数値から数字に変換

数値データを数字データに変換します。または,数値データを数字データに変換し,変換と同時に文字編集を設定します。変換には,文字列変換関数「XmapStrItoA」を使用します。

[図データ]

(a) 引数

unsigned char    *lpszOut  出力領域の先頭アドレス
long             nOutLng  出力領域の長さ
long             nIn    入力数値
long             nFormat  編集形式
     XMAPSTR_SUM       =0x00800000:コンマ編集
     XMAPSTR_SYMBOL      =0x00400000:先頭に"¥"付加
     XMAPSTR_FRONT      =0x00080000:先頭に符号付加
     XMAPSTR_BACK       =0x00040000:最後に符号付加
     XMAPSTR_PLUS       =0x00020000:プラス値も付加
     XMAPSTR_LEFT       =0x00008000:左寄せ
     XMAPSTR_RIGHT      =0x00004000:右寄せ
unsigned char      cData  埋字

(b) 戻り値

0:正常

1以上:異常(必要な出力領域の桁数)

(c) 補足説明

nInの数値を数字に変換し,nFormatが示す編集をします。*lpszOutからnOutLngの領域へ結果を格納します。余った領域をcDataで埋めます。変換結果よりも出力領域の桁数が短い場合,必要な桁数を返します。

変換例を次に示します。

入力数値nFormat出力数字
123456XMAPSTR_SUM"123,456"
123456XMAPSTR_SYMBOL"¥123456"
123456XMAPSTR_SUM|XMAPSTR_SYMBOL"¥123,456"
123456XMAPSTR_FRONT|XMAPSTR_PLUS"+123456"
-123456XMAPSTR_FRONT|XMAPSTR_PLUS"-123456"
123456XMAPSTR_FRONT"123456"
-123456XMAPSTR_FRONT"-123456"
-123456XMAPSTR_BACK"123456-"

nOutLng = 10でcData = " "の場合

入力数値nFormat出力数字
123456XMAPSTR_LEFT"123456 "
123456XMAPSTR_RIGHT" 123456"

(4) 右寄せ配置の指定

指定文字を指定領域へ,右寄せ配置します。右寄せ配置は,「XmapStrMoveRight」関数を使用します。

[図データ]

(a) 引数

unsigned char    *lpszOut  出力領域の先頭アドレス
long              nOutLng  出力領域の長さ
unsigned char    *lpszIn   入力領域の先頭アドレス
long              nInLng   入力文字列の有効桁数
unsigned char     cData   埋字

(b) 戻り値

0:正常

(c) 補足説明

*lpszInが示す領域の文字を,*lpszOutからnOutLngバイト分の領域へ右寄せ配置します。左側へは,cDataに指定した文字が埋められます。nInLng>nOutLngの場合,桁寄せはしません。

右寄せの配置例を次に示します。

入力文字出力文字(nOutLng=10,cData = " ")
"123456"" 123456"

(5) 左寄せ配置の指定

指定文字を指定領域へ,左寄せ配置します。左寄せ配置は,「XmapStrMoveLeft」関数を使用します。

[図データ]

(a) 引数

unsigned char    *lpszOut  出力領域の先頭アドレス
long              nOutLng  出力領域の長さ
unsigned char    *lpszIn   入力領域の先頭アドレス
long              nInLng   入力文字列の有効桁数
unsigned char     cData   埋字

(b) 戻り値

0:正常

(c) 補足説明

*lpszInが示す領域の文字を,*lpszOutからnOutLngバイト分の領域へ左寄せ配置します。右側へは,cDataに指定した文字が埋められます。nInLng>nOutLngの場合,桁寄せはしません。

左寄せの配置例を次に示します。

入力文字出力文字(nOutLng=10,cData = " ")
"123456""123456 "