PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
20580 03/11/18 11:43:44 RE(7):PB5.0.02: 漢字とASCIIコードの変換について By Chicchi
20579 03/11/18 11:30:45 RE(6):PB5.0.02: 漢字とASCIIコードの変換について By Chicchi
20575 03/11/17 14:10:46 RE(5):PB5.0.02: 漢字とASCIIコードの変換について By むーさん
20573 03/11/14 10:07:29 RE(4):PB5.0.02: 漢字とASCIIコードの変換について By Chicchi
20571 03/11/13 20:13:17 RE(3):PB5.0.02: 漢字とASCIIコードの変換について By Taka
20568 03/11/13 16:45:43 RE(2):PB5.0.02: 漢字とASCIIコードの変換について By Chicchi
20567 03/11/13 16:02:25 RE(1):PB5.0.02: 漢字とASCIIコードの変換について By M.M
20566 03/11/13 15:24:45 PB5.0.02: 漢字とASCIIコードの変換について By Chicchi

カテゴリ:PowerBuilderの開発環境
日付:2003年11月17日 14:10 発信者:むーさん
題名:RE(5):PB5.0.02: 漢字とASCIIコードの変換について

Chicchiさん、こんにちは。

>《固定文字列 \"価\" を印刷する場合》
>// 印刷する時は X / Y 方向の絶対位置と印字する文字のコードを指定。
>string s_xpos, s_ypos, s_char, s_esc
>s_xpos = \"100\"       // X 位置
>s_ypos = \"200\"       // Y 位置
>s_char = \"~137~191\"  // 印字文字 (\"価\")
>// これをカンマで結合してプリンタに SEND します。
>s_esc = s_xpos + \",\" + s_ypos + \",\" + s_char
ちょっと確認ですがこれでうまく「価」と印刷されます?
デバッグで動かしてみられるとわかりますが「\"~137~191\"」は「\"価」と等価です。


>このように、固定で文字列をセットする時は良いのですが、任意の文字列をセットする時、次のように
>指定すると \"価\" ではなく \"~137~191\" と表示されてしまいます。

>s_char = \"~~\" + String( i_asc_l ) + \"~~\" + String( i_asc_r )

>こうなる理由は明白で、s_char には \"~~137~~191\" が代入されているからですが、
えーとこの式は最終的に以下の式と同じですよね。
s_char = \"~~\" + \"137\" + \"~~\" + \"191\"
デバッグで確認するとs_charの中には「\"~137~191\"」と入っているはずです。

私の環境はPB7ですが根本的なものですので7と8で仕様が異なるとは思えません。
この辺の動きはPBではなくプリンタの仕様によりますのでプリンタの仕様を確認
してみてください。
どこのなんというプリンタを使っているか書くと誰か知ってるかもしれません。

>s_char = \"~137~191\"  // 印字文字 (\"価\")
上のこのケースで正しく印字されるのであれば10進変換はいらないことになります。

ちなみにエスケープシーケンスに~を使うのは珍しいのではないでしょうか?
プリンタの世界では多分(最近直接制御してないのでちょっと自信なし)
0x1bを使うのが普通ではないでしょうか。
s_char = \"~027\" + String( i_asc_l , \"000\") + \"~027\" + String( i_asc_r , \"000\")
とされてみてはいかがでしょう?




付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS Oracle SQL*Net 2.3
Browser (記載なし)

Server SoftWare

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

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