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

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

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

You are not logged in.

Announcement

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


#1 2017-07-12 16:18:11

TAKESA
Member

ファイル名を除いたパスの取得方法

バックアップを作成するスクリプトをつくろうと思ったのですが
フォルダパスを指定するのではなく、そのファイルがあるフォルダにバックアップを作成するには
どのようにしたらいいですか?
パスを取得する関数では、ファイル名まで含めたフルパスになってしまうようで
それではできませんよね?

WIN10
FMP16

Offline

#2 2017-07-12 17:07:39

チポ
Member

Re: ファイル名を除いたパスの取得方法

ファイルパスからファイル名を取り除けばいいんでは。

テキスト関数を駆使してできますが、、

Offline

#3 2017-07-13 00:27:18

TAKESA
Member

Re: ファイル名を除いたパスの取得方法

Substitute ( Get ( ファイルパス ) ; Get( ファイル名 ) & ".fmp12" ; "") & "バックアップ/" & Get( ファイル名 ) &  Substitute ( Get ( タイムスタンプ ) ; [ "/" ;  "_" ] ; [ " " ; "_" ] ; [ ":" ; "" ] )  & ".fmp12 "

こんな感じでしょうか?
もっとスマートにかけますか?

Last edited by TAKESA (2017-07-13 01:38:56)

Offline

#4 2017-07-13 01:44:27

TAKESA
Member

Re: ファイル名を除いたパスの取得方法

ところでバックアップ完了後に
完了したことを通知したいのですがカスタムダイアログではOKを押すだけの
無駄なものを表示してしまうことになります
使いやすいソフトをつくるときに
そういった意味のないダイアログはUIやUX的にはタブーだということです

画面中央あたりに、ふわっとバックアップ完了というテキストを表示させるようなことはできないでしょうか?

Offline

#5 2017-07-13 05:24:58

Moz
Member

Re: ファイル名を除いたパスの取得方法

素朴な疑問ですが OK を押すだけで閉じるダイアログが UI/UX 的NGで
画面中央にふわっとでるテキストだと OK な理由は何でしょうか?

Offline

#6 2017-07-13 06:02:31

TAKESA
Member

Re: ファイル名を除いたパスの取得方法

わざわざOKをクリックする必要があるからです
つまりOKしかないダイアログを出すのは無意味だということです
削除しますか? はい   いいえ
ならいいのですが
削除しました はい
というのは無駄です

Last edited by TAKESA (2017-07-13 06:05:40)

Offline

#7 2017-07-13 06:06:56

Moz
Member

Re: ファイル名を除いたパスの取得方法

なるほど。そういった考え方もあるのですね。ありがとうございます。
"通知は通知内容を確実に視認させられなければ意味がない"という観点もありますね。

参考までにどのような資料・Web サイトから情報を得られているのか教えて頂けませんか?

古い人間なのでダイアログ出してしまいがちなのです。
最新の UI / UX 事情について少しでも知ることができればと。

Last edited by Moz (2017-07-13 06:09:51)

Offline

#8 2017-07-13 06:34:07

TAKESA
Member

Re: ファイル名を除いたパスの取得方法

どこでみたか忘れました

ファイルメーカーで、というわけではないのですが
配色や、レイアウトなど
デザイン的な勉強をしているときにみつけました

ダイアログでは
はい いいえ ok などではなく

削除しますか?
する     しない

などとしたほうがよいようですし
そもそも選択肢がないなら必要ないようです
OK押そうが押すまいがもう終わったことなので…
OKを押すことによって、ユーザーが確認した、とかいう承認印的な証拠を残したいなら別でしょうけど

Offline

#9 2017-07-13 06:39:16

TAKESA
Member

Re: ファイル名を除いたパスの取得方法

これだったかどうかわかりませんがここの真ん中あたりに書いてありました

2) 不必要なインターフェース
https://emptypage.jp/translations/benroe/gui.html

Offline

#10 2017-07-13 06:46:26

Moz
Member

Re: ファイル名を除いたパスの取得方法

わざわざありがとうございます。早速読んで参考にします。

終わったことにダイアログを出さないというのは合理的ですね。
自然に消える進捗表示のためのダイアログも最新のバージョンであれば実現できそうですね。

早起きの年寄りに付き合って頂きありがとうございました!

Offline

#11 2017-07-13 09:02:25

チポ
Member

Re: ファイル名を除いたパスの取得方法

いいと思いますが、あえて、、

ファイル名を一旦消して、新たにタイムスタンプを入力
していますよね。
これを
ファイル名をタイムスタンプに直接変更
できますよね。

それと、
日付と時刻のセパレータはシステムに左右される場合がありますからご注意を。


カスタムダイアログがいやなら、
別ウインドを表示とか、レイアウト切り替えて表示とか、
それを一定時間で元に戻すこともできますね。

Offline

#12 2017-07-13 09:52:07

qb_dp
Member

Re: ファイル名を除いたパスの取得方法

完了したことを通知したいのですがカスタムダイアログではOKを押すだけの
無駄なものを表示してしまうことになります

通知したいだけの場合は、私は、PowerShellを使っています。

以下のようにすると、指定秒後に自動で閉じるダイアログが出せます。
※Windowsのみで動作。

Event を送信 [「aevt」; 「odoc」; "powershell  -windowstyle hidden -Command \" (New-Object -COM Wscript.Shell).PopUp('内容', 3, 'タイトル', 0)\""]


また、記述が多くなりますが、以下のようにすると画面右下に通知を出すことが出来ます。

