初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-02-15 17:15:17

msk
Member

applescriptを利用したファイル情報の取り込みについて

お世話になります。
環境
mac os10.9.1
filemaker12 advance
いつも拝見させてもらっています。

早速質問なんですが、filemakerにオープン格納していくサーバーを作成しようとしています。その時に、データサイズを取得したいと考えています。get as text(データ)にて情報は出るのですが、データ形式によって、sizeが表記されない場合がありました。

なので、applescriptでデータサイズを取得したいのですがどう書けばいいかわかりません。。。

よろしくお願いします。

Offline

#2 2014-02-15 17:48:46

Traveller
Guest

Re: applescriptを利用したファイル情報の取り込みについて

>データ形式によって、sizeが表記されない場合がありました。
どんな形式ですか。Length関数でも出ませんか?

#3 2014-02-15 17:54:53

msk
Member

Re: applescriptを利用したファイル情報の取り込みについて

Length関数でできるんですね(汗)

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

Offline

#4 2014-02-15 18:00:23

msk
Member

Re: applescriptを利用したファイル情報の取り込みについて

追加の質問で申し訳ありません。


当初は、とりあえずファイルのinfoを全て取り込んで、FM側で処理すればいいと思い・・・

set thePath to "参照したいファイルパス"
set aRec to get info for file thePath

try
    set a to aRec as string
on error aMsg
    set a to aMsg
end try

set b to repChar(a, "のタイプを string に変換できません。", "")

on repChar(origText, targStr, repStr)
    set {txdl, AppleScript's text item delimiters} to {AppleScript's text item delimiters, targStr}
    set temp to text items of origText
    set AppleScript's text item delimiters to repStr
    set res to temp as text
    set AppleScript's text item delimiters to txdl
    return res
end repChar

tell application "FileMaker Pro Advanced"
    set field "フィールド名" of current record of database "データベース名" to b as text
   
end tell


上記のように、ネットを調べて書いてみたのですが・・・applescript側で実行するとFM側に取り込みできるのですが、
FM上のapplescript実行で行うと、
「end of Lineがあるべきところですが"set"が見つかりました。」
「不明エラー:-2741」
とのエラーメッセージがでます。

ファイル自体の作成日時や、修正日時を取り込めるので、実装出来たらしたいなと思っています。
エラーになるのは、FM上のapplescript実行への書き方の問題なのでしょうか?

よろしくお願いします。

Offline

#5 2014-02-15 18:36:45

Traveller
Guest

Re: applescriptを利用したファイル情報の取り込みについて

