RichTextBoxでの強制文字変換回避について

解決


dragon0712  2009-10-15 21:39:53  No: 102008  IP: 192.*.*.*

windows Xp pro sp3
VB6 sp6  です。

テキスト形式で”(全角ダブルクォーテーション)又は’(全角のシングルクォーテーション)が入った文書を作成したとします。その文書をRichTextBoxで読み込むと"(半角ダブルクォーテーション)、’(全角のシングルクォーテーション)に変換されてしまいます。RTF形式で保存、読み込み、コピー AND ペーストでも同様な現象となります。
このような現象を回避する方法をご存知でしたらご教示ください。
よろしくお願いいたします。

編集 削除
魔界の仮面弁士  2009-10-15 22:46:56  No: 102009  IP: 192.*.*.*

> RTF形式で保存、読み込み、コピー AND ペーストでも同様な現象となります。

現象を再現できませんでした。こちらでも検証してみたいので、

・実際の文書ファイルの内容
・RichTextBox の設定(フォント指定など)

などを提示していただけ無いでしょうか。


また、コピー & ペースト等では無く、直接入力に対しても、
そのような変換がおこなわれてしまうのでしょうか?

編集 削除
dragon0712  2009-10-15 23:13:28  No: 102010  IP: 192.*.*.*

魔界の仮面弁士さんありがとうございます。

私の環境で発生サンプルとしては
新しいFromにRichTextBoxを貼り付けます。
RichTextBoxの内容を.SaveFile xxxx,rtfRTFで保存、
.LoadFile xxxxx, rtfRTFで読み込みできるようにして
適当なテキストを打ち込みます全角の’又は”を含む
書き込みを実施後、クリヤーして読み込むと全角が半角になります。
テキスト形式で保存するとなりません。
以上、よろしくお願い致します。

編集 削除
dragon0712  2009-10-15 23:41:09  No: 102011  IP: 192.*.*.*

説明を追加致します。
作成しているプログラムでは各行の末尾に制御文字等を追加する必要があることから表示のままの状態をAPIを使用して各行ごと抽出し、制御文字を追加して、抽出行に戻す作業を実施します。行の情報はテキストのみの扱いとしてます。この作業を実施するとサンプルと同様な全角が半角となる現象が発生します。
よろしくお願い致します。

編集 削除
GOD  2009-10-16 10:36:02  No: 102012  IP: 192.*.*.*

これと似ているのかな。
http://social.msdn.microsoft.com/forums/ja-JP/vbgeneralja/thread/7d877edc-4876-462f-bdfb-3f41c5f105f8/

編集 削除
dragon0712  2009-10-16 21:42:29  No: 102013  IP: 192.*.*.*

GOD様、ありがとうございます。

貴URLは参考にしましたが、解決はできませんでした。
他に方法はないでしょうか?

編集 削除
GOD  2009-10-19 13:49:10  No: 102014  IP: 192.*.*.*

他にもっと良いやり方があるかもしれませんが、これではどうでしょう。

Private Sub TRFRead(FName As String)
    Dim strRTF As String
    Dim intFNo As Integer
    Dim strFName As String

    intFNo = FreeFile
    Open FName For Binary As intFNo
    strRTF = String(LOF(intFNo), vbNullChar)
    Get intFNo, , strRTF
    Close intFNo
    'これいるかな?
    strRTF = Replace(strRTF, "\rquote ", "\rquote")
    strRTF = Replace(strRTF, "\rdblquote ", "\rdblquote")
    'シングルクォート変換
    strRTF = Replace(strRTF, "\rquote", "\'81\'66")
    'ダブルクォート変換
    strRTF = Replace(strRTF, "\rdblquote", "\'81\'68")
    RichTextBox1.TextRTF = strRTF
End Sub

編集 削除
dragon0712  2009-10-20 20:05:41  No: 102015  IP: 192.*.*.*

GODさんありがとうございます。
参考にさせていただきます。
少し時間がかかると思いますので、後ほど結果報告させていただきます。

編集 削除
dragon0712  2009-10-21 22:42:01  No: 102016  IP: 192.*.*.*

GODさんありがとうございました。
読み出し時に変更することで、なんとか使用できる目途がつきました。
今後ともよろしくお願い致します。

編集 削除