Event を送信 [「aevt」; 「odoc」;
"powershell  -windowstyle hidden -Command \"param([int]$timeout = 3, [string]$tilte = '{tilteタイトル}', [string]$body = '{body}', [string]$toolTipIcon = 'Info');
[Void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');
$notifyIcon = New-Object System.Windows.Forms.NotifyIcon;
$powerShellExe = $PSHOME+'/powershell.exe' ;
$icon = [System.Drawing.Icon]::ExtractAssociatedIcon($powerShellExe);
$notifyIcon.Icon = $icon;
$notifyIcon.Visible = $true;
$notifyIcon.ShowBalloonTip($timeout, $tilte, $body, $toolTipIcon);
$notifyIcon.Visible = $false;\""
]


あと、プラグインを使うと、「OK」「キャンセル」をクリックした、または自動で閉じたなどの情報の取得が出来ます。

変数を設定 [$Result; 値:SMPS_ExecSync( " (New-Object -COM Wscript.Shell).PopUp('内容', 3, 'タイトル', 1)" )]

ScriptMakerPS | FileMaker Plugin for Windows : https://sites.google.com/site/scriptmakerps/

Last edited by qb_dp (2017-07-13 10:01:08)

Offline

#13 2017-07-13 10:07:48

Moz
Member

Re: ファイル名を除いたパスの取得方法

僭越ながら私も一案。

Mac の通知センターを利用して通知を行う方法を。

[AppleScript を実行]スクリプトステップに以下の計算式を入れます。

Let ( [
    タイトル = "バックアップ" ; //メッセージのタイトル
    サブタイトル = "完了の通知" ; //メッセージのサブタイトル
    メッセージ = "バックアップが完了しました。" ; //メッセージの本文
    通知音 = "Frog" //メッセージを表示する際の通知音
] ;
    "set notificationTitle to the \""& タイトル &"\"¶
    set notificationSubTitle to \""& サブタイトル &"\"¶
    set notificationMessage to \""& メッセージ &"\"¶
    display notification notificationMessage with title notificationTitle subtitle     notificationSubTitle sound name \""& 通知音 & "\"¶
    Delay 1"
) // Let

Offline

#14 2017-07-13 16:54:01

TAKESA
Member

Re: ファイル名を除いたパスの取得方法

qb_dpさん
Event を送信 を選んでどこにそれを記述したらよですか?
テキストや計算のところにかきましたがファイルエラーやフィールドがありません
のエラーがでてできません

Offline

#15 2017-07-13 17:05:04

qb_dp
Member

Re: ファイル名を除いたパスの取得方法

Event を送信 の 計算 に記述します。
1577bace0423ee2ac7f7ff1c67d20c29.png

Offline

#16 2017-07-13 17:38:36

TAKESA
Member

Re: ファイル名を除いたパスの取得方法

「aevt」; 「odoc」
は記述しなくてよかったんですね
できました
一瞬DOS窓みたいなのがうつりますね

Offline

#17 2017-07-13 18:19:12

qb_dp
Member

Re: ファイル名を除いたパスの取得方法

>一瞬DOS窓みたいなのがうつりますね

Event を送信 の オプション
「対象アプリケーションを手前に表示」のチェックを外せば、PowerShellのウインドウが後ろに隠れるので、気にならなくなります。

Offline

#18 2017-07-13 18:20:22

TAKESA
Member

Re: ファイル名を除いたパスの取得方法

チポさん
ファイル名を直接タイムスタンプに変更すると
file:/E:/フォルダ/バックアップ/ファイル名2017‐07‐13‐181655.fmp12
という形にできなくありませんか?
file:/E:/フォルダ/2017‐07‐13‐181655.fmp12
となってしまいます

Offline

#19 2017-07-14 09:05:17

チポ
Member

Re: ファイル名を除いたパスの取得方法

こんなのでいいのでは。

  Substitute ( Get ( ファイルパス ) ; Get ( ファイル名 ) ; Substitute ( Get ( タイムスタンプ ) ; ・・・・・・ ) )
もちろん、
ファイルパスにファイル名と同じものがないのが条件です。

Offline

#20 2017-07-14 11:17:33

Hiro
Member

Re: ファイル名を除いたパスの取得方法

「バックアップ/」も追加しなくてはならないから、こんな感じかな、
Substitute(Get(ファイルパス); [Get(ファイル名); "バックアップ/"&Get(ファイル名)&Substitute(Get(タイムスタンプ);・・・・・・ )])
(あまりスマートにならないけど、.fmp12分だけ短くできる)

Offline

#21 2017-07-14 13:16:45

チポ
Member

Re: ファイル名を除いたパスの取得方法

ああ、
バックアップホルダ、
すっかり抜けいていました。

Hiroさん
ご指摘ありがとうございます-_-

Offline

#22 2017-07-14 17:37:46

TAKESA
Member

Re: ファイル名を除いたパスの取得方法

バックアップフォルダにあるバックアップを起動してバックアップすると
フォルダパスの都合で保存できなくなります
変数を使ってできないか色々ためしてみましたが
うまくいきません

Last edited by TAKESA (2017-07-14 17:53:12)

Offline

#23 2017-07-14 17:59:10

チポ
Member

Re: ファイル名を除いたパスの取得方法

パスに
「バックアップ」が含まれているかで条件分岐するとか、
最初にスレ主さんが書かれた様に、
「バックアップ」を消してからまた加える。
とか、でいいのでは

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 567.53 KiB (Peak: 588.44 KiB) ]