top of page

外部ファイルを操作する機能の追加

更新日:2019年6月14日

テキストファイルの作成や削除、編集、名前の変更が出来るようになりました。

それらの機能追加として、下記のスクリプトと関数が追加されています。

  1. ファイルの存在を取得

  2. ファイルサイズを取得

  3. ファイルの名前変更

  4. ファイルを削除

  5. データファイルを作成

  6. データファイルを開く

  7. データファイルを閉じる

  8. データファイルに書き込む

  9. データファイルの位置を取得

  10. データファイルの位置を設定

  11. データファイルから読み取る

  12. Get (オープンデータファイル情報)

追加されたスクリプトステップ、関数の解説

1.ファイルの存在を取得

引数にファイルパスを指定して、ファイルが存在するか判定出来る。ファイルパスに2行指定した場合は1行目しか有効でない。存在する場合は1、存在しない場合は0をターゲットに返します。

ファイルの存在を取得
ファイルの存在を取得

2.ファイルサイズを取得

ファイルサイズをバイト単位で取得します。

今までも下記関数を使うことでファイルサイズを取得することは出来ました。


 GetContainerAttribute ( ファイル ; "fileSize" )


しかし、一度オブジェクトフィールドへ入れる必要があったので、外部にあるファイルのサイズを取得できるのは意義があると思います。

ファイルサイズを取得
ファイルサイズを取得

3.ファイルの名前変更

ファイルの名前を変更出来ます。

例えば「log.txt」というファイルにログデータを書き込んでいて、一定サイズを超えたら「log2019-05-06.txt」というファイル名にして、アーカイブするという使い方が出来ます。

ファイルの名前を変更
ファイルの名前を変更

4.ファイルを削除

ファイルを削除します。

パスを指定することで、ファイルを削除することが出来ます。今までもフィールドを指定せずに「フィールド内容のエクスポート」ステップを実行することで実現出来ましたが、、、解りやすくなりましたね。

ファイルを削除
ファイルを削除

5.データファイルを作成

空っぽのテキストファイルを作成します。

パスを2行書いても、1行目しか作成されません。

データファイルを作成
データファイルを作成

6.データファイルを開く

ここから少し独特な操作になります。

作成したデータファイルを操作するには、まずファイルIDを取得する必要があります。このファイルIDとはこのスクリプトを実行することで振られる番号のことです。同じファイルであっても、「データファイル閉じる」スクリプトステップを実行することで新たな番号が振られます。FileMaker Pro Advanced を再起動するとリセットされます。

また、開いている間のファイルは「ファイルの名前変更」「ファイルを削除」のスクリプトステップが実行できません。エラー300を返します。

データファイルを開く
データファイルを開く

7.データファイルを閉じる

ファイルIDを指定してデータファイルを閉じることが出来ます。例えば、ファイルIDが[35]のファイルを閉じた後に、同じデータファイルを開くと[36]になります。

FileMaker Pro Advanced を再起動して、同じファイルを開くとファイルIDは[1]となります。

データファイルを閉じる
データファイルを閉じる

8.データファイルに書き込む

このスクリプトは「データファイルを開く」スクリプトステップでファイルIDを取得してからでないと使えません。

文字コードは下記のどちらか。

  • UTF-8

  • UTF-16

書き込んだ文字列の最後に改行を追加するかどうかをオプションとして設定出来ます。最後に改行を追加すると、ログを改行区切りで残していく様な使い方が出来ます。

データファイルに書き込む
データファイルに書き込む

9.データファイルの位置を取得

このスクリプトもファイルIDを取得している必要があります。このスクリプトによって、次に書き込む位置を取得することが出来ます。

データファイルの位置を取得
データファイルの位置を取得

例えば、改行を追加せずに「ABC」と書き込んだ後でこのスクリプトを実行すると、「3」を返します。

次に、ファイルを閉じて、もう一度開いてこのスクリプトを実行すると「0」を返します。つまり、この状態で書き込みをすると先頭文字列を上書きしてしまうのです。

※「データファイルに書き込む」「データファイルから読み取る」を実行した後だと、「3」を返します。

データファイルの位置の概念
データファイルの位置の概念

ファイルを閉じて、データファイルに追記する場合は注意が必要です。


10.データファイルの位置を設定

データファイルへの位置を設定します。

イメージ的にはテキストファイルのカーソル位置を指定します。そのカーソル位置を起点に書き込んだり読み込んだりします。

下記スクリプトステップに影響する設定です。

  • データファイルに書き込む

  • データファイルから読み取る

データファイルの位置を設定
データファイルの位置を設定

「データファイルの位置を取得」で説明しましたが、データファイルを閉じて開くと、書き込み位置が0になってしまいます。

よって、データファイルに追記する場合は「ファイルサイズを取得」スクリプトステップでファイルサイズを取得し、その値を「データファイルの位置を設定」スクリプトステップで指定すると、一番最後に追記する形で書き込みすることが出来ます。


具体的には下記のようなスクリプトステップになります。

ファイルの最後に追記するスクリプトサンプル
ファイルの最後に追記するスクリプトサンプル

11.データファイルから読み取る

データファイルから中のテキストを読み込むことが出来ます。

読み取る形式として、下記があります。

  • UTF-16

  • UTF-8

  • <