Thunderbird→秀丸メール インポートマクNo.00262
MSMS さん 08/09/21 22:46
 
Thunderbird→秀丸メール インポートマクロの作者様

はじめまして。MSMSと申します。

Thunderbird→秀丸メール インポートマクロに対する要望を書かせて頂きます。

現在私は、EdMaxを使用していますが、秀丸メールへの乗り換えを検討しています。

そこで、EdMaxのメールデータをフォルダ構造を保ったままUNIXメールBOX形式に変換
をしました。これを秀丸メールにインポートする方法について調べたところ、Thunde
rbird→秀丸メール インポートマクロでは、UNIXメールBOX形式を秀丸メールにイン
ポート出来るようなので、これを使えないかと考えています。しかし試してみたとこ
ろ、デフォルトのフォルダ名などThunderbirdに特有の情報が指定されており、うま
くいきませんでした。

私が行いたいのは以下のことです。

1.ルートフォルダの下にサブフォルダがあり、その中に複数のUNIXメールBOX形式
のファイルが存在する。

2.これと同じ構成のフォルダを秀丸メールのメールボックスの下に作り、対応する
メールをUNIXメールBOX形式のファイルからインポートする。

やることはThunderbird→秀丸メール インポートマクロと同じだと思うのですが、よ
り汎用的な設定で使いたいのです。そこで、汎用のUNIXメールBOX形式インポートマ
クロを作って頂けないかと思っています。誠に勝手なお願いですが、このようなマク
ロが出来れば様々なメーラーからの乗り換えがやりやすくなるのではないかと考えて
います。

検討して頂ければ幸いです。
何卒よろしくお願いします。



[ ]
RE:00262 Thunderbird→秀丸メール インポNo.00263
プックン さん 08/09/23 02:35
 
MSMSさん、こんばんわ。
マクロのご使用ありがとうございます。

最近仕事が忙しくて、へばりぎみであまりこちらの会議室をチェック
できていません。
たまたま見かけて、今日は元気だったので試しにマクロを修正してみました。
一度お試しください。

//----------------------------------------------------------------------//
//      秀丸メール UNIX MBOX形式メールインポートマクロ                  //
//      マクロ名称  :  HMML_IMPORT_MBOX.MAC Ver 1.00                    //
//                                                                      //
//      機能概要 :  UNIX MBOX形式データから秀丸メールへインポート       //
$$ver = "1.00Beta1";
$$date = "2008/09/23";
$$author = "プックン" ;
$$fname = currentmacrobasename ;
$info = "\n" + $$fname + " Ver " + $$ver+ "\n最終更新日付:"+$$date ;
$info = $info + "\n作者:"+$$author ;

 $sbuf = searchbuffer ; //マクロ終了時に、検索条件を復元するため記憶
 #sopt = searchoption ;
 $rbuf = replacebuffer;

 //検索での表示 点滅表示/範囲選択の情報を取得する。
 //点滅表示のとき0、範囲選択のときは1です。
 ##reg_search = searchmode;
 //検索での表示を範囲選択に変更する。
 if(##reg_search == 0) {
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  if(!result){message "レジストリーをopen出来ませんでした!" ;endmacro;}
  writeregnum "SelectFound",1;
  closereg ;
  envchanged;
 }

 call HidemaruMail ;

 //返り値(数値型)
 //秀丸メールのバージョン番号を100倍した値です。
 ##ver = dllfunc("HidemaruMailVersion");
 if(##ver < 450){
  message
   "現在の版数が秀丸メール Ver4.50より古いので処理を終了します。\n" +
   "新しい版数を使用してください。\n" + $info ;
  goto LEND ;
 }
 
 
