みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Windows7環境で16を使っています。やりたい事は以下になります。
・所定の場所にファイルがあります。例えば、C:\apple.txt
・テーブルのデータを全て削除します。
・所定の場所にあるファイルをインポートします。
このスクリプトはできているのですが、ファイルが存在しない場合は、テーブルのデータを削除したくはありません。
これを行うには、所定の場所にファイルがあるか調べて、無ければスクリプトを終了させればいいのですが、
所定の場所にファイルがあるかどうか、get関数の中を見ても無さそうな気がしますが、どのように解決すればいいでしょうか?
Offline
FileMakerにファイルの有無を確認出来る関数はありません。
以下の方法でファイルの有無を確認出来ます。
https://fm-aid.com/bbs2/viewtopic.php?id=6785
外部のプログラムとの連携無しで、ファイルの有無を確認するには、オブジェクトフィールドを作成し、
スクリプト:ファイルを挿入 で、以下のようにファイルパスを2行設定します。
オブジェクトフィールドのファイル名を取得し、「error.txt」だった場合、
「aaa.exe」が無いと判断出来ます。
「error.txt」は、スクリプト:ファイルを挿入 の前にテンポラリフォルダにエクスポートしておくのが用でしょう。ファイルを挿入[obj ;
filewin:/D:/aaa.exe
filewin:/D:/!TEMP/error.txt
]
その他の方法は、以下を参照:
Event送信でファイルの存在を確認したい: https://fm-aid.com/bbs2/viewtopic.php?id=6785
Offline
順番を変えて、
インポート
対象外のレコードを削除
と考えたらいかがでしょう。
インポート前に対象レコードを0にしておいて、
エラー処理 オン
インポート
これで、
インポートのソースファイルがないと
対象レコードは0のままですから、対象外を表示
対象レコードがあれば、
対象外を表示、対象レコードの削除
これでいいのでは。。
この作業を日常的に行うのなら、
フラグメンテーションが置きやすいですから、
定期的に最適化保存をした方がいいでしょうね。
Offline
皆様、ありがとうございました。今回はお教え頂いたリンクの中にあった、
mshta "javascript:
clipboardData.clearData('TEXT');
var fpath='<<ファイルパス>>';
var fso=new ActiveXObject('Scripting.FileSystemObject');
if(fso.FileExists(fpath)){
clipboardData.setData('TEXT','存在します');
} else {
clipboardData.setData('TEXT','否存在です');
};
fso=null;
close();"
の方法を仕様して解決しました。ありがとうございます。
Offline
Pages: 1
[ Generated in 0.009 seconds, 11 queries executed - Memory usage: 559.73 KiB (Peak: 570.12 KiB) ]