nevertheless’s diary

考えていることをChatGPTに聞いてみる

FileMakerのスクリプト(2):ChatGPTに頼る

先の記事に書いたQ4)のスクリプトがどうにも上手く動かないので、要件を書き直した。

Q4)要件を書き直しました。次の3つのフィールドを設定します。
・tekiyou
・kensaku(グローバル)
・tikan(グローバル)

tekiyouの中にkensakuの文字列が含まれているものを選ぶ。
tekiyouに含まれているkensakuの文字列と同じものを、tikanの文字列に置換する。
全てのレコードについてこれを実行する。

日本語版のスクリプトで示してください。

以下は、指定された要件に基づくFileMakerスクリプトです。このスクリプトは、全てのレコードに対して「tekiyou」フィールド内の「kensaku」フィールドに指定された文字列を検索し、見つかった場合にそれを「tikan」フィールドの文字列に置換する処理を行います。

スクリプトの手順】
1. 検索モードへ移行: 対象レコードを特定するために検索モードに移行します。

2. 検索条件の設定: 「tekiyou」フィールドに「kensaku」グローバルフィールドの内容を含むレコードを検索します。

3. レコードの検索実行: 条件に合致するレコードを検索します。
置換とフィールドの更新: 検索にヒットした各レコードに対して、「tekiyou」フィールド内の「kensaku」文字列を「tikan」文字列に置換します。

4. 全レコードへの処理の適用: ループを使用して全レコードに対して置換を実行します。

 

  1. # 検索モードへ移行
  2. 検索モードに切り替え [ 一時停止: オフ ]
  3.  
  4. # 検索条件の設定
  5. フィールド設定 [ YourTable::tekiyou ; "*" & YourTable::kensaku & "*" ]
  6.  
  7. # 検索実行
  8. 検索実行 [ ]
  9.  
  10. # 置換処理のループ開始
  11. ループ
  12.     # 置換実行
  13.     フィールド設定 [ YourTable::tekiyou ; substitute ( YourTable::tekiyou ; YourTable::kensaku ; YourTable::tikan ) ]
  14.  
  15.     # 次のレコードへ
  16.     レコード/リクエスト/ページへ移動 [ 次の ; 最後の後に終了: オン ]
  17. ループ終了

途中まではスクリプトとにらめっこしたり、ファイルメーカーデバッグ機能を使って考えてみたりしていたが、どうにもスクリプトそのものがおかしいように思えたので、要件の文章を誤解されないような形に訂正したら、だいぶシンプルになったが、これで問題なく機能した。

なるほど、ChatGPTへの指示の仕方が重要なのだ、というのがよくわかった。