PB 電子会議室
| 発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) | 
|---|---|---|
| 11733 | 00/06/13 17:12:16 | RE(9):PB6.5: \"ひらがな\"のローマ字変換について By indian | 
| 11685 | 00/06/09 18:08:54 | RE(8):PB6.5: \"ひらがな\"のローマ字変換について By あすかちゃんの父 | 
| 11669 | 00/06/09 13:31:52 | RE(7):PB6.5: \"ひらがな\"のローマ字変換について By ryochan | 
| 11665 | 00/06/09 11:52:12 | RE(6):PB6.5: \"ひらがな\"のローマ字変換について By こてちゅ | 
| 11664 | 00/06/09 11:32:44 | RE(5):PB6.5: \"ひらがな\"のローマ字変換について By あすかちゃんの父 | 
| 11658 | 00/06/09 10:24:26 | RE(4):PB6.5: \"ひらがな\"のローマ字変換について By ryochan | 
| 11653 | 00/06/08 22:24:42 | RE(3):PB6.5: \"ひらがな\"のローマ字変換について By ryochan | 
| 11652 | 00/06/08 21:38:36 | RE(2):PB6.5: \"ひらがな\"のローマ字変換について By ryochan | 
| 11651 | 00/06/08 21:38:17 | RE(1):PB6.5: \"ひらがな\"のローマ字変換について By てとらぽっと | 
| 11649 | 00/06/08 18:55:43 | PB6.5: \"ひらがな\"のローマ字変換について By indian | 
カテゴリ:スクリプトの記述
日付:2000年06月08日 22:24 発信者:ryochan
題名:RE(3):PB6.5: \"ひらがな\"のローマ字変換について
  サンプルPGMを書いておきます。。
例外処理は加味していませんので宜しくお願いします。
あと、即興で作成したので、バグがあるかもしれません(^^;
使用データストア
ds_nstr・・・普通の文字(1字のみ)の情報を格納
ds_ystr・・・「きゃ」 「きゅ」「きょ」「しゅ」・・・の情報を格納
カラムはどちらもjpn(平仮名),roman(ローマ字)です。
String l_txt	//取得文字
String l_jpn 	//ひらがな
String l_roman 	//ローマ字
Int p 			//文字列場所変数 
Int n 			//ループカウンタ
Int l_row		//行取得変数
//1.「ゃ」「ゅ」「ょ」を含む字の処理
For n = 1 To ds_ystr.Rowcount()
    l_jpn = ds_ystr.Object.jpn[n]
    l_roman = ds_ystr.Object.roman[n]
    p = PosW(l_txt,l_jpn)
    Do While p > 0
        l_txt = ReplaceW(l_txt,p,LenW(l_jpn),l_roman)
        p= PosW(l_txt,l_jpn,p + LenW(l_roman))
    Loop
Next
//2.「っ」の処理
p  = PosW(l_txt,\'っ\')
Do While p > 0
	l_jpn = MidW(l_txt,p+1,1)
	l_row = ds_nstr.Find(\"jpn = \'\"+l_jpn+\"\'\",0,ds_nstr.RowCount())
	If l_row > 0 Then
		l_roman = ds_nstr.Object.roman[l_row]
		l_roman = LeftW(l_roman,1)  + l_roman
		l_txt = ReplaceW(l_txt,p,2,l_roman)
	End If
	p =  PosW(l_txt,\'っ\',p + LenW(l_roman))
Loop
//3.1文字変換の処理
p = 1
l_jpn =  MidW(l_txt,p,1)
Do While NOT l_jpn = \'\'
	l_row = ds_nstr.Find(\"jpn = \'\"+l_jpn+\"\'\",0,ds_nstr.RowCount())
	If l_row > 0 Then
		l_roman = ds_nstr.Object.roman[l_row]
		l_txt = ReplaceW(l_txt,p,1,l_roman)
                p += LenW(l_roman)
	Else
         p ++
        End If
	l_jpn =  MidW(l_txt,p,1)
Loop
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Oracle SQL*Net 2.3
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.




