プロが教えるわが家の防犯対策術!

ファイルメーカーPro 5、5.5、6 を使用しています。
計算フィールドの計算式の中に、その計算フィールド自身の、フィールド名を使用した計算式を組み立てたいのですが、方法がわかりません。

たとえば、
PatternCount(テキスト, Status(フィールド名))
等の様な方法ですが、
Status(フィールド名)
で、得られる結果は、その、計算フィールド自身の名前ではなくて、現在、書き換え状態にある(アクティブな)フィールド名が得られてしまいます。

何か、良い方法は無いでしょうか?

A 回答 (2件)

ヘルプにも書いてあるとおり、Status(フィールド名)関数は「現在


カーソルのあるフィールドの名前を返します」から、それでいいん
です。自分自身のフィールド名を変数で取得しなくちゃいけないの
は、フィールド名が勝手にチョコチョコ変わるなんていう異常な環
境だけで…なるほど。

テキスト内の特定の文字列の出現頻度を抜き出す過程で、「フィー
ルドを複製して新しい名前を与えると、フィールド名に一致する文
字列を数える」手口を思いついたんだと想像しますが、私なら、
[探す文字列]: テキスト、繰り返し
[出て来た数]: 計算、=PatternCount(Extend(テキスト), 探す文字列)
として[探す文字列]にいろいろ列記する方が好きですね。

この回答への補足

せっかくお答えを頂いたのですが、質問の文章が下手で申し訳なかったです。

Status(フィールド名) を、使うのが目的ではなく、あくまでも、計算フィールドの名前を得たいのです。その為の方法が無いか、相談しています。

目的を詳細に書きますと、たとえば、

フィールド名:「オリジナルテキスト」
フィールドタイプ:テキスト(日本語)

が有り、このフィールドの中には、比較的長めの、改行を含む文章が格納されて居ます。

これに対して、
  最初に「消費税」という単語が含まれる行 を
計算フィールドで、得るために、

case(オリジナルテキスト="","記入なし",
patterncount(オリジナルテキスト,"消費税")=0,"消費税という単語は含まれません",
Middle(オリジナルテキスト,
Position(オリジナルテキスト,"¶",Position(オリジナルテキスト,"消費税",1,1),-1)+1,
Position(オリジナルテキスト,"¶",Position(オリジナルテキスト,"消費税",1,1),1)-
Position(オリジナルテキスト,"¶",Position(オリジナルテキスト,"消費税",1,1),-1)-1
)
)
のような計算フィールドを、作ります。

このフィールド名を、「消費税」にします。

で、ここからが、ポイントです。
「消費税」という名前の、計算フィールドを複製して、その、フィールド名をたとえば「年金」に
改名すると、自動的に年金という単語を含む行を検索するように出来れば、素人さんでも、計算フィールドを、
簡単に増やせるなど、考えているのです。

補足日時:2007/06/14 20:48
    • good
    • 0

そりゃぁ、目的が「計算フィールドを作る」だったらしかたがない


ですけど、「特定文字列を含む段落を抜き出す」でしたら、私が
言ってる繰り返しフィールドの方法で

いちいちフィールド定義をいじることなく

できますよということです。もちろん、繰り返しフィールド[探す文
字列]がグローバルフィールドなら、全レコードに対して同じ条件で
検索します。

見つけた文字列の位置から上流にさかのぼった改行コードと下流に
下った改行コードの間を抜き出すと言う手口は感心しました。私だ
とイヤになってスクリプトでPerlかなんか外部のプログラムを呼ん
じゃうところです。

この回答への補足

お手数を、おかけします。

目的は、「テキストフィールドに格納されている、長い文字列の中から、特定文字列を含む段落(行)を与える計算フィールドを作る。そして、別の特定文字列を与える計算フィールドを簡単に作る。」です。

繰り返しフィールド を使う理由と、実際の使い方が見えないので、もう少し詳しく教えてください。

補足日時:2007/06/16 06:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す