もっと!REALbasic コードエディタ(Thread2)
■ このスレッドは過去ログ倉庫に格納されています
0802蚕蛾 ◆H0MotH/SqY
03/08/09 00:25ID:I779wtiW//ZENKAKU_KATAKANA_TABLE() as Stringにあらかじめ全角にしたカタカナを入れておく。
Dim i,l,code as Integer
Dim s,resultstr,char as String
l = Len(s) //ShiftJIS中の半角カタカナを探すのには基本的にLenBやMidBなどは使えない
For i = 1 to l
char = Mid(code,i,1)//本当はMidBしてリーダーバイトとトレーラーバイトの関係を使った方が速い
code = Asc(char)
If code > 160 and code < 224 Then //半角カタカナなら
resultstr = resultstr + ZENKAKU_KATAKANA_TABLE(code - 160)//テーブルから持ってくる
Else
resultstr = resultstr + char //そのままくっつける
//長い文字列の場合このやり方ではいちいち文字列の結合を行って遅いので
//バッファを用意して一度にまとめてくっつけるなり工夫が必要
End If
Next
って感じで変換テーブル用意するな漏れなら。
↑のコードも即席で書いただけあってまだまだ遅い方だが。
■ このスレッドは過去ログ倉庫に格納されています