そのままコピペして私のに合わせてみましたけど
画像を指定したら
{name:"IMG.jpg", creation date:date "2014年1月17日金曜日 19:34:31", modification date:date "2014年1月17日金曜日 19:35:44",
size:2778856, folder:false, alias:false, package folder:false, visible:true, extension hidden:false, name extension:"jpg",
displayed name:"IMG.jpg", default application:alias "Mavericks:Applications:Preview.app:", kind:"JPEG イメージ", file type:"
と出ましたよ。
エラー箇所に色が付くはずですけど。

#6 2014-02-15 18:45:59

msk
Member

Re: applescriptを利用したファイル情報の取り込みについて

追記追記ですみません(汗)
FM上のapplescript実行はできてました。
ファイルパスを変動させたいので、アップルスクリプト実行の計算式の中に入れたらエラーメッセージがでました。

"set thePath to " & "\"" & “ファイルパス” &"\"¶" &
"get info for file thePath"  & ¶ &


"try
set a to aRec as string
on error aMsg
set a to aMsg
end try" & ¶ &

"set b to repChar(a, "  & "\"" &    "のタイプを string に変換できません。"   & "\"" &  ","  & "\"\"" & ")" & ¶ &

"on repChar(origText, targStr, repStr)
set {txdl, AppleScript's text item delimiters} to {AppleScript's text item delimiters, targStr}
set temp to text items of origText
set AppleScript's text item delimiters to repStr
set res to temp as text
set AppleScript's text item delimiters to txdl
return res
end repChar" & ¶ &



"tell application " & "\"" & "FileMaker Pro" & "\"" & ¶ &
"set field "& "\"" &”フィールド名”& "\"" &" of current record of database " & "\"" & “ファイル名” & "\"" &" to b as text" & ¶ &
"end tell"

Offline

#7 2014-02-15 20:01:51

Traveller
Guest

Re: applescriptを利用したファイル情報の取り込みについて

ASも「全然」詳しくないけど、パスフィールドにファイルパス(Macintosh HD:Users:〜)を入れて
set thePath to get data cell "パスフィールド" of current record
set aRec to get info for file thePath
以下最初のと同じ
で動くけど。

#8 2014-02-17 11:04:41

msk
Member

Re: applescriptを利用したファイル情報の取り込みについて

できました。

計算式に入力する場合、改行コードが邪魔してたっぽいです。
一行ずつ『& ¶ &』をつけたらうまくいきました。

お騒がせしました。

Offline

#9 2014-02-21 10:49:07

msk
Member

Re: applescriptを利用したファイル情報の取り込みについて

追加の質問なんですが、似た案件だったので続きで記載します。

環境
winXP
Filemaker 12 advance

データ格納するサーバーを作成しています。
データを格納する際、格納された側のデータの日付が変わってしまい困っています。
まず、日付が変わらず保存する事は可能なのでしょうか?

もしも上記が不可能な場合、windows上でのapple scliptで言う”get info for file”的な事(上記で作成済み)をしたいのですが・・・
win側のEvent送信にてcmdを送信して情報を取得するしか方法はないのでしょうか?

また、上記以外の考え方があるようでしたらご教授願いたいと思っております。

以上よろしくお願いします。

Offline

#10 2014-02-21 11:03:05

Traveller
Guest

Re: applescriptを利用したファイル情報の取り込みについて

こんなのがあるけど。
http://allabout.co.jp/gm/gc/80974/2/
解決策は分からない・・・

#11 2014-02-21 12:03:38

finder
Guest

Re: applescriptを利用したファイル情報の取り込みについて

データというよりファイルですよね。
ファイルを保存先に新しく作るので、作成日が保存した日になるということでしょう。

フォルダの階層化機能もないので、ファイル管理は専用機に任せて、参照のみ保存の方が使いやすいかも。

#12 2014-02-21 17:14:59

Traveller
Guest

Re: applescriptを利用したファイル情報の取り込みについて

Mac上の写真(作成日2000年1月)をWinに移すと作成日が2014年2月、更新日が2000年1月
になって、その写真をまたMacに移すと作成日は2000年1月になるんですね。
ということはファイル自体には最初の作成日(撮影日)があるということか・・・

#13 2014-02-21 19:56:18

通りすがり
Guest

Re: applescriptを利用したファイル情報の取り込みについて

FM13からのGetContainerAttribute関数で一発でExif情報とれたりします。
http://www.filemaker.com/13help/ja/html … 31.15.html
でもやっぱりMacとWinで撮影日の受け取り方が違うので違う値になっちゃいます。
OSの問題?
http://help.filemaker.com/app/answers/detail/a_id/13309

#14 2014-02-24 14:20:15

msk
Member

Re: applescriptを利用したファイル情報の取り込みについて

みなさんありがとうございます。

>Travellerさん
ファイル自体には情報は入っているんですね。
そこまで検証していませんでした。参考にさせて頂きます。

>通りすがりさん
やっぱりFM13いいですね。バージョンが上がるごとにできる事が増えていっている感じがします。

現在いろいろ考えていたんですが、javascriptを使用してファイル情報を抜き取れないかと考えました。
ネット上を調べていて、見つかったのですがどう書けばいいかわかりません。

下記のような書き方なのですが、WScript.echo~で情報は表示します。
やりたい事は、echoで表示された情報をクリップボードにコピーする書き方がわかりません。
そして、このスクリプトをFMのevent送信で実行し、FMのフィールドに貼付けしたいです。

以上よろしくお願いします。
var strScriptPath;
var strFilePath;
var objFile;

var objFileSys = new ActiveXObject("Scripting.FileSystemObject");

strScriptPath = String(WScript.ScriptFullName).replace(WScript.ScriptName,"");

strFilePath = objFileSys.BuildPath(strScriptPath, "TestData.csv");
objFile = objFileSys.GetFile(strFilePath);

WScript.echo("ファイル名  :" + objFile.Name + "\n" +
            "サイズ    :" + objFile.Size + "\n" +
            "サイズ    :" + objFile.Size + "\n" +
            "種類     :" + objFile.Type + "\n" +
            "作成日    :" + objFile.DateCreated + "\n" +
            "最終アクセス日:" + objFile.DateLastAccessed + "\n" +
            "最終更新日  :" + objFile.DateLastModified);

objFile = null;
objFileSys = null;

Offline

#15 2014-02-24 17:32:02

saver
Guest

Re: applescriptを利用したファイル情報の取り込みについて

clipboardData.setData('text',コピーするテキスト)

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 599.24 KiB (Peak: 616.15 KiB) ]