テンプレートについてNo.02050
tellme さん 01/01/26 00:04
 
 こんにちは、皆さん。てるみーです。0.73使ってます。

 $(SetNameOnly,$(RootHeader,From))というテンプレートがあり、重宝してお
りますが、$(SetEmailOnly,$(RootHeader,From))で送信者のアドレスを取って、
アドレス帳における名前を文中に代入するということは出来ないでしょうか?

 なぜかというと、差出人の名前と、文中で使っているニックネームが違うこと
があるので・・・。

 もし可能だったら、教えていただければ幸いです。不可能だったら、将来の改
善の時に検討項目に加えていただければ幸いです。

[ ]
RE:02050 テンプレートについてNo.02051
きいろいまふらあ さん 01/01/26 03:23
 
> $(SetNameOnly,$(RootHeader,From))というテンプレートがあり、重宝してお
>りますが、$(SetEmailOnly,$(RootHeader,From))で送信者のアドレスを取って、
>アドレス帳における名前を文中に代入するということは出来ないでしょうか?

これが可能になることによって

> なぜかというと、差出人の名前と、文中で使っているニックネームが違うこと
>があるので・・・。

これが解決するのか謎ですが、仮に実装するとして
・そのアドレスがアドレス帳に登録されてない場合
・そのアドレスがアドレス帳の中に2つ以上登録されている場合
の仕様を考えなきゃならないですよね。

> もし可能だったら、教えていただければ幸いです。不可能だったら、将来の改
>善の時に検討項目に加えていただければ幸いです。

少なくとも現段階ではマクロを書くしかないでしょう。
Adrbook.txtを秀丸で開いて、そのメールアドレスを検索し、
対応する名前のフィールドを拾ってくる、と。

アドレス帳にこだわらなければ、自前でiniファイル形式で
辞書を作っておくと秀丸で開かなくても済みますね。
個人的にはこれが一番面白そう。
メールアドレスに使える文字が、iniファイルのキー名に使える文字の
範囲内であれば

[GetHandleName]
xxxx@hoge.co.jp=ほげ太郎
xxxx@moge.com=もげ蔵


なんてテキストファイルを作っておいて、getinistr()関数で
メールアドレスから右辺の名前を引けますね。

