過去の桐井戸端BBS (桐ver.8)
15964 半角「"」を全角に変換したい 777 2002/05/15-15:05
こんにちは。
桐8についての質問です。
一括処理内で、文字列内の半角 " を全角の ” に変換しようと、#文字置換([項目名],""","”")を使いましたが、構文エラーが出てうまくいきません。
なにか方法はないでしょうか。
ご助言よろしくお願いします。

15968 Re:"の全角変換について pokopon 2002/05/15-17:20
記事番号15964へのコメント
777さん こんにちは

>一括処理内で、文字列内の半角 " を全角の ” に変換しようと、#文字置換([項目
>名],""","”")を使いましたが、構文エラーが出てうまくいきません。
>なにか方法はないでしょうか。

実際にやってみましたが、難しいですね。
桐の場合、「"」と「”」、すなわち半角、全角の区別なく、関数内では通常の「"」として評価されているからでしょうか?

ということで、苦肉の策、変数に全角の「”」を代入させておいて置換するというのは?
「ツール」の環境設定で、&STRへ事前に「”」全角を代入。
そして、
#文字置換([],"""",&STR)
でうまくいきましたが・・・・。

もっと、スマートな方法があるのでしょうが、私が思いついてご希望に添う結果がでたのはこの方法でした。

#全角([])では、他の文字列も全角になりますしね。

15970 Re:"の全角変換について pokopon 2002/05/15-19:40
記事番号15968へのコメント
>一括処理内で、

失礼しました。一括処理内であれば、適当な変数を宣言し、そこに全角の「”」を代入させておけば同様にうまくいくかな?

変数宣言 固有,文字列{&A}
&A="”"
置換 [項目名]=#文字置換([項目名],"""",&A)

当方ではこれでうまくいっています。

15972 Re:"の全角変換について pokopon 2002/05/15-21:20
記事番号15964へのコメント
#文字置換([],"""","””")
#文字置換([],#j(34),#j(8521))

なるほどね〜 


15978 Re:"の全角変換について 777 2002/05/16-18:20
記事番号15972へのコメント
pokoponさん、ありがとうございます。
ばっちりです。

勉強になりました。
桐を始めて2ヶ月弱ですが、これからも精進して行きたいと思います。
15982 【補足】二重引用符号の記述ルール 佐田 守弘 2002/05/17-00:35
記事番号15978へのコメント
777さん
二重引用符号(全角の「”」も半角の「"」も同じ)は、
二重引用符強訴のものの文字列として記述する時には、2つ重ねて、「""」の様に記述します。
そして、これを文字列として記述するには、前後を二重引用符号で囲まなければならないので、
「""""」の様に4つ連続して記述する事によって1つの二重引用符号を表す文字列になります。

つまり最初の質問文に書かれている書式は、二重引用符号は3つだけなので、
この点でのエラーになった訳です。

●変数に入力しておくのが正解
二重引用符号を直接記述しようとすると、上記の様な理由で大変に紛らわしく、エラーの原因になりやすいものです。
同様に、カンマそのものを文字列で書くのも、区切りのカンマなのか、
カンマそのものの文字を書いているのか分かりにくくなりがちです。

そこで私は、文字列型変数として二重引用符号に「&Q」、カンマに「&C」を使い、
代入 &Q=#jis(34),&C=#jis(44)
の方法で、それぞれ二重引用符号とカンマの文字を入力しています。

この様にすれば、例えば、「"abc","xyz"」という文字列を印字コマンドで
出力するような場合、
印字 &Q,"abc",&Q,&C,&Q,"xyz",&Q
と書けばよく、分かりやすいと思います。

佐田守弘(KS-00119)

戻る