Ispellを鶴亀秀丸で使うには(初歩的で済みませんが)No.03294
いろいろ さん 01/10/08 20:31
 
ひろさん 今日は

先日読み込みを読んでいたら、ispellを鶴亀+秀丸でつかうひろさんの以下のマクロ
が目に入り、これだと思って早速以下のようにいたしました。

(1) ispell-3.1.20.w32.tar.gzをdownloadして解凍、spell.exeを秀丸と同じディレ
クトリ(c:\Program Files\Hidemaru)に、4つのdictionaryをreadme.w32の指示通りd
efaultのc:\user\local\libにそれぞれコピー

(2) 以下の書き込みの//----後と最後の//----の間をcut and pasteしてispell.mac
として秀丸マクロのディレクトリ(c:\Program Files\Hidemaru\macros)に保存

(3) ご指示通り、tkhlp115.lzhをdownloadして、それからOverWrite.macを秀丸マク
ロディレクトリ(c:\Program Files\Hidemaru\macros)に保存

(4) 秀丸でマクロとしてispell.macを登録。

としていざ秀丸と鶴亀でスペルチェックをしようとすると、

    Ispell.mac(24):式がおかしいです

とでてしまいます。秀丸は3.08, 鶴亀は1.40, Win2000です。ご指導いただければ幸
いです。念のため私のコピーしたひろさんの書き込みの部分を転記します。

//-------------------------------------------------------------------
if(filename == ""){
  loaddll "tkinfo.dll";
  if(!result){
    message "ファイルを保存してから実行してください";
    goto End;
  }
  if(dllfunc("IsTuruKame")){
    goto TuruKame;
  }
}
else goto Hidemaru;

TuruKame:
  ##main = dllfunc("MainWnd");
  if(##main == 0){
    ##open = 1;
    ##handle = hidemaruhandle(0);
    if(dllfunc("IsTrayIcon")){
      ##main = sendmessage(findwindowclass("TuruKameFrame"),0x0112,0xF120,0);
      setactivehidemaru ##handle;
      ##main = dllfunc("MainWnd");
    }
    else{
      message "本体が起動していないと、実行できません。";
      goto End;
    }
  }
  $$account = dllfuncstr("ExecAt",##main,"CurrentAccount");
  $$folder = dllfuncstr("ExecAt",##main,"CurrentFolder");
  ##mailType = dllfunc("MailType");
  if(##mailType != 0 && ##mailType != 5){
    message "「草稿」「未送信」に保存された送信メールしか実行できません";
    goto End;
  }
  if(!readonly)execmacro macrodir + "\\turukame\\OverWrite.mac";
  loaddll "tkinfo.dll";
  $$draftAccount = dllfuncstr("CurrentAccount");
  $$draftFolder = dllfuncstr("CurrentFolder");
  if($$draftFolder != "草稿" && $$draftFolder != "未送信"){
    message "送信メールしか実行できません";
    goto End;
  }
  ##handle = hidemaruhandle(0);
  $fileName = dllfuncstr("MailFilePath");
  if(##handle != ##main){
    if(!dllfunc("Sync"))goto Error;
  }
  else{
    message "エディタ・ウィンドでしか動作しません。";
    goto End;
  }
  if(!dllfunc("SetMainWndTop"))goto Error;
  closehidemaru ##handle;
  if(!dllfunc("ExecAt",##main,"SelectFolder",$$account,""))goto Error;
  runsync2 "ispell -L20 -M -j -de:/usr/local/share/ispell/US-xlg.hash -x \""
  //↑この行は ispell.exe や辞書の置き場所により変更が必要
    + $fileName + "\"";
  if(!dllfunc("ExecAt",##main,"RemakeList",$$draftAccount,$$draftFolder))
    goto Error;
  if(!dllfunc("ExecAt",##main,"SelectFolder",$$draftAccount,$$draftFolder))
    goto Error;
  if(!dllfunc("OpenMail"))goto Error;
  if(!dllfunc("ExecAt",##main,"SelectFolder",$$account,$$folder))goto Error;
  if(##open)##tmp = dllfunc("ExecAt",##main,"Exit");
  goto End;

Error:
  message "DLL error";
End:
  freedll;
  endmacro;

Hidemaru:
  freedll;
  if(!readonly)save;
  if((charset & 64) & (!(charset & 128)))##lf = 1;
  ##charset = charset & 63;
  if(##charset == 2 || ##charset == 5 || ##charset == 6){
    message "非対応文字コードです";
    endmacro;
  }
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  ##Timestamp = getregnum("Timestamp");
  ##Sharing = getregnum("Sharing");
  ##DupOpen = getregnum("DupOpen");
  writeregnum "Sharing",0;
  writeregnum "DupOpen",0;
  writeregnum "Timestamp",0;
  closereg;
  envchanged;
  reopen;
  runsync2 "ispell -L20 -M -j -de:/usr/local/share/ispell/US-xlg.hash \""
  //↑この行は ispell.exe や辞書の置き場所により変更が必要
    + filename2 + "\"";
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  writeregnum "Sharing",##Sharing;
  writeregnum "DupOpen",##DupOpen;
  writeregnum "Timestamp",##Timestamp;
  closereg;
  envchanged;
  reopen;
  if(!##lf){
    if(##charset == 1)saveas filename2, sjis;
    else if(##charset == 3)saveas filename2, euc;
    else if(##charset == 4)saveas filename2, jis;
  }
  endmacro;
//-------------------------------------------------------------------


[ ]
RE:03294 Ispellを鶴亀秀丸で使うには(初歩的で済みませんが)No.03295
ひろ さん 01/10/09 00:19
 
 いろいろさん今日は、ひろです。
> 先日読み込みを読んでいたら、ispellを鶴亀+秀丸でつかうひろさんの以下のマクロ
> が目に入り、これだと思って早速以下のようにいたしました。
 他の人に使われるとは思わなかった(^^;。

> (3) ご指示通り、tkhlp115.lzhをdownloadして、それからOverWrite.macを秀丸マク
> ロディレクトリ(c:\Program Files\Hidemaru\macros)に保存
 ここが私の環境と違いますね。

>     Ispell.mac(24):式がおかしいです
 今回のいろいろさんの書き込みをそのまま保存して、それを使用してもそ
のまま使ってもエラーにならなかったので、文法エラーにならないと思います。
なぜこのエラーになるのか不明です ((36):式なら解るのですが?) が、もう
一度コピー&ペーストでマクロを作り直してから、
>   if(!readonly)execmacro macrodir + "\\turukame\\OverWrite.mac";

  if(!readonly)execmacro macrodir + "\\OverWrite.mac";
にしてください。

[ ]