同じはずの文字列が異なると判定されるNo.48623
Imabeppu さん 15/10/06 10:28
 
Imabeppu です。

秀丸メール Ver.6.46 (64bit) を使用しています。
以下のマクロを作成しました。

----------------------------------------------------------------
loaddll "TKinfo.dll";
#n = dllfunc("SelectFolder", "***", "***"); // ※
$ini = macrodir + "\\Test.ini";
$r = "受信";
$s = getinistr($ini, "Test", "dummy");
if ($s == "受信") message "1.OK";
else message "1.NG [" + $s + "]";
if ($r == "受信") message "2.OK";
else message "2.NG [" + $r + "]";
if ($s == $r) message "3.OK";
else message "3.NG [" + $s + "][" + $r + "]";
endmacro;
----------------------------------------------------------------

Test.ini の内容は以下の通りです。(Shift_JIS, CR+LF)

----------------------------------------------------------------
[Test]
dummy=受信
----------------------------------------------------------------

マクロを実行すると以下のように表示されました。

  1.NG [受信]
  2.OK
  3.NG [受信][受信]

いろいろ試してみたところ、2行目の SelectFolder でフォルダを選択
したときに自動で選択されるメールによって、発生したりしなかったり
するように思います。

当該メールをお送りすることはできないのですが、外国語メールなのが
原因なのかなと思います。

  Content-Type: text/plain; charset="windows-1252"; format=flowed
  Content-Transfer-Encoding: quoted-printable

上記の情報で再現するでしょうか。

[ ]
RE:48623 同じはずの文字列が異なると判定No.48624
秀まるお2 さん 15/10/06 11:07
 
 秀丸メールのマクロですが、例えば中国語のメールを開いてる状態でマクロ実
行すると、そのマクロは中国語コードページを前提した状態で動作してしまいま
して、いろいろ想定外のことが起きてしまうって問題が以前からあります。

 秀丸メールの方では、tkinfo.dllにSetJapaneseCodePageModeって関数があり
まして、それを呼び出せば、すべてが日本語を前提とした動作になってくれます。
すみませんがマクロの先頭でそれを呼ぶように修正お願いします。

 それで大丈夫だと思います。

 loaddllした直後に

    #n = dllfunc( "SetJapaneseCodePageMode", 1 );

 って1文を入れるだけでいいはずです。詳しくはSetJapaneseCodePageMode関
数のヘルプの方を参照お願いします。

[ ]
RE:48624 同じはずの文字列が異なると判定No.48625
Imabeppu さん 15/10/06 13:33
 
Imabeppu です。

>  秀丸メールの方では、tkinfo.dllにSetJapaneseCodePageModeって関数があり
> まして、それを呼び出せば、すべてが日本語を前提とした動作になってくれます。

これで解決しました。ありがとうございました。

[ ]