Bypass_GetFileSize関数についてNo.19709
zoom さん 04/09/01 19:20
 
お世話になります。

マクロでファイルサイズを取得するにはBypass_GetFileSize関数を
使えばいいとの事ですがうまく行きませんでした。
(初心者ですいません)
どなたかBypass_GetFileSizeを使用したサンプルマクロがあれば
どこにあるか教えてください。
簡単なサンプルでも結構です。
ちなみにホームページでBypass_GetFileSizeについて調べたら
復帰値はサイズ下位バイト、パラメタはファイルハンドルと
サイズ上位バイトとなっておりました。

よろしくお願いします。

[ ]
RE:19709 Bypass_GetFileSize関数についてNo.19711
三月 さん 04/09/01 20:02
 
>マクロでファイルサイズを取得するにはBypass_GetFileSize関数を
>使えばいいとの事ですがうまく行きませんでした。
>(初心者ですいません)
>どなたかBypass_GetFileSizeを使用したサンプルマクロがあれば
>どこにあるか教えてください。
>簡単なサンプルでも結構です。
>ちなみにホームページでBypass_GetFileSizeについて調べたら
>復帰値はサイズ下位バイト、パラメタはファイルハンドルと
>サイズ上位バイトとなっておりました。
>

ヘルプに
>Bypass_GetFileSize   (パラメータ1にファイル名、パラメータ2は省略)
とあるので、↓のようにすれば
--------------------------
loaddll "TKInfo.dll";
$filnam = "C:\\Program Files\\Hidemaru\\Hidemaru.exe";

#siz = dllfunc( "Bypass_GetFileSize", $filnam );
message str(#siz);;
-------------------------
取得できると思います。
サイズは2147483647バイトのものまでしか正常に取得できないでしょうけど。
(それ以上のサイズをマクロで取得する意味はなさそうです)

[ ]
RE:19711 Bypass_GetFileSize関数についてNo.19734
zoom さん 04/09/02 13:21
 
三月さん回答ありがとうございます。

試してみたところフルパスのファイル名ではうまく行きました。
あとはどうやって該当添付ファイルのフルパス名を取得するかです。

私はメール送信時に確認メッセージを出して宛先や添付ファイル名
を確認しています。
添付ファイルのサイズを表示すれば、大きなサイズのファイルが
受け取れない人に送付する事を防げるかと思いました。
※エディタウィンドウにもサイズが表示されるのですが、確認
  メッセージ表示中は消えてしまいます。
ここで問題なのが添付ファイル名を"X-Attach"ヘッダから取得
しているのですが、実際にフルパス名は以下のようになって
いる事です。
"鶴亀データフォルダ"+"アカウントフォルダ名"+"送信添付\xxx〜"
不勉強なせいでしょうが"アカウントフォルダ名"だけはどうやって
取得すればいいか分かりません。
分かる方がいらっしゃれば教えてください。
もしくは送信するメールの総サイズ(メール本文+添付ファイルの
エンコード後サイズ)が分かればなおいいです。

よろしくお願いします。

[ ]
RE:19734 Bypass_GetFileSize関数についてNo.19735
秀まるお2 さん 04/09/02 13:30
 
> もしくは送信するメールの総サイズ(メール本文+添付ファイルの
> エンコード後サイズ)が分かればなおいいです。

 エンコード前のサイズなら、メールを作成している最中に、そのウィンドウの
右上に表示されてます。

 XXXXバイト  XXXX文字  X:XXX

 みたいな感じで、一番左側がバイト数です。

 エンコードされたサイズなら、tkinfo.dllの関数に、そのものずばり、
GetEncodedSizeという関数があります。同じような要望があって追加した物です。

 添付ファイルのフルパスを求める方法も、必要でしたら連絡可能です。

[ ]
RE:19734 Bypass_GetFileSize関数についてNo.19736
Iranoan さん 04/09/02 14:02
 
 zoom さん今日は、Iranoan です。
> どうやって該当添付ファイルのフルパス名を取得するかです。
$s = dllfuncstr( "HomeDir" ) + dllfuncstr( "CurrentAccount" ) + "\\"
      + dllfuncstr( "CurrentHeader2", "X-Attach", #i );
の要領です。
 ##19735 で既に解決していると思いますが(^^;。

[ ]
RE:19736 Bypass_GetFileSize関数についてNo.19738
zoom さん 04/09/02 15:01
 
秀まるお2さん、Iranoanさん、回答ありがとうございます。

>> どうやって該当添付ファイルのフルパス名を取得するかです。
>$s = dllfuncstr( "HomeDir" ) + dllfuncstr( "CurrentAccount" ) + "\\"
>      + dllfuncstr( "CurrentHeader2", "X-Attach", #i );
>の要領です。
エンコード後のメールサイズ、及び添付ファイルフルパス名の
取得が無事出来るようになりました。
"CurrentAccount"についてはヘルプにフォルダ関係(鶴亀メール本体
ウィンドウでのみ実行可能)とあったので試していませんでした。

ありがとうございました。

[ ]
RE:19735 Bypass_GetFileSize関数についてNo.19739
zoom さん 04/09/02 15:09
 
秀まるお2さん、回答ありがとうございます。
> エンコード前のサイズなら、メールを作成している最中に、そのウィンドウの
>右上に表示されてます。
>
> XXXXバイト  XXXX文字  X:XXX
>
> みたいな感じで、一番左側がバイト数です。
->最初はだいたいこのサイズで判断すればいいかと思ってたのですが、
  確認メッセージを表示する際には消えてしまいました。
  (確認用マクロは小原ソフトさんのt_check.macを改良して使用)
  おっちょこちょいの私にはこのマクロはとても重宝してます。
 エンコード後のサイズ取得が可能という事で私の要望は満たされ
 ました。

ありがとうございました

[ ]
RE:19738 Bypass_GetFileSize関数についてNo.19741
秀まるお2 さん 04/09/02 15:51
 
> "CurrentAccount"についてはヘルプにフォルダ関係(鶴亀メール本体
> ウィンドウでのみ実行可能)とあったので試していませんでした。

 すみません。ヘルプの間違いです。今なおします。

[ ]