みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
みなさん、こんにちは。
Event送信でファイルの存在を確認したい https://fm-aid.com/bbs2/viewtopic.php?id=6785
の関連質問です。
起動時にaaa.iniファイル内の
[ソフトフラグ]
OK=数字
の中から数字を取得して、それによって処理を分けたいのです。
FileMakerではINIファイルは読み込めないようです。
そこで、なでしこでINIファイルを読み込みクリップボードに入れ、クリップボード経由でFileMakerに戻そうとしたのですが、スクリプトの中ではクリップボード経由の値は引き継げないようで、ダメでした。
ランタイムで使用予定なので、出来るだけプラグインは使用したくないのですが。
何かいい方法はありませんか?よろしくお願いします。
Offline
クリップボード経由は、適当なフィールドにペーストして、それを読み込めば良いです。
全くべつのアプローチとして、aaa.ini をaaa.txt に mv(move) して、読み込ませれば良いのでは。
Last edited by Shin (2017-08-14 08:56:47)
Offline
前回スレ 解答サンプルで、今度はHTAコマンドをPS(PowerShell)コマンドに替えての解法案です。
PSコマンドをEvent送信して、ファイル内容を(日本語文字化け対処して)取得、その結果をクリップボード経由でFMへ戻します。
【PSコード 雛型】
PowerShell.exe -Command
"$OutputEncoding = [console]::OutputEncoding;
Get-Content \"<<ファイルパス>>\" | Clip"
そんな作例サンプルをアップしときます。
●サンプル「ファイル内容取得.fmp12」 → https://yahoo.jp/box/P1FqM2
Last edited by Hiro (2017-08-14 10:45:20)
Offline
Shin さん、回答ありがとうございました。
>>クリップボード経由は、適当なフィールドにペーストして、それを読み込めば良いです。
そう思って、なでしこでINIファイルを読み込むプログラムを作って実行すると、確かにクリップボードには入っています。しかし、特定のフィールドにペーストしたのですが、なぜかペーストされていないのです。それで質問しました。
>>aaa.ini をaaa.txt に mv(move) して、
なるほど、そういう手がありますか。
Hiro さん、作例までありがとうございました。
無事取得できました。これから本番ファイルに組み込みますが。
PowerShell 最強ですね。色々使い道がありそうです。少し勉強する必要がありますね。
今回はこちらを採用させていただきます。
どうもありがとうございました。
Offline
【補足】追加補足します。
>#1 Event送信でファイルの存在を確認したい https://fm-aid.com/bbs2/viewtopic.php?id=6785
の関連質問です。
これら2つの個別処理をPowerShellスクリプトで連結連動して一括で処理することもできます。
PSスクリプトをEvent送信して、ファイルの有無を判定、
・在れば、ファイル内容を(日本語文字化け対処して)取得、その結果をクリップボード経由でFMへ戻します。
・無ければ、無いことをクリップボード経由でFMへ報告します。
PowerShell -Command "
##############################################
# 指定ファイルを検索して在ればその内容をコピーする
##############################################
$fPath='<<ファイルパス>>';
$OutputEncoding=[console]::OutputEncoding;
$isExist=(Test-Path $fPath);
if($isExist){
Get-Content $fPath | Clip
}else{
Write-Output 'ファイルは存在しません。' | Clip
}
"
そんな修正済サンプルを上書き再アップしときます。
●アップデート版サンプル「ファイル内容取得.fmp12」 → https://yahoo.jp/box/P1FqM2
Last edited by Hiro (2017-08-14 21:03:37)
Offline
Hiro さん、ご丁寧に改訂版ありがとうございました。
実は、存在があるかどうかを確認するファイルはあるexeファイルでして、それを実行するとプログラムの状態を判断して、それをINIファイルに書き出すものです。従って、exeファイルがあり実行すれば、必ずINIファイルが書き出されるのです。
それ故、存在を確認するだけの前回のスクリプトは必要です。また、今回のものは存在を確認してさらにINIファイルの内容まで読み込むので、1回で出来るので手間が省け、INIファイルが書き出されないという予期せぬエラーにも対応できて、貴重なものです。
どうもありがとうございました。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 514.29 KiB (Peak: 519.2 KiB) ]