全くの余談ですが、てるみーさんはtellmeさんなんですよね。
でも上のシステムを使っても「てるみーさん、こんにちは」とは
できないんですよね、秀ネットでは。(^^;

[ ]
RE:02051 テンプレートについてNo.02052
てるみー さん 01/01/26 03:34
 
 こんにちは、きいろいまふらあさん、みなさん。てるみーです。

>アドレス帳にこだわらなければ、自前でiniファイル形式で
>辞書を作っておくと秀丸で開かなくても済みますね。
>個人的にはこれが一番面白そう。
>メールアドレスに使える文字が、iniファイルのキー名に使える文字の
>範囲内であれば
>
>[GetHandleName]
>xxxx@hoge.co.jp=ほげ太郎
>xxxx@moge.com=もげ蔵
>:
>
>なんてテキストファイルを作っておいて、getinistr()関数で
>メールアドレスから右辺の名前を引けますね。

 面白そうですね。iniファイルはどこにどのようにどんな名前で置くのでしょ
うか?getinistr()関数はマクロでしょうか?それともテンプレートで?お手数
でなければ教えていただければ幸いです。

>全くの余談ですが、てるみーさんはtellmeさんなんですよね。
>でも上のシステムを使っても「てるみーさん、こんにちは」とは
>できないんですよね、秀ネットでは。(^^;

 そうですね。秀ネットでは、無理ですね。

[ ]
RE:02052 テンプレートについてNo.02053
きいろいまふらあ さん 01/01/26 09:35
 
実は、元メールの先頭付近から「〜です。」等の文字列をたよりに、
そのメールで名乗っている名前(らしきもの)を取得して、
返信の書き出しに「〜さん、こんにちは」とか入れるという、
なんともファジー(笑)なマクロを書こうかと思ったことがあったりする
のですが……本件とは関係ないですね。(^^;

>  面白そうですね。iniファイルはどこにどのようにどんな名前で置くのでしょ
> うか?getinistr()関数はマクロでしょうか?それともテンプレートで?お手数
> でなければ教えていただければ幸いです。

iniファイルは好きな名前で好きなところに置けます。
僕なら鶴亀をインストールしたフォルダに HNDIC.INI とでもして作ります。
内容は前述の通り、

> >[GetHandleName]
> >xxxx@hoge.co.jp=ほげ太郎
> >xxxx@moge.com=もげ蔵
> >:

こんな感じ。
getinistr()は秀丸マクロの関数です。
ini形式のテキストファイル(拡張子はiniでなくてもよい)から
セクション名とキー名を指定して値を取り出します。
マクロの骨子はこんな風かな?

//---
loaddll "TKInfo.dll";
$myFrom = dllfuncstr("SetEmailOnly",dllfuncstr("RootHeader","From");
$myINI = dllfuncstr("HomeDir") + "HNDIC.INI";
$myHN = getinistr($myINI,"GetHandleName",$myFrom);
if($myHN == ""){
    message $myFrom + ":未登録?";
}else{
    message $myFrom + ":" + $myHN;
}
freedll;
endmacro;
//---

動作チェックしてません。
テンプレートでは使えません。
エディタ起動時のマクロに組み込むことになりますね。

あ、なんか楽しそう。自分でも作っちゃおうかな。(^_^)
iniファイルメンテ用のマクロとか…いらないか。(^^;

問題は…
> メールアドレスに使える文字が、iniファイルのキー名に使える文字の
> 範囲内であれば
……これなんですけど、どうなのやら?

[ ]
RE:02053 テンプレートについてNo.02054
てるみー さん 01/01/26 14:38
 
 こんにちは、きいろいまふらあさん、みなさん。てるみーです。わざわざマク
ロを作っていただきどうもありがとうございます。

>$myFrom = dllfuncstr("SetEmailOnly",dllfuncstr("RootHeader","From");

>$myFrom = dllfuncstr("SetEmailOnly",dllfuncstr("RootHeader","From"));
↑)が一つ抜けていました。

 それでこれを実行してみたところ、きちんと動いて、ダイヤログボックスが出
てきたのですが、これを文中に代入するにはどうしたらいいのでしょうか?

 こんにちは、○○さん。の様にしたいのですが。ご存じの方がいらっしゃった
ら、教えていただければ幸いです。

[ ]
RE:02054 テンプレートについてNo.02055
福澤 さん 01/01/26 14:47
 
てるみーさん、こんにちは。あなたは書きました

>てきたのですが、これを文中に代入するにはどうしたらいいのでしょ
>うか?
>
> こんにちは、○○さん。の様にしたいのですが。ご存じの方がいら
>っしゃった
>ら、教えていただければ幸いです。

私の挨拶マクロは次のようになっています。
参考になりますか?

//---鶴亀挨拶.mac----
loaddll "tkinfo.dll";
gofiletop;
#n =dllfunc("MailType");
if(#n == 0) {
  insert dllfuncstr("SetNameOnly",dllfuncstr("CurrentHeader","To"))+"さ
ん、";
  call oha;
  insert "\n";
} else {
  insert dllfuncstr("SetNameOnly",dllfuncstr("RootHeader","From")) + "さ
ん、";
  call oha;
  insert "。あなたは書きました";
}
moveto 0,-9999;
down;
right;
freedll;
endmacro;
//挨拶
oha:
  if(val(hour) < 12)     insert "おはようございます";
  else if(val(hour) < 18)insert "こんにちは";
  else                   insert "こんばんは";
return;


福澤

[ ]
RE:02053 テンプレートについてNo.02056
ひろ さん 01/01/26 15:43
 
 てるみーさん今日は、ひろです。
> >  面白そうですね。iniファイルはどこにどのようにどんな名前で置くのでしょ
> > うか?getinistr()関数はマクロでしょうか?それともテンプレートで?お手数
> > でなければ教えていただければ幸いです。
 宣伝モードです。テンプレートに全く互換性がありませんが、私が公開し
たマクロはこれが出来ます。

[ ]
RE:02050 テンプレートについてNo.02065
秀まるお さん 01/01/29 11:39
 
 tkinfo.dllにアドレス帳関係の関数を追加したいなぁと思います。仕様も考えない
といけないので将来検討とさせていただきます。

[ ]
RE:02065 テンプレートについてNo.02067
てるみー さん 01/01/29 12:24
 
 こんにちは、秀まるおさん、みなさん。てるみーです。

> tkinfo.dllにアドレス帳関係の関数を追加したいなぁと思います。仕様も考えない
>といけないので将来検討とさせていただきます。

 ありがとうございます。よろしくお願いします。

[ ]
RE:02055 テンプレートについてNo.02072
てるみー さん 01/01/29 13:26
 
 こんにちは、福澤さん、みなさん。てるみーです。

>私の挨拶マクロは次のようになっています。
>参考になりますか?
>
>//---鶴亀挨拶.mac----
loaddll "tkinfo.dll";
gofiletop;
#n =dllfunc("MailType");
if(#n == 0) {
  insert dllfuncstr("SetNameOnly",dllfuncstr("CurrentHeader","To"))+"さ
ん、";
  call oha;
  insert "\n";
} else {
  insert dllfuncstr("SetNameOnly",dllfuncstr("RootHeader","From")) + "さ
ん、";
  call oha;
  insert "。あなたは書きました";
}
moveto 0,-9999;
down;
right;
freedll;
endmacro;
//挨拶
oha:
  if(val(hour) < 12)     insert "おはようございます";
  else if(val(hour) < 18)insert "こんにちは";
  else                   insert "こんばんは";
return;


 参考にしていろいろやってみたのですが、うまくいきません。$myHNなどの値
をこのマクロ中に入れるのにはどのようにすればいいのでしょうか?ご存じの方
がいらっしゃったら、教えていただければ幸いです。

[ ]
RE:02072 テンプレートについてNo.02073
福澤 さん 01/01/29 13:53
 
てるみーさん、こんにちは。あなたは書きました


> 参考にしていろいろやってみたのですが、うまくいきません。$myH
>Nなどの値
>をこのマクロ中に入れるのにはどのようにすればいいのでしょうか?
>ご存じの方
>がいらっしゃったら、教えていただければ幸いです。

gofiletop;
insert $myHN
とでもすれば、本文の先頭に書き込まれるが、
私、何か誤解していたかな。間違ってタラすみません。


福澤

[ ]