PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
23592 09/09/03 09:29:44 RE(5):PB10.0: 全角文字⇒半角文字の変換関数について By 梅吉
23591 09/09/02 19:38:17 RE(4):PB10.0: 全角文字⇒半角文字の変換関数について By ada_gl
23590 09/09/02 10:54:09 RE(3):PB10.0: 全角文字⇒半角文字の変換関数について By 梅吉
23589 09/09/01 18:29:18 RE(2):PB10.0: 全角文字⇒半角文字の変換関数について By ada_gl
23588 09/09/01 16:51:23 RE(1):PB10.0: 全角文字⇒半角文字の変換関数について By 梅吉
23587 09/09/01 15:31:45 PB10.0: 全角文字⇒半角文字の変換関数について By ada_gl

カテゴリ:PowerBuilderの開発環境
日付:2009年09月02日 10:54 発信者:梅吉
題名:RE(3):PB10.0: 全角文字⇒半角文字の変換関数について

ada_glさん、こんにちは。

>梅吉さん、こんばんは。
>失礼しました。
>PowerBuilder Free Library のサンプル(v6.0)をダウンロードし、v10.0で再構築し、そのまま(プログラム
コード
>など一切変更しない状態で)「実行」したところ、「in 変換対象文字列(例 AbC23あ)」⇒何も変換され
ず表示さ
>れます。そこで、同じことをv7.0で実行したところ正常に「in 変換対象文字列(例 AbC23あ)」と半角にすべ
き全角は
>期待通り変換されます。v7.0とv10.0で「gf_zentohan」の関数のスクリプトを変更しないと使用できないので
はないか
>か?また、サンプルプログラムはv10.0では使用できないものか?と思いますが、ご存知の方、教えてくださ
い。

V7とV10で動作確認を行っているとの事でしたので
サンプルコードをダウンロードして同じ状態でデバックを行い動きの違いを見てみました。

確かにV10ではV7と異なった動きをしていますね。

ソース(gf_zentohan)でいうと
67行目の
「lc_zen = as_zen」
がV7とV10で違う動きをしているようです。

※変数宣言は下記の通り
 char lc_zen[]
 string as_zen

Char型の構造体にString型を代入する際にChar型の構造体に格納される形が異なってしまっています。

では、なぜ動きが変わってしまったのか・・・
おそらくV10からUnicode対応したことが原因だと思います。
例えばソース内で使われている「asc()」ひとつとってもそれぞれのヘルプでは下記のように違いが生まれてい
ます。

V7 :指定された文字列の先頭文字を ASCII コード に変換します。
V10:指定された文字列の先頭文字を Unicode コード ポイントに変換します。

という事で、サンプルコードをそのままV10で使用することは難しいと思います。
当然ある程度手を加えることで同じような動きをさせることはできるのでご自分で調整されてはいかがでしょう
か?

あまり調べずに想像で言っている部分もあるので異論反論等のご指摘のある方いらっしゃいましたら解説をよろ
しくお願いします。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

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