PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
13633 | 00/10/19 14:16:59 | RE(4):PB7.0: 半角カタカナを全角カタカナに変換する関数 By tmtm |
13623 | 00/10/18 19:25:47 | RE(3):PB7.0: 半角カタカナを全角カタカナに変換する関数 By ryochan |
13609 | 00/10/18 15:33:49 | RE(2):PB7.0: 半角カタカナを全角カタカナに変換する関数 By tmtm |
13601 | 00/10/18 09:40:15 | RE(1):PB7.0: 半角カタカナを全角カタカナに変換する関数 By ryochan |
13600 | 00/10/17 23:03:31 | PB7.0: 半角カタカナを全角カタカナに変換する関数 By tmtm |
カテゴリ:スクリプトの記述
日付:2000年10月18日 09:40 発信者:ryochan
題名:RE(1):PB7.0: 半角カタカナを全角カタカナに変換する関数
tmtmさん、おはようございます。
>半角カタカナを全角カタカナに変換する関数ってありますか?
LCMapStringA APIを使用します。
外部関数宣言に
function long GetUserDefaultLCID() library \'kernel32.dll\'
function long LCMapStringA(&
long Locale,&
long dwMapFlags,&
string lpSrcStr,&
long cchSrc,&
ref string lpDestStr,&
long cchDest)&
library \'kernel32.dll\'
とAPI宣言して下さい。
GetUserDefaultLCIDはデフォルトロケールIDです。
LCMapStringA関数の第一引数に使用します。
LCMapStringAは変換できない文字は
そのままの文字で返されます。
今回では半角→全角でしたが、
以下のdwMapFlagsの値
よって他の変換も可能です。
もちろん
濁音処理も行ってくれます。
例
スクリプト
仕様 sle_han:半角入力
sle_zen:全角出力
sle_hanの半角文字をsle_zen
に出力する。
//dwMapFlags
constant long LCMAP_HIRAGANA = 1048576 //0x00100000 カタカナ→ひらがな
constant long LCMAP_KATAKANA = 2097152 //0x00200000 ひらがな→カタカナ
constant long LCMAP_HALFWIDTH = 4194304 //0x00400000 全角→半角
constant long LCMAP_FULLWIDTH = 8388608 //0x00800000 半角→全角
long rtn
string l_src
string l_dest
l_dest = space(256)
l_src = sle_han.text
LCMapStringA(GetUserDefaultLCID(),LCMAP_FULLWIDTH,l_src,len(l_src) + 1,l_dest,256)
sle_zen.text = l_dest
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS その他
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.