みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
先月末に同様のご相談をさせていただいた件の続きです。
私の環境で現在FMは17で、OSはWindows7です。
前回はオブジェクトフィールドに動画(mp4)の参照ファイルが入力された状態で、ファイルメーカーの画面上からファイルパス末端にあるフォルダの動画ファイルに直接アクセスして、動画ファイルを参照したり削除するスクリプトについて以下のようにアドバイスいただきました。
成功例:アクセスの場合
変数を設定 [$Pas_win ;
Substitute ( GetValue ( GetAsText ( オブジェクトファイル ) ; 2 ) ; ["moviewin:/" ; ""] ; ["/" ; "\\"] )]
Eventを送信 [「aevt」; [odoc] ; "explorer /select," & Quote ( $Path_win )]
成功例:削除の場合
変数を設定 [$Pas_win ;
Substitute ( GetValue ( GetAsText ( オブジェクトファイル ) ; 2 ) ; ["moviewin:/" ; ""] ; ["/" ; "\\"] )]
Eventを送信 [「aevt」; [odoc] ; "cmd /c del " & Quote ( $Path_win )]
このオブジェクトフィールドがMP4ではなく、音声(mp3やm4aなど)、また画像(jpgやgifなど)の参照ファイルが入力されている場合、上記二つのスクリプトの式はどのように変えたらよいでしょうか?
素人考えで"moviewin:/"を”filewin”に変えてみましたが作動しませんでした。
こんな感じで大丈夫かと。
変数を設定 [$Pas_win ;
Substitute ( GetContainerAttribute (オブジェクトフィールド;"externalfiles")
; ["filewin:/" ; ""]
; ["imagewin:/" ; ""]
; ["moviewin:/" ; ""]
; ["/" ; "\\"] )
]
Offline
GetContainerAttribute (オブジェクトフィールド;"externalfiles") は、OSごとのパス形式で値を返すようなので、以下だけで大丈夫な様です。
変数を設定 [$Pas_win ;GetContainerAttribute (オブジェクトフィールド;"externalfiles")]
Offline
qb_dp様
いつもありがとうございます。アドバイスいただいた変数を設定 [$Pas_win ;GetContainerAttribute (オブジェクトフィールド;"externalfiles")]で正解でした。
あと一つ、音声(mp3など)のファイルなのですが、ファイル参照のオブジェクトフィールドではなく、そのmp3ファイルが置かれているファイルパスが入力された計算フィールドを設け、ファイルメーカーからmp3ファイルを同じように直接表示させたり、削除したりするにはどのようなスクリプトがよいでしょうか?ためしに「オブジェクトフィールド」の代わりにファイルパスの計算フィールドに置き換えてみましたがだめでした。
フィールドにWindows形式のパスが設定されているなら、以下。
Eventを送信 [「aevt」; [odoc] ; "explorer /select," & Quote ( パスが記述されたフィールド )]
Offline
qb_dp様
ありがとうございました。これにて一件落着です。今後ともよろしくお願いします。
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 509.81 KiB (Peak: 516.69 KiB) ]