filemakergoでget(デスクトップパス)を使うと、V18のファイル削除が使えない|開発メモ

統括です。クリスマスネタは私にはこれしか用意できませんでした。

この記事の対象者

 

データやプログラミングの大掃除

年末の大掃除と言えば、「すす払い」です。

最近では「すす」はありませんが、ホコリはたくさんあります。

ホコリの原因は天井からです。

エアコン、換気扇、蛍光灯など上に溜まったホコリが下に落ちてきます。

普段から、上まで掃除が出来ていればいいのですが、多忙な現代社会です。
目に見える床の掃除だけで普段は終わっているのではないでしょうか?

普段の勉強と同じで、苦手範囲をほっておいてとりあえず学校のテスト勉強でとりあえずうまくいっても、本当の原因解決にはならず、季節講習で苦手範囲を大掃除する必要があります。

 

同じように、パソコンやスマホなども「大掃除」が必要です。

すす払いで言えば、大きなデータのゴミになっている原因を取り除く必要があります。

普段開発環境でMacを利用していますが、現場では講師の先生はiPadを使用します。講師用iPadをなかなか見ることはありません。教室長からiPadの調子が悪い時に診ます。

先日データの「すす」チェックをしていたら、iPadのgoに複数のPDFデータが残っていました。

 

ファイルメーカ では、レコードをPDFデータにする機能があります。

これを使うと、

このようなデータファイルをPDFにすることで、教室で印刷して掲示することができます。

教室現場では、iPadとゼロックスの複合機がAirPrintで印刷が可能です。

AirPrint を使って iPhone や iPad からプリントする - Apple サポート (日本)
iPhone や iPad から AirPrint 対応プリンタでプリントする方法をご説明します。

そのPDFファイルが残っていることが分かりました。

 

レコードをPDFに保存する際に、概ね4つに保存場所を指定できます。

  1. デスクトップ
  2. ドキュメントフォルダー (Macなら書類 WINならドキュメントフォルダー)
  3. テンポラリーフォルダー (一時保存する場所で、PCに少し詳しい人向け)
  4. 自分で好きな場所を指定

 

通常はパソコンで作業することが多いので、デスクトップ指定が便利です。

すぐに確認できます。

ドキュメントフォルダーで書類の整理はせずに、dropboxに入れることが多く使っていませんでした。

 

参考:PCとリアルのデスクトップを綺麗に!

デスクトップはリアルに机の上という意味です。
実際、机の上が汚いと仕事が進みません。

PCのデスクトップは一度知り合いのできる人のデスクトップを見せてもらい、最大3つまでしか置かないという拘りでした。

わざと、たくさん置けないようにするためアイコンのサイズを最大にされていました。

私のデスクトップ 6つぐらい置いてあったので整理して添付(笑)

デスクトップはメモリーを使うので、PCの処理速度が遅い方はデスクトップをまずは整理することをいつもオススメしています。
現実。机の上に書類が多いと作業しにくいですよね。

しかし、デスクトップや机に物を置くから忘れにくいという便利な点もありますよね。

少しずつ改善していきましょう!

 

ファイルメーカ の便利だからこそ、デスクトップ保存の罠

専門家ではないので、詳しくは分かりませんが
iOSには「デスクトップ」の概念がありません

最近iOS13でiPadはiPadOSというPCライクなOSに変わりましたが、デスクトップはないですよね。

それでは、どこにPDFは保存されているのでしょうか?

上記iPadで実行したデスクトップパスのファイルは上にあります。

私の推測では、デスクトップはiPadにないので、
ドキュメントフォルダーに作っているか
どこか謎の場所に作っているのではないと想定しました。

保存場所を探すには、そのファイルを消すのが早いと思い
ファイルメーカーのバージョン18からできるようになったファイルを削除を利用しました

ファイルを削除 (バージョン18以降)

ここまで来ると、ファイルメーカーを普段使っていない人は分かりづらく、多く脱落されたと思います。

もう少し細かく書きます。アプリケーションのバージョン番号とファイルを削除のファイルの場所についてです。

バージョンで分岐するif構文のスクリプト

Get(アプリケーションバージョン)関数を使用

通常は関数を使うと、Get(アプリケーションバージョン)があります。
取得すると、アプリケーション名とバージョンが細かく出ます。

ProAdvanced 18.0.3

バージョン18という数字だけが欲しいです。アルファベットは不必要です。

