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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.