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日 19:25 発信者:ryochan
題名:RE(3):PB7.0: 半角カタカナを全角カタカナに変換する関数

tmtmさん、こんばんは。

半角カナ限定ですが...
前回のAPIを応用して関数を作りました。
あと、デフォルトロケールIDは0でもOKでした。
0を指定すると自動でデフォルトロケールIDとなります。

即興で作成したので、いろいろ検証してみてください。
関数:string kanatozen(string p_s)

constant long LCMAP_FULLWIDTH   = 8388608 //0x00800000  半角→全角
string rtn //戻り値
string l_char,l_next,l_cchar //変換用文字
int i //ループカウンタ
string l_dest
do until i = lenw(p_s)
 i ++
 l_dest = space(4) //初期化、バッファ確保
 l_char = midw(p_s,i,1)
 if (l_char>=\'~hA0\' and l_char <=\'~hDF\') then //半角カナの場合
  //(半)濁音処理
  l_next = midw(p_s,i + 1,1)
  if  l_next = \'゙\' or l_next = \'゚\' then
   l_cchar = midw(p_s,i,2)
   i ++
  else
   l_cchar = l_char
  end if
  LCMapStringA(0,LCMAP_FULLWIDTH,l_cchar,len(l_cchar) + 1,l_dest,4)
  rtn += l_dest
 else
  rtn += l_char
 end if
loop
return rtn


付加情報:

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.