Filter関数で数字だけを取得

フィルター関数を使い、数字だけを抜き取ります。
ProAdvanced 18.0.3

.は必要かな?と思われますが、次の位置決めで必要です。

次に18.0.3の18だけを抜き取るには、何文字必要かを考えないといけません。

position関数で何文字目かを取得

Position関数は

テキスト; どこを探すのか この場合は 18.0.3と出した変数 $文字です
検索テキスト;.が何番目か知りたいので、”.”
先頭文字;テキストの何文字目からか聞かれています。この場合は先頭からなので1
回数;.が何回目のときか聞いているので、1回目の場所を知りたいです。
)

→答えが上記画像のように、3と出てきます。

18.0.3
.の場所は3文字目ですよね。

Left関数で左から何文字とるか

Let (
$文字=Filter ( Get(アプリケーションバージョン); “0123456789.” )
;
Left ( $文字 ; Position ( $文字 ; “.” ; 1 ; 1)-1)
)

先ほど、positon関数で3文字目が.の位置とわかりました。
欲しいのは、.の前までなので 3−1をすればいいので、上の式には−1が入っています。

このテキスト関数は、私は苦手なので、ぶっちゃけ18が欲しいので、
左から二番目だけでもいけます。

Let (
$文字=Filter ( Get(アプリケーションバージョン); “0123456789.” )
;
Left ( $文字 ; 2)
)

直接 2と記入しても大丈夫です。
毎年バージョンが一つずつ上がっていくので、18から100まで後約82年は大丈夫です。

しかし、私は82年後生きている保証は少ないですし、
よくパソコンの2000年問題などがあったように、将来の問題まで今のうちに解決しておく必要があります。


長々となりましたが、これでバージョン18の時の処理方法ができました。

簡単に表でまとめると

PCで保存iOSで保存ファイルを削除ver18以降参考)サーバースクリプト時の保存
デスクトップパス×削除できない×
ドキュメントパス削除できる
テンポラリーパス×テンポラリーなので残らない

PCとiOSの両方を使う場合は、ドキュメントパス


get(ドキュメントパス)を使い、バージョン18以降ファイルを削除のスクリプトを入れば完璧に使えます

PCだけの場合で保存が不要な場合は、テンポラリパス

get(テンポラリパス)で、バージョン関係なくファイルを削除のスクリプトも入れる必要がありません。

Ver17以下でファイルを保存したくない場合は、テンポラリーパス

Ver18からしかファイルを削除できないので、
ファイルを保存させない、テンポラリーパスがいいでしょう。(いつか)

オススメできないのは、デスクトップパスです

デスクトップパスでは保存できないのに、どこかに保存されてしまう。

表では、デスクトップパスでは保存ができないと書いてありますが、
iPadの中に保存されています。

しかし、見えているだけで、プログラム的には保存されていない状態です。
「ファイルメーカーのファイルを閉じるスクリプト」を実行してもファイルがありませんとエラーが発生して削除できません。

しかし、
同じファイルをドキュメントパス保存経由で書き出すと、上書きされます。
そして、「ファイルを削除のスクリプト」を実行するとPDFが削除されます。

以上より仮説ですが、
iPadでデスクトップパスで処理をして、削除をするときにドキュメントパスで指定すれば削除できるのかもしれませんが、ファイルパスの指定を2箇所わざわざするほとプログラムのオタッキーではないので、プロ開発者の方などお試しください。

普段私はデスクトップパスで開発していたので、反省です😩

備考:大掃除と言えば・・・

断捨離

不要物の処理

メルカリなどありますが、配送ややり取りが面倒な方もいるのではないでしょうか?。

リサイクルショップに持っていくのも面倒です。

私は出張買取サービスをかなり使っています。

万代書店 三重総合│三重県四日市・鈴鹿市、愛知県豊川市でリサイクルショップやゲームセンターを展開中
万代書店 三重総合のHP。三重県四日市・鈴鹿市、愛知県豊川市でリサイクルショップやゲームセンターを展開中!ゲーム、コミック、古着、おもちゃ、ミリタリー、カード、アイドル、CD&DVD、スマホ・携帯電話、家電、楽器、アウトドア・レジャー、釣具、UFOキャッチャー、高級ブランド、金・プラチナ・金券、アダルト、何でも買取いた...

塾の吉川さんの紹介でと言えば、きっと何かいいことがあるかもしれません。

タイトルとURLをコピーしました