$$ini = hidemarudir + "\\" + "puku.ini";
$$Section = currentmacrobasename ;
$$key = "path" ;
$$key1 = "file" ;

 //秀丸メールの本体ウィンドウ中かどうか
 if(! dllfunc("IsHidemaruMailMain")){
  message "秀丸メール本体からマクロを実行してください。\n";
  goto LEND ;
 }

 // 他のソフトウェアでエクスポートされたUNIX MBOX形式のメールデータが格納された
 // フォルダを指定して、指定したフォルダ以下にあるメールデータ(mbox)を
 // インポートする。
 //1. 1個のディレクトリを指定して、指定ディレクトリの下階層を再起的に処理
 //2. フォルダ情報,ファイル情報をINIファイルにWriteする。
 //3. 現在処理しているアカウントの下に"Import_mbox"フォルダを作成し、
 //  その下にインポートを実施する。
 //4. インポートのOPTION
 // "mbox"  From区切りテキストファイル(UNIX MBOX形式)
 //  logを作成する。パラメータ4(文字列型、省略可)"makelog"を指定
 //  受信日時は元メールの情報とする。
 //  パラメータ5(文字列型、省略可)"tdateheader"を指定する。
 //  開封通知は無視する。パラメータ6(文字列型、省略可)パラメータを省略


 //"Import_mbox"フォルダを作成する。
 $$CurrentAccount = dllfuncstr( "CurrentAccount" );

 $$ImportFolder = "Import_mbox" ;
 ##n = dllfunc( "SelectFolder", $$CurrentAccount, "受信" );
 $$root = "受信\\" + $$ImportFolder ;
 ##n = dllfunc( "SelectFolder", $$CurrentAccount, $$root );
 if(dllfuncstr( "CurrentFolder" ) == $$root){
  question $$ImportFolder + "が存在します。処理を継続しますか?" ;
  if( result == no ) {
   message "Cancelしました。\n" + $info ;
   goto LEND ;
  }
 }
 else{
  ##n = dllfunc( "MakeFolder", $$ImportFolder);
 }

 freedll ; call Dengaku ;
 // Dengaku.dllのバージョンチェック
 $$wk = dllfuncstr("GETVERSION");
 $$wk = leftstr($$wk,1) + midstr($$wk,2,2) ;
 if (val($$wk) < 209) {
  message "このマクロの実行には Ver.2.09 以降の田楽DLLが必要です。\n"+
    "Dengaku.DLL Ver" + $$wk ;
  freedll;
  endmacro;
 }

 //途中中断されたあとの継続処理用
 ##break = val(getinistr($$ini, $$Section , "break")) ;
 $$target_dir = getinistr($$ini, $$Section , "target_dir") ;
 $$account = getinistr($$ini, $$Section , "Account") ;
 if(
  (##break != 0) &&
  (existfile($$target_dir)) &&
  ($$CurrentAccount == $$account) ){
  ##cnt_folder = ##break ;
  $$CurrentAccount = $$account ;
  goto Import ;
 }

 ##n = 0 ;
 call DIROPEN ;
 $$target_dir = $$return ;
 ##wk = existfile( $$target_dir );
 if( !##wk ){
  message $$target_dir + "が存在しません。\n処理を終了します。\n" + $info;
  goto LEND ;
 }
 ##dengaku_use = 1 ;
 call Get_basename $$target_dir,1,##dengaku_use ; //ToLower処理を実施,田楽DL
Lの機能を利用
 $$wk = $$return ;

 question "mbox形式 メールフォルダは、下記フォルダで良いですか?。\n\n" + $$
target_dir +
   "\n\nyesで処理を継続します。" ;
 if( result == no ) {
  message "Cancelしました。";
  goto LEND ;
 }

 $$ext = "mbox" ;
 //メッセージ系
 question "処理対象ファイルの拡張子は\n    " + $$ext + "\nでよいですか?" ;
 if( result == no ) {
  $$wk = "拡張子を入力してください(ピリオドを含まない)";
  $$wk = input($$wk,$$ext);
  if($$wk == "") {
   message "拡張子指定Error\nマクロを終了します。" ;
   goto LEND ;
  }
  else{
   $$ext = $$wk ;
  }
 }

 title "ファイル情報取得中:" ;
 $$wild = $$target_dir + "\\*." + $$ext ;
 ##n = dllfunc("ENUMPATH","\"" + $$wild + "\"" ); //田楽DLLの機能を利用する。

 ##cnt_folder = 0 ;
 while (1) {
  $$file = dllfuncstr("FINDNEXT");    //田楽DLLの機能を利用する。
  ##n = strstr($$file ,"\\") ;
  if ($$file == "") break;
  else if ($$file == "." || $$file == "..") continue;
  //アトリビュート情報がディレクトリのときはcontinue
  else if(strstr(dllfuncstr("ATTRIBUTEOF",""),"d") != -1) continue; //田楽DL
Lの機能を利用する。
  //file情報と、作成するフォルダ情報を作成し保存する。
  ##dengaku_use = 1 ;
  call Get_path $$file,##dengaku_use ; //田楽DLLの機能を利用する。
  $$wk = $$return ;
  $$file = rightstr($$file,strlen($$file) - strlen($$wk)) ;
  if(leftstr($$file,1) == "\\"){
   $$file = rightstr($$file,strlen($$file) -1);
  }
  //作成したfile情報,フォルダ情報をINIファイルに記録する。
  writeinistr $$ini, $$Section , "#" + str( ##cnt_folder ) +"_"+ $$key, $$wk;
  writeinistr $$ini, $$Section , "#" + str( ##cnt_folder ) +"_"+ $$key1, $$f
ile ;
  ##cnt_folder = ##cnt_folder + 1;
 }
 if(##cnt_folder ==0) {
  message "ファイル取得エラー\n" + $$target_dir + "\nファイル情報を取得でき
ませんでした。\n" + $info ;
  goto LEND ;
 }

 //秀丸メール フォルダ作成処理
 title "秀丸メールフォルダ情報取得中:" ;
 ##i = 0;
 freedll ; call HidemaruMail ;
 ##n = dllfunc("DisableDraw");
 while( ##i < ##cnt_folder ) {
  title "秀丸メールフォルダ情報取得中:" + str(##i) + "/" + str(##cnt_folder
-1) ;
  ##n = dllfunc( "SelectFolder", $$CurrentAccount, $$root );
  $$HomeDir = dllfuncstr("HomeDir") ;
  $$dir = getinistr($$ini,$$Section,"#" + str( ##i ) +"_"+ $$key);
  call Str_check $$dir ,
     "変数 $$dir取得エラー\n" +
     "Ini=" + $$ini + "\n" +
     "Section=" + $$Section + "\n" +
     "key=" + "#" + str( ##i ) +"_"+ $$key + "\n" +
     $info ;
  $$wk = $$dir ;
  $$path = $$root ;
  $$full_path = $$HomeDir + $$CurrentAccount + "\\" ;

  while(1){
   ##n = strstr($$wk,"\\") ;
   //文字列情報に"\"が含まれる場合
   if(##n != -1){
    $$sub_dir = midstr($$wk , 0,##n) ;
    $$wk = midstr($$wk,##n +1,strlen($$wk) - ##n - 1) ;
    if(!existfile(($$full_path + "\\" + $$path + "\\" + $$sub_dir))) {
     ##n = dllfunc( "MakeFolder", $$sub_dir);
    }
   }
   //文字列情報に"\"が含まれない場合
   else{
    $$sub_dir = $$wk ;
    if(!existfile($$full_path + "\\" + $$path + "\\" + $$sub_dir)) {
     ##n = dllfunc( "MakeFolder", $$sub_dir);
    }
    break ;
   }
   $$path = $$path + "\\" + $$sub_dir ;
   ##n = dllfunc( "SelectFolder", $$CurrentAccount, $$path );
  }
  ##i = ##i + 1;
 }
 ##n = dllfunc("EnableDraw");

Import:
 disablebreak ; //マクロの中断を禁止します。
 //秀丸メールインポート処理中
 title "秀丸メール インポート処理中:" ;
 ##i = ##cnt_folder -1 ;
 freedll ; call HidemaruMail ;
 while( ##i >= 0 ) {
  title "秀丸メール インポート処理中:" + str(##cnt_folder - ##i) + "/" + str
(##cnt_folder) ;
  //title文の種類:
  //title 文字列 キャプションの設定
  ##key = keypressed ;
  //escapeを押された時の処理
  if(##key==27){
   writeinistr $$ini, $$Section , "break", str(##i +1) ;
   writeinistr $$ini, $$Section , "target_dir", $$target_dir ;
   writeinistr $$ini, $$Section , "Account", $$CurrentAccount ;
   title "処理を中断しました。" + $$Section + "マクロを再実行することで、継
続処理を実施します。" ;
   title -1 ;
   message "処理を中断しました。\nマクロを再実行することで、継続処理を実施し
ます。\n" +
     $info ;
   goto LEND ;
  }
  $$folder = getinistr($$ini,$$Section,"#" + str( ##i ) +"_"+ $$key);
  call Str_check $$folder ,
     "変数 $$folder取得エラー\n" +
     "Ini=" + $$ini + "\n" +
     "Section=" + $$Section + "\n" +
     "key=" + "#" + str( ##i ) +"_"+ $$key + "\n" +
     $info ;
  $$mail = getinistr($$ini,$$Section,"#" + str( ##i ) +"_"+ $$key1);
  call Str_check $$mail ,
     "変数 $$mail取得エラー\n" +
     "Ini=" + $$ini + "\n" +
     "Section=" + $$Section + "\n" +
     "key=" + "#" + str( ##i ) +"_"+ $$key1 + "\n" +
     $info ;

  $$mail_folder = $$target_dir + "\\" + $$folder ;

  freedll ; call HidemaruMail ;
  //秀丸メールのImport先フォルダ選択
  ##n = dllfunc( "SelectFolder", $$CurrentAccount, $$root + "\\" + $$folder );
  if(dllfuncstr( "CurrentFolder" ) != $$root + "\\" + $$folder){
   message "Folder Select Error\n" + "Account=" + $$CurrentAccount + "\n"+ "
Folder=" + $$root + "\\" + $$folder ;
   goto LEND ;
  }
  //パラメータ1にファイル名を指定すると、サイズが返る。
  //エラーの場合は-1を返す。
  // (パラメータ1にファイル名、パラメータ2は省略)
  ##n = dllfunc("Bypass_GetFileSize", $$target_dir + "\\" + $$mail);
  if(##n == 0){
   ##cnt_file = 0 ;
  }
  else{
   ##cnt_file = 1 ;
  }

  ##j = ##cnt_file -1 ;
  while( ##j >= 0 ) {
   title "秀丸メール インポート処理中:" + str(##cnt_folder - ##i) + "/" + st
r(##cnt_folder) +
     "File=" + $$mail ;
   ##key = keypressed ;
   //escapeを押された時の処理
   if(##key==27){
    writeinistr $$ini, $$Section , "break", str(##i +1) ;
    writeinistr $$ini, $$Section , "target_dir", $$target_dir ;
    writeinistr $$ini, $$Section , "Account", $$CurrentAccount ;
    title "処理を中断しました。" + $$Section +
    "マクロを再実行することで、継続処理を実施します。だだし中断をしたフォル
ダは再実行によりメールが重複することになります。" +
    $info ;
    title -1 ;
    message "処理を中断しました。\nマクロを再実行することで、継続処理を実施
します。\n" +
      "だだし中断をしたフォルダは再実行によりメールが重複することになります。
\n" + $info ;
    goto LEND ;
   }
   //ファイルが存在するとき
   if(existfile($$mail_folder + "\\" + $$mail))
    //実際のImport処理
    ##n = dllfunc("Import",
     $$mail_folder + "\\" + $$mail ,     //対象ファイル
     "mbox",        //From区切りテキストファイル(UNIX MBOX形式)
     "",         //現在選択しているフォルダに入れる
     "makelog",       //ログ(受信ログ)を作成
     "tdateheader",      //Date:ヘッダの示す日付
     "");        //開封通知要求無視
   else message "There is not file. \n" + $$mail_folder + "\\" + $$mail ;
   $$mail = "" ; //変数削除
   ##j = ##j - 1;
  }
  //作成したfile情報,フォルダ情報をINIファイルから削除する。
  writeinistr $$ini, $$Section , "#" + str( ##i ) +"_"+ $$key, 0 ;
  writeinistr $$ini, $$Section , "#" + str( ##i ) +"_"+ $$key1, 0 ;

  ##i = ##i - 1;
 }
 ##n = dllfunc( "SelectFolder", $$CurrentAccount, $$root );
 //重複メールのチェックコマンドを実行します。
 ##n = dllfunc( "CheckDuplication", "under", $$CurrentAccount, $$root );

 call Del_ini $$ini, $$Section ;
 message "処理終了しました。\n" + $info ;

LEND:
 setsearch $sbuf, #sopt; //開始時の検索文字,optionに戻す
 setreplace $rbuf ;
 //検索での表示を元に戻す
 if(##reg_search == 0) {
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  if(!result){message "レジストリーをopen出来ませんでした!" ;endmacro;}
  writeregnum "SelectFound",##reg_search;
  closereg ;
  envchanged;
 }
 freedll;
 endmacro;

HidemaruMail: //秀丸メール起動チェック&DLLロード
//機能:TKInfo.dllをロードする
//秀シリーズサポートHPより 抜粋
 // DLL を Load する
 openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config";
 ##res = result ;
 closereg ;
 if( !##res ) {
  message "秀丸メールがインストールされてないです (^^;)\n"+$info;
  endmacro;
 }

 loaddll "TKInfo.dll";
 if( !result ) {
  message "DLLロードに失敗\n"+$info;
  endmacro;
 }
return ;

Res_check:
//処理:処理の判定&メッセージ表示
 //引数渡し
 ###num = ###1; $$mes = $$2 ;
 if(###num != 1){
  message $$mes ;
  goto LEND;
 }
return ;

Str_check:
//処理:文字列の判定&メッセージ表示
 //引数渡し
 $$str = $$1; $$mes = $$2 ;
 if($$str == ""){
  message $$mes ;
  goto LEND;
 }
return ;

Dengaku:
 // 田楽DLLのロード
 if(existfile(hidemarudir+"\\DengakuDLL.dll"))loaddll hidemarudir+"\\Dengaku
DLL.dll";
 else {
  $$mes = "田楽DLLが見つかりませんでした。\n" +
    "田楽DLLを秀丸エディタインストールディレクトリにおいてください。\n" +
    "  秀丸エディタインストールディレクトリ:\n\t"+hidemarudir + "\n\n" +
    "田楽DLL ダウンロードURL\n"+
    "  http://www.ceres.dti.ne.jp/~sugiura/hidemaru/macros/dgserver/\n" +
    "\nURLをopenしますか?\n" +
    $info ;
  question $$mes ;
  if(result == yes){
   call openurl ,"http://www.ceres.dti.ne.jp/~sugiura/hidemaru/macros/dgserv
er/";
  }
  goto LEND ;
 }

 if (!result) {
  message "田楽DLL をロードできませんでした。"+$info;
  goto LEND ;
 }
return;

openurl:
//機能: 第一引数のURLをOPENする
 //第一引数: 文字列型,URL情報
 //戻り値: なし
 //参照資料
 //slide_moonさん作成magickey_cfg.mac サブルーチンAccessURL
//引数渡し
 $$url = $$1 ;
 if($$url == ""){
  message "サブルーチンopenurl 第一引数Error\n" + $info ;
  goto LEND ;
 }

 //Firefoxでの設定
 //[HKEY_CLASSES_ROOT\http\shell\open\command]
 //@="D:\\PROGRA~1\\MOZILL~1\\FIREFOX.EXE -url \"%1\""
 //%1をURL指定するといいようだ。

 openreg "CLASSESROOT", "http\\shell\\open\\command";
 if(!result){message "レジストリーをopen出来ませんでした!" ;endmacro;}
 $$shell = getregstr( "" );
 closereg ; //オープンしたレジストリをクローズします。
 ##n = strstr($$shell,"%1") ;
 //文字列"%1"を第一引数のURL情報と置換する
 if(##n != -1){
  $$url = leftstr($$shell,##n) +
    $$url +
    midstr($$shell,##n + strlen("%1") ,strlen($$shell) - ##n - strlen("%1") ) ;
 }
 //$$shell情報に%1の文字列が無い場合
 else{
  $$url = $$shell + " " + $$url ;
 }
 run $$url ;
return ;

DIROPEN:
// 「フォルダの指定」ダイアログ
 $$def = $$1 ;
 if($$def == "") $$def = hidemarudir ;
 //田楽DLLサンプルマクロ dgdll.macより流用
 $$name = dllfuncstr("GETDIRNAME",
    hidemaruhandle(0), // オーナーウィンドウのウィンドウハンドル
    "UNIX MBOX形式 メールフォルダの指定。", // タイトル
    $$def // 初期フォルダ名
   );
 if ($$name == "") {
  message "フォルダ選択処理をキャンセルしました。\n" + $info ;
  goto LEND ;
  break ;
 }
return $$name ;

Get_basename:
//処理:第一引数で指定された"\"以降の文字列を取得する。
//引数渡し
 //第一引数: 文字列型,チェックを行う文字列
 $$str = $$1;
 //第二引数: 数値型,大文字,小文字変換option
 //0=何もしない,1=小文字,2=大文字
 ##tolower = ##2 ;
 //第三引数: 数値型,田楽DLL機能使用
 //0=使用しない,1=使用する。
 ##flag_dengaku = ##3 ;
 ##dengaku_use = 1 ;
 //戻り値:文字列型,pathを削除したファイル名(小文字)

 if($$str == ""){
  message "サブルーチンGet_basename 第一引数Error\n" + $info ;
 }
 if(##tolower == 1){
  if(##flag_dengaku == ##dengaku_use){
   $$str = dllfuncstr("TOLOWER2",$$str);
  }
  else{
   //ToLowerは小文字に変換します。
   $$str = dllfuncstr("ToLower", $$str );
  }
 }
 else if(##tolower == 2){
  if(##flag_dengaku == ##dengaku_use){
   $$str = dllfuncstr("TOUPPER2",$$str);
  }
  else{
   //ToUpperは大文字に変換します。
   $$str = dllfuncstr("ToUpper", $$str );
  }
 }
 //"."を含むかどうか調べる
 //strstrは、検索を行う文字列が複数存在する場合、
 //先頭側の位置情報を示す。
 ##i = strstr($$str,"\\");   //.の位置を調べる 先頭が0
 if( ##i != -1 ){   //.が存在する場合  ##i=ピリオドの位置
  //複数の"\"を含む可能性があるので、ファイル名の後ろから調べる。
  if(##flag_dengaku == ##dengaku_use){
   ##n = dllfunc("STRRSTR",$$str,"\\");
   $$name = midstr($$str,##n + 1,strlen($$str) - ##n -1) ;
  }
  else{
   ##i = 1 ;
   $$pre = "" ;
   while( 1 ) {
    $$name = rightstr( $$str, ##i  );
    if( leftstr( $$name, 1 ) == "\\" ) break;
    $$pre = $$name ;
    ##i = ##i + 1;
   }
   $$name = $$pre ;
  }
 }
 else{
  $$name = $$str ;
 }
return $$name ;

Get_path:
//処理:第一引数で指定されたdir情報を取得する。
//    "\"より前の文字列を取得する。
//    "\"が無い場合は、第一引数をそのまま戻り値とする。
//引数渡し
 //第一引数: 文字列型,チェックを行う文字列
 $$str = $$1;
 //第ニ引数: 数値型,田楽Dllを使用するflag。"1":田楽Dllを使用,"0":田楽Dllを使
用しない
 ##flag_dengaku = ##2 ;
 ##dengaku_use = 1 ;
 //戻り値:文字列型,最後の"\"以降を削除した文字列

 if($$str == ""){
  message "サブルーチンGet_basename 第一引数Error\n" + $info ;
 }
 //"."を含むかどうか調べる
 //strstrは、検索を行う文字列が複数存在する場合、
 //先頭側の位置情報を示す。
 ##i = strstr($$str,"\\");   //.の位置を調べる 先頭が0
 if( ##i != -1 ){   //.が存在する場合  ##i=ピリオドの位置
  //複数の"\"を含む可能性があるので、ファイル名の後ろから調べる。
  if(##flag_dengaku == ##dengaku_use){
   ##i = dllfunc("STRRSTR",$$str,"\\");
   $$pre = leftstr($$str,##i ) ;
  }
  else{
   ##i = strlen($$str) ;
   $$pre = $$str ;
   while( 1 ) {
    if(midstr( $$pre, ##i, 1 ) == "\\"){
     $$pre = leftstr($$pre,##i ) ;
     break ;
    }
    ##i = ##i - 1;
   }
  }
 }
 else{
  $$pre = $$str ;
 }
return $$pre ;

Del_ini:
//処理: 第一,ニ引数で指定されたini情報を削除。
//  ini情報を削除後、ファイルサイズが"0"の場合、ファイルを削除する。
//引数渡し
 //第一引数: 文字列型,情報を削除するiniファイルを指定
 $$ini = $$1 ;
 //第二引数: 文字列型,情報を削除するiniファイルのセクション名を指定
 $$Section = $$2 ;
 //第三引数: 数値型,田楽Dllを使用するflag。"1":田楽Dllを使用,"0":田楽Dllを使
用しない
 ##flag = ##3 ;
 ##dengaku_use = 1 ;
 //戻り値
 //Iniファイルの処理結果
 //0 = Iniファイルの情報 削除失敗
 //1 = Iniファイルの情報 削除実施
 //2 = Iniファイルの情報 削除実施,Iniファイル削除

 if($$ini ==""){
  message "サブルーチンDel_ini\n引数エラー:iniファイル\n" + $info ;
  return 0 ;
 }
 else if(! existfile( $$ini )) {
  message "サブルーチンDel_ini\n引数エラー:ini File Not Found\n" +$$ini + "\
n" + $info ;
  return 0 ;
 }
 if($$Section ==""){
  message "サブルーチンDel_ini\n引数エラー:Section情報\n" + $info ;
  return 0 ;
 }
 writeinistr $$ini, $$Section, 0, 0 ;
 ##ret = 1 ;
 
 ##n = existfile( $$ini );
 if( ##n ){
  //田楽DLLを使用する。
  if(##flag == ##dengaku_use){
   //ファイルサイズを取得する
   ##size = val(dllfuncstr("SIZEOF",$$ini));
   //取得したファイルが空の場合削除する。
   if(##size == 0){
    ##n = dllfunc("REMOVE", $$ini);
    if(##n == 1) ##ret = 2 ;
   }
  }
  else{ //tkinfoを使用する
   //ファイルサイズを取得する
   ##size = dllfunc("Bypass_GetFileSize", $$ini);
   //取得したファイルが空の場合削除する。
   if(##size == 0){
    ##n = dllfunc("Bypass_DeleteFile", $$ini);
    if(##n == 1) ##ret = 2 ;
   }
  }
 }
 
return ##ret ;

[ ]
RE:00263 Thunderbird→秀丸メール インポNo.00264
MSMS さん 08/09/25 21:54
 
プックン さん

>最近仕事が忙しくて、へばりぎみであまりこちらの会議室をチェック
>できていません。
>たまたま見かけて、今日は元気だったので試しにマクロを修正してみました。

早速マクロを作成して頂き有り難うございました。
使わせて頂きます。

今後とも宜しくお願いします。


[ ]