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

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

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

You are not logged in.

Announcement

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


#1 2017-08-13 15:49:23

nice-guy
Member

INIファイルを読み込みたい

みなさん、こんにちは。
Event送信でファイルの存在を確認したい  https://fm-aid.com/bbs2/viewtopic.php?id=6785
の関連質問です。
起動時にaaa.iniファイル内の
[ソフトフラグ]
OK=数字
の中から数字を取得して、それによって処理を分けたいのです。
FileMakerではINIファイルは読み込めないようです。
そこで、なでしこでINIファイルを読み込みクリップボードに入れ、クリップボード経由でFileMakerに戻そうとしたのですが、スクリプトの中ではクリップボード経由の値は引き継げないようで、ダメでした。
ランタイムで使用予定なので、出来るだけプラグインは使用したくないのですが。
何かいい方法はありませんか?よろしくお願いします。

Offline

#2 2017-08-13 21:36:11

Shin
Member

Re: INIファイルを読み込みたい

クリップボード経由は、適当なフィールドにペーストして、それを読み込めば良いです。

全くべつのアプローチとして、aaa.ini をaaa.txt に mv(move) して、読み込ませれば良いのでは。

Last edited by Shin (2017-08-14 08:56:47)

Offline

#3 2017-08-13 22:16:25

Hiro
Member

Re: INIファイルを読み込みたい

前回スレ 解答サンプルで、今度は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

#4 2017-08-14 09:42:21

nice-guy
Member

Re: INIファイルを読み込みたい

Shin さん、回答ありがとうございました。
>>クリップボード経由は、適当なフィールドにペーストして、それを読み込めば良いです。
そう思って、なでしこでINIファイルを読み込むプログラムを作って実行すると、確かにクリップボードには入っています。しかし、特定のフィールドにペーストしたのですが、なぜかペーストされていないのです。それで質問しました。

>>aaa.ini をaaa.txt に mv(move) して、
なるほど、そういう手がありますか。


Hiro さん、作例までありがとうございました。
無事取得できました。これから本番ファイルに組み込みますが。
PowerShell 最強ですね。色々使い道がありそうです。少し勉強する必要がありますね。
今回はこちらを採用させていただきます。
どうもありがとうございました。

Offline

#5 2017-08-14 13:26:06

Hiro
Member

Re: INIファイルを読み込みたい

【補足】追加補足します。

>#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

#6 2017-08-14 20:27:07

nice-guy
Member

Re: INIファイルを読み込みたい

Hiro さん、ご丁寧に改訂版ありがとうございました。
実は、存在があるかどうかを確認するファイルはあるexeファイルでして、それを実行するとプログラムの状態を判断して、それをINIファイルに書き出すものです。従って、exeファイルがあり実行すれば、必ずINIファイルが書き出されるのです。
それ故、存在を確認するだけの前回のスクリプトは必要です。また、今回のものは存在を確認してさらにINIファイルの内容まで読み込むので、1回で出来るので手間が省け、INIファイルが書き出されないという予期せぬエラーにも対応できて、貴重なものです。
どうもありがとうございました。

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: 513.8 KiB (Peak: 518.71 KiB) ]