画面・帳票サポートシステム XMAP3 プログラミングガイド 画面編

[目次][用語][索引][前へ][次へ]

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) 引数
(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 出力数字
123456 XMAPSTR_SUM "123,456"
123456 XMAPSTR_SYMBOL "\123456"
123456 XMAPSTR_SUM|XMAPSTR_SYMBOL "\123,456"
123456 XMAPSTR_FRONT|XMAPSTR_PLUS "+123456"
-123456 XMAPSTR_FRONT|XMAPSTR_PLUS "-123456"
123456 XMAPSTR_FRONT "123456"
-123456 XMAPSTR_FRONT "-123456"
-123456 XMAPSTR_BACK "123456-"

nOutLng = 10でcData = " "の場合

入力数値 nFormat 出力数字
123456 XMAPSTR_LEFT "123456 "
123456 XMAPSTR_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 "