2.21 以上で実装された機能についてNo.06131
ぱと さん 02/12/09 02:16
 

秀まるおさん(2xxxxxxxxxxxxxx@maruo.co.jp)

【hidesoft.8:10187| V2.23アップロードしました】へのコメント
   (In-Reply-To: <xxxxxxxxxxxxxx@maruo.co.jp>)

8番へのコメントですが、2番にアップするのに適当な内容になってしまったので、
投稿先を変えました。

2.21での数々の新機能実装どうもありがとうございました。

・ピリオド区切り形式でのエクスポート対応、マクロのExport関数も拡張した。

これについてなのですが、使ってみたところ、エクスポート時に、行頭に .(ピ
リオド)がある場合は、鶴亀の方で、..(ピリオド二つ)に加工しているようです
ね? このピリオド区切りでのエクスポートは私が希望して実装していただいた
ものなのですが、元々の目的が、TaskPrize という外部のツールにインポートで
きるようにしたいというものでした。

こちらはこちらで、インポートするための条件が、. 区切りである以外に何点か
ありまして、- . % で始まる行は、それぞれ .- .. .% に加工しておく必要があ
ります。そこで、TaskPrize に渡すために、あらかじめこの形に加工してから、
ピリオド区切りでエクスポートするのですが、その際に鶴亀がさらに . を付加
するので、ちょっとうまくないことになってしまいました。かといって、あらか
じめの加工をしないで処理すると、今度は、- と % に関しては、そのまま渡っ
てしまうので、こちらもまずいことになります。

というわけで、もし他に差支えがなければ、ピリオド区切りのエクスポート時に、
メール本文中の . が行頭の行についても特別な加工をしないでエクスポートし
ていただけるとありがたいです。

・MailFileOffset関数を追加した。

この関数で、オフセット 0 の場合におかしな数値が返ると言う件は、マクロ会
議室の方でご報告しました。

・メールを複数選択した状態をマクロから取得/操作できる関数を追加した。
(LockSelection, EnumSelection, UnlockSelection関数)

これは私のところでは、ばっちりうまく動いています。はじめ、実際に選択され
たメールに対して個々の処理をする前に、SelectFolder などが含まれるサブ
ルーチンを処理すると、うまく動かないことに気づいたので(これは当たり前と
いえば当たり前)、そういうサブルーチンを LockSelecton と UnlockSelection
ではさんだりしました。(プッシュしてポップするという感じですね) その後、
必要な前処理をしてから、改めて、LockSelection して本処理に入るという感じ
にしてみました。これでうまく動いてます。(本当は、最初に一回
LockSelection して後はそのまま必要な処理をするというのがただしいのかもし
れませんね。)

この関数が実装されたことで、結構いろんなマクロで応用できるだろうと思いま
す。


・「検索・Message-Id検索...」コマンドの追加。&、SetFindPack関数なども拡
張した。

SetFindPack 文字列の指定でまたもや苦しんでしまいましたが、なんとか、マク
ロ内でうまく動かすことができました。一つ要望なのですが、マクロのヘルプの
中の SetFindPack の説明のところに、実際にマクロ内で、これを指定するとき
のコード例をもう少し豊富に載せておいていただくと助かります。

また、Message-Id を ヘッダから関数で取得すると < と > で挟まれた形になっ
ているわけですが、上記のコマンドをマクロから使う場合は、< と > をはずし
た形に加工する必要があるのですね。

$$MsgId    = dllfuncstr( "CurrentHeader", "Message-Id" );
#n = strlen($$MsgId);
$$MsgId = midstr($MsgId,1,#n-2 );

なんて風に書いてみました。

----
ぱと

[ ]
RE:06131 2.21 以上で実装された機能につNo.06134
ひろ さん 02/12/09 13:41
 
 秀まるおさん今日は、ひろです。
> ・ピリオド区切り形式でのエクスポート対応、マクロのExport関数も拡張した。
 こちらについてですが、正規表現で書くと本文中の「^\n.\n」だけを特別
扱いすればよいのではないでしょうか?

 あとマクロ・ヘルプに
> パラメータ2(文字列型)
<中略>
>  eml-XXXX系を指定した場合には、パラメータ1はフォルダ名という扱いになりま
>す。
> "mbox"または"turukame"を指定した場合はファイル名という扱いになります。
> ^^^^^^^^^^^^^^^^^^^^^^^
と有りますが、「"mbox", "turukame" または"period"」と変更する必要があり
ますよね。

[ ]
RE:06134 2.21 以上で実装された機能につNo.06137
ぱと さん 02/12/09 15:04
 
ひろ さん

> こちらについてですが、正規表現で書くと本文中の「^\n.\n」だけを特別
>扱いすればよいのではないでしょうか?

そうですね〜、現在は、^. に関して処理がなされているようですね。

----
ぱと

[ ]
RE:06131 2.21 以上で実装された機能につNo.06142
秀まるお さん 02/12/09 16:53
 
>・ピリオド区切り形式でのエクスポート対応、マクロのExport関数も拡張した。

 ピリオド区切り形式についてですが、行頭が「.」で始まる行は「.」を挿入す
るという仕様は、そもそもPOP3の仕様がそのようになっている物でして、一般的
な「ピリオド区切り形式」はすべてそのような形になっていると思います。

 少なくともBecky!の内部データ(bmfファイル)はそのようになっています。
なので、現在の仕様でないと都合が悪いです。

 TaskPrize向けにどっちにしても変換が必要なのなら、ひろさんのコメントに
あるような正規表現を使う等の方法で適当に整形して欲しいです。

>これは私のところでは、ばっちりうまく動いています。はじめ、実際に選択され
>たメールに対して個々の処理をする前に、SelectFolder などが含まれるサブ
>ルーチンを処理すると、うまく動かないことに気づいたので

 一応、EnumSelectionしてる最中にフォルダが切り替わってもうまく動くよう
にしたつもりではあるんですが、いろんなケースが考えられるので完璧には動い
てなかったってことなんだと思います。

 とりあえずマクロで対処していただいたのならそのままいじらないでおきます。

>SetFindPack 文字列の指定でまたもや苦しんでしまいましたが、なんとか、マク
>ロ内でうまく動かすことができました。一つ要望なのですが、マクロのヘルプの
>中の SetFindPack の説明のところに、実際にマクロ内で、これを指定するとき
>のコード例をもう少し豊富に載せておいていただくと助かります。

 たしかに自分で書いていても不安になるので、暇な時にでも追加します。

>また、Message-Id を ヘッダから関数で取得すると < と > で挟まれた形になっ
>ているわけですが、上記のコマンドをマクロから使う場合は、< と > をはずし
>た形に加工する必要があるのですね。

 そういうことになります。

[ ]
RE:06134 2.21 以上で実装された機能につNo.06143
秀まるお さん 02/12/09 16:57
 
 ヘルプの間違いの件了解しました。しかし今ちょっとヘルプがいじれないので、
修正はもっと先にさせていただきます。

[ ]
RE:06143 2.21 以上で実装された機能につNo.06149
ひろ さん 02/12/09 17:44
 
 秀まるおさん今日は、ひろです。
>  ヘルプの間違いの件了解しました。しかし今ちょっとヘルプがいじれないので、
> 修正はもっと先にさせていただきます。
 了解しました。

[ ]