1 件の投稿を表示中 (合計 21 個)
  • 作成者
    投稿
  • #5533
    zetajr
    メンバー

     Ver.7.00日本語版を使用しています。

     テキストの中に「ー」と「―」がある場合、Ctrl+Hで出てくるウィンドにて「―」を検索したり一文字分だけ”置換(R)”する場合は特に問題は無いのですが、”すべて置換(A)”を実行すると、「―」だけでなく一緒に「ー」までもが置換されてしまいます。テキスト内に「―」が全くなく、「ー」しか存在していない場合でも同様です。エスケープシーケンスの有効無効を切り替えて見たりもしましたが、動作に変化はありませんでした。

    例:
    1.用意する変換元文:「―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー」
    2.「―」のみ「あ」へ”変換(A)”を10回実行:「あーあーあーあーあーあーあーあーあーあー」<-「―」は文字列から正しく消えている 3.ここで無いはずの「―」を「ぅ」へ"すべて置換(A)":「あぅあぅあぅあぅあぅあぅあぅあぅあぅあぅ」<-本来なら置換箇所は無いはずなのに  個人的な理由で「―」から別文字への変換をするマクロをVer.6まで使っていたのですが、Ver.7になってこのような動きをするようになって非常に困っています。  回避方法はありませんでしょうか?

    #5534
    Yutaka Emura
    キーマスター

    zetajrさんは書きました:
     Ver.7.00日本語版を使用しています。

     テキストの中に「ー」と「―」がある場合、Ctrl+Hで出てくるウィンドにて「―」を検索したり一文字分だけ”置換(R)”する場合は特に問題は無いのですが、”すべて置換(A)”を実行すると、「―」だけでなく一緒に「ー」までもが置換されてしまいます。テキスト内に「―」が全くなく、「ー」しか存在していない場合でも同様です。エスケープシーケンスの有効無効を切り替えて見たりもしましたが、動作に変化はありませんでした。

    例:
    1.用意する変換元文:「―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー」
    2.「―」のみ「あ」へ”変換(A)”を10回実行:「あーあーあーあーあーあーあーあーあーあー」<-「―」は文字列から正しく消えている
    3.ここで無いはずの「―」を「ぅ」へ"すべて置換(A)":「あぅあぅあぅあぅあぅあぅあぅあぅあぅあぅ」<-本来なら置換箇所は無いはずなのに

     個人的な理由で「―」から別文字への変換をするマクロをVer.6まで使っていたのですが、Ver.7になってこのような動きをするようになって非常に困っています。

     回避方法はありませんでしょうか?

    こちらでは再現しないのですが、再現できる条件、たとえば、OS の種類など、できるだけ詳しく教えていただけますか?

    検索後の文字列を「う」にしないて、「あ」のままにしてもやはり再現しますか? つまり、検索ダイアログで、[すべて置換] ボタンを2回続けて押しても再現しますか?

    #5535
    yunoki
    メンバー

    柚木です。

    興味があったのでこちらでもテストしてみました。
    zetajrさんのご指摘の内容が再現しました。

    確認した環境
    XP MCE SP2
    EmEditor Ver 7.00 レジストリを使用

    ——————————————
    ・例文をドキュメントに貼り付け
    ・「ー」で検索
    ・「ー」のみがハイライト(正常)
    ——————————————
    ・例文をドキュメントに貼り付け
    ・「ー」を「1」に置換
    ・「ー」がひとつ置換される(正常)
    ・置換ボタンを繰り返す(正常)
    ——————————————
    ・例文をドキュメントに貼り付け
    ・「ー」を「1」にすべて置換
    ・「ー」と「―」が混同されて同時に置換(不正)
    ——————————————

    #5536
    Yutaka Emura
    キーマスター

    yunokiさんは書きました:
    柚木です。

    興味があったのでこちらでもテストしてみました。
    zetajrさんのご指摘の内容が再現しました。

    確認した環境
    XP MCE SP2
    EmEditor Ver 7.00 レジストリを使用

    ——————————————
    ・例文をドキュメントに貼り付け
    ・「ー」で検索
    ・「ー」のみがハイライト(正常)
    ——————————————
    ・例文をドキュメントに貼り付け
    ・「ー」を「1」に置換
    ・「ー」がひとつ置換される(正常)
    ・置換ボタンを繰り返す(正常)
    ——————————————
    ・例文をドキュメントに貼り付け
    ・「ー」を「1」にすべて置換
    ・「ー」と「―」が混同されて同時に置換(不正)
    ——————————————

    こちらでは Windows XP SP2 でも再現しないです。おかしいですね。検索する文字列は、カーソル位置にある単語を自動的に取得してしまうので、置換する前に検索する文字列が間違っていないか確認してください。

    もしよろしければ、JavaScript か VBScript で再現できるマクロを作成して書いていただけると、確実に再現できると思います。もし可能ならよろしくお願いします。

    #5537
    yunoki
    メンバー

    大文字と小文字を区別するのチェックをはずしても再現しませんか?

    #5538
    Yutaka Emura
    キーマスター

    yunokiさんは書きました:
    大文字と小文字を区別するのチェックをはずしても再現しませんか?

    大文字と小文字を区別するのチェックをはずしてあります。置換ダイアログの他のチェックボックスもすべて外してあります。こちらで試したマクロは、次の通りです。まず、新規作成の状態から、

    document.selection.Text = “―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー”;
    document.selection.Replace(“ー”,”1″,eeFindNext | eeReplaceAll);

    この結果は、

    ―1―1―1―1―1―1―1―1―1―1

    となります。(正常)

    マクロの2行目の部分は、マクロの記録で自動的に記録できるので、もし条件が違う場合は、その行を教えていただければ幸いです。

    #5539
    zetajr
    メンバー

    WinXPSP2日本語で使っています。Ver.7.00のProをレジスト済みです。日本語変換はIME2002です。

    >つまり、検索ダイアログで、[すべて置換] ボタンを2回続けて押しても再現しますか?

     再現します。

     ただ、追加でいろいろ試したところ、「大文字と小文字を区別する(C)」のチェックボックスがオフになっていると出る現象のようです。ここのチェックをオンにすると、現象が出なくなりました。

    Yutakaさんは書きました:

    zetajrさんは書きました:
     Ver.7.00日本語版を使用しています。

     テキストの中に「ー」と「―」がある場合、Ctrl+Hで出てくるウィンドにて「―」を検索したり一文字分だけ”置換(R)”する場合は特に問題は無いのですが、”すべて置換(A)”を実行すると、「―」だけでなく一緒に「ー」までもが置換されてしまいます。テキスト内に「―」が全くなく、「ー」しか存在していない場合でも同様です。エスケープシーケンスの有効無効を切り替えて見たりもしましたが、動作に変化はありませんでした。

    例:
    1.用意する変換元文:「―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー」
    2.「―」のみ「あ」へ”変換(A)”を10回実行:「あーあーあーあーあーあーあーあーあーあー」<-「―」は文字列から正しく消えている
    3.ここで無いはずの「―」を「ぅ」へ"すべて置換(A)":「あぅあぅあぅあぅあぅあぅあぅあぅあぅあぅ」<-本来なら置換箇所は無いはずなのに

     個人的な理由で「―」から別文字への変換をするマクロをVer.6まで使っていたのですが、Ver.7になってこのような動きをするようになって非常に困っています。

     回避方法はありませんでしょうか?

    こちらでは再現しないのですが、再現できる条件、たとえば、OS の種類など、できるだけ詳しく教えていただけますか?

    検索後の文字列を「う」にしないて、「あ」のままにしてもやはり再現しますか? つまり、検索ダイアログで、[すべて置換] ボタンを2回続けて押しても再現しますか?

    #5540
    zetajr
    メンバー

     自分が使っているマクロはこのようなものです。どこに関係があるかわかりませんでしたので、そのままベタで記載いたします。
     先ほど大文字小文字を区別するようにすると回避できる、とご報告いたしましたが、下記マクロにおいては、回避できずに誤変換してしまいました。

     環境については、WinXPSP2+IE7日本語版、IMEはXP標準装備のIME2002のままです。

    ~~~~~~~~~~~~~~~~~~~~
    document.selection.Replace(“―”,”―\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“ソ”,”ソ\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“Ы”,”Ы\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“Ⅸ”,”Ⅸ\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“噂”,”噂\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“浬”,”浬\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“欺”,”欺\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“圭”,”圭\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“構”,”構\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“蚕”,”蚕\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“十”,”十\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“申”,”申\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“曾”,”曾\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“箪”,”箪\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“貼”,”貼\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“能”,”能\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“表”,”表\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“暴”,”暴\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“予”,”予\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“禄”,”禄\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“兔”,”兔\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“喀”,”喀\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“媾”,”媾\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“彌”,”彌\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“拿”,”拿\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“杤”,”杤\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“歃”,”歃\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“濬”,”濬\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“畚”,”畚\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“秉”,”秉\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“綵”,”綵\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“臀”,”臀\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“藹”,”藹\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“觸”,”觸\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“軆”,”軆\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“鐔”,”鐔\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“饅”,”饅\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“鷭”,”鷭\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“偆”,”偆\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);
    document.selection.Replace(“砡”,”砡\”,eeFindNext | eeFindReplaceEscSeq | eeReplaceAll);

    ~~~~~~~~~~~~~~~~~~~~

    #5543
    snow
    参加者

    一番最初に書かれている手順で再現しました。
    というか、最初から「―」を「ぅ」に「すべて置換」で全部置き換わりました。
    大文字小文字のチェックなし、かつ正規表現のチェックなしで再現しました。
    どちらかがチェックされていれば再現しません。

    #5544
    Yutaka Emura
    キーマスター

    問題が発生する方は、OS のバージョンと IE のバージョン、それから Windows の System 32 フォルダにある shlwapi.dll のバージョンとタイムスタンプを教えていただけますか? ファイルのバージョンは、エクスプローラでファイルのプロパティを選択すると詳細タブに表示されます。

    #5548
    zetajr
    メンバー

    ~~~~~~~~~~~~~~~~~~~~
    WindowsXP Pro. -> 2600.xpsp_sp2_qfe070227-2300 (Service Pack 2)
    IE -> 7.0.5730.11/更新バージョン:0
    shlwapi.dll -> 6.00.2900.2995 (xpsp.060913-0019)
    ~~~~~~~~~~~~~~~~~~~~

     当方の環境だと上記のようになってました。

    #5549
    snow
    参加者

    Windows: XP Professional version 2002 Service Pack 2
    Internet Explorer: 6.0.2900.2180.xpsp_sp2_gdr.070227-2254
    shlwapi.dll: 6.0.2900.3231, 2007/10/11 15:11:14

    以上です。

    #5550
    gen
    参加者

    Yutakaさんは書きました:

    yunokiさんは書きました:
    大文字と小文字を区別するのチェックをはずしても再現しませんか?

    大文字と小文字を区別するのチェックをはずしてあります。置換ダイアログの他のチェックボックスもすべて外してあります。こちらで試したマクロは、次の通りです。まず、新規作成の状態から、

    document.selection.Text = “―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー”;
    document.selection.Replace(“ー”,”1″,eeFindNext | eeReplaceAll);

    この結果は、

    ―1―1―1―1―1―1―1―1―1―1

    となります。(正常)

    マクロの2行目の部分は、マクロの記録で自動的に記録できるので、もし条件が違う場合は、その行を教えていただければ幸いです。

    興味があったので私もやってみました。
    私のPCでも再現します。
    WINDOWS XP PROFESSIONAL
    ビルド2600.XPSP.071130-1427 SP3 v3264

    “―ー―ー―ー―ー―ー―ー―ー―ー―ー―”
    を記載されたマクロを実行すると
    “111111111111111111111111111111111111111”
    となり
    なお且つ
    Ctl+Zで元に戻すと
    “―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー―”
    になり、1セット多くなりました。(その前の半角の”1″で多くなっていますが)又”1″を全角にしても同じです。
    ※置き換えのチェックは全てOFFです。
    Ctrl+Hで置き換えを行うと
    “1111111111111111111”
    になり1セットでした。
    又”―”は罫線なのですね”-”全角マイナスでは正しく変換
    していました。

    #5551
    arere
    メンバー

    気になったので試してみました。
    試したのは

    >例:
    >1.用意する変換元文:「―ー―ー―ー―ー―ー―ー―ー―ー―ー―ー」
    >2.「―」のみ「あ」へ”変換(A)”を10回実行:「あーあーあーあーあーあーあーあーあーあー」3.ここで無いはずの「―」を「ぅ」へ”すべて置換(A)”:「あぅあぅあぅあぅあぅあぅあぅあぅあぅあぅ」<-本来なら置換箇所は無いはずなのに

    これです。

    まずVista x64では現象を確認できませんでした。

    それから普段雑多な目的で使用しているXP SP2(070227-2300, shlwapi.dll: 6.00.2900.3121(xpsp_sp2_qfe.070418-1302))
    そしてVMware上でWindows Update(Microsoft Updateにまだ変更していない)の適用以外をしていないほぼクリーン
    (何かをインストールする際にはsnapshot機能を使って分岐先でおこなっている) なXP SP2(070227-2300, shlwapi.dll: 6.00.2900.3157()内詳細メモ忘れ)
    上で試してみましたが、こちらは両方とも再現しました。
    他の方が書かれているように、「大文字と小文字を区別する」「正規表現を使用する」の何れかかまたは両方にチェックが入っていると正常です。
    後者の環境は数ヶ月間使っていなかったため最新のパッチが適用されていませんでしたので、適用してみましたがshlwapi.dllが6.00.2900.3231
    (xpsp_sp2_qfe.071010-1316)に上がったものの症状は変わりませんでした。

    #5552
    arere
    メンバー

    同じくVMware上に構築してあるWindows2000SP4英語版で試したところ、こちらでも再現しました。
    発生しない条件も含めて同じでした。

    #5553
    HBpencil
    参加者

    私も気になって試したら、再現したので報告します。

    行った操作:
     1)7.00で、zetajrさんが最初に報告された手順【NG】
       >あぅあぅあぅあぅあぅあぅあぅあぅあぅあぅ
     2)7.00で、JavaScriptの手順【NG】
       >11111111111111111111
     3)EmEditorを 7.00 ⇒ 6.00.4 に入れ替え。
     4)6.00.4で、zetajrさんが最初に報告された手順【OK】
       >あーあーあーあーあーあーあーあーあーあー
     5)6.00.4で、JavaScriptの手順【OK】
       >―1―1―1―1―1―1―1―1―1―1
     6)EmEditorを 6.00.4 ⇒ 7.00 に戻す。
     7)7.00で、zetajrさんが最初に報告された手順【NG】
       >あぅあぅあぅあぅあぅあぅあぅあぅあぅあぅ
     8)7.00で、JavaScriptの手順【NG】
       >11111111111111111111

    再現した環境の情報:

    EmEditor Proofessional Version 7.00
    EmEditor Proofessional Version 6.00.4

    Windows XP Professional version 2002
    Build 2600.xpsp_sp2_gdr.070227-2254 : Service Pack 2

    Internet Explorer 6
    Version: 6.0.2900.2180.xpsp_sp2_gdr.070227-2254

    shlwapi.dll
    ファイルバージョン: 6.00.2900.3231 (xpsp_sp2_qfe.071010-1316)
    更新日時: 2007年10月11日、15:11:14

    以上、応援してますので、よろしくお願いします。

    #5554
    Yutaka Emura
    キーマスター

    たくさんの方に書いていただいて、大変申し訳ないです。私の方でも再現できる環境がありました。問題は shlwapi.dll に含まれる特有の API を使っているために環境による違いがあるのですが、もう少し調べてみます。

    #5556
    Yutaka Emura
    キーマスター

    ちなみに、問題のあるマシンでは、IE の検索ダイアログから「―」を検索しようとすると、「―」と「ー」の両方が検索されてしまいます。お試しください。

    #5557
    Yutaka Emura
    キーマスター

    続報です。コントロールパネルの地域と言語のオプションで、「現在の形式」が「日本語(日本)」の場合に問題が発生することがわかりました。これが「英語(米国)」だと問題は発生しません。今回は、API の隠れた動作を発見してしまいました。問題となる API は、StrCmpNI という関数です。これは修正します。ご報告ありがとうございました。

    #5560
    Yutaka Emura
    キーマスター

    置換のロケール依存問題についてですが、先ほど公開した 7.00.1 RC 1 で修正しました。ご報告どうもありがとうございました。

    #5569
    arere
    メンバー

    なるほど。
    普通の人って「ー」と「-」を区別しないで使っている事が多いのでIE上やファイル検索の際に同一視するようにしてしまったんじゃないかと推測できますね。
    ただMicrosoftに対しては文字集合を許容するAPIと許容しないAPIくらいは明確にして分けるかフラグを付けるかして欲しいところですけど。

1 件の投稿を表示中 (合計 21 個)
  • このトピックに返信するにはログインしてください。