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

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

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

You are not logged in.

Announcement

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


#1 Re: 初心者のFileMaker pro Q&A » URLを開くスクリプトで、Googleクロームの特定のタブを更新したい » 2020-07-28 10:08:57

どのようなURLに対する検索を多く行われているのかによると思いますが、タブを増やしたくないという事だけであれば
重複タブを除外するようなChrome側の拡張機能を使うという手もあるのではと思いました。
https://chrome.google.com/webstore/deta … bnimcmcjle
↑たとえばこの拡張機能であれば、新しいタブで指定のアドレスを開いて古い重複タブを閉じるという動きになります
chrome全体に効いて来るので普通にchromeを使う際に使いづらくなる可能性が大いにありますが

#2 Re: 初心者のFileMaker pro Q&A » LetとEvaluateを使った再帰的な計算式について » 2016-12-02 19:17:10

Shin さん
Hiro さん

色々とご回答ありがとうございます。

確かに値一覧用の関数が用意されているんだから
それを使ったほうがいいですね ^^;

Hiroさんの作例は面白いですね!!
最初に繰返しの件数を数えておいて再帰内ではインクリメントするだけ。
そして対象の文字列を改行に置き換えていくことですべてGetValueで処理するとは....
このほうが、後で見たときにわかりやすいですね。


しかし、javascriptがタグ内に直書きされていたり、文書中でHTML文字がエスケープされていなかったり
とか可能性を考え始めるときりがないですね。


まだまだ勉強の必要があると感じました。
色々と検討いただきありがとうございました!!


実は…
正規表現が単体で使えたらいいなーとか思いながら作っていたのは秘密です。

#3 Re: 初心者のFileMaker pro Q&A » LetとEvaluateを使った再帰的な計算式について » 2016-12-02 13:09:36

Shin 様

ご回答ありがとうございます。

確かに残りの文字を取り出すのに
MiddleよりはRightのほうが素直な気がしますね。

探しやすいように
最初に文字を置き換えるという発想はできてませんでした!!

参考にさせていただきます。
ありがとうございます :D

#4 初心者のFileMaker pro Q&A » LetとEvaluateを使った再帰的な計算式について » 2016-12-02 10:47:21

tcf775
Replies: 10

OS:[Windows10]
FileMaker Ver:[15]

お世話になります。
ずっとシステム開発をやっていますが、
FileMakerについては勉強し始めの超初心者です。

HTMLの中から
あるタグの中の特定の属性の値を全て取り出して
重複しない値一覧を作る。
(例えば画像のURLだけとか)
という処理を計算式で
LetとEvaluateを使ってやってみようと思いとりあえず作ってみました。

以下の計算式で、とりあえず目的は達したんですが、
この計算式、何か冗長な気がしてなりません。
------------------------------------------------------------------
Let (
    [
         $sale_text = テキスト;
        $start_tag = タグ開始文字;
        $end_tag = タグ終端文字;
        $start_attr = 属性開始文字;
        $end_attr = 属性終了文字;
        $list_values = "";
        $start_pos = 1;
        $start_pos = Position ( $sale_text ; $start_tag ; 1 ; 1 );
        $saiki = "
            Case($start_pos > 0;
                Let (
                [
                    $text_length = Length ( $sale_text );
                    $sale_text = Right ( $sale_text ; $text_length - $start_pos + 1 );
                    $add_text = Left ( $sale_text ; Position($sale_text; $end_tag; 1; 1 ));
                    $start = Position($add_text; $start_attr; 1; 1) + Length($start_attr);
                    $end = Position($add_text; $end_attr; $start; 1);
                    $add_text = Middle($add_text; $start; $end - $start);
                    $add_text = Case( PatternCount($list_values; $add_text) = 0; $add_text & \"\¶\"; \"\");
                    $list_values = $list_values  & $add_text;
                    $sale_text = Middle( $sale_text; Position($sale_text; $end_tag; 1; 1 ); $text_length);
                    $start_pos = Position ( $sale_text ; $start_tag ; 1 ; 1 )
                ];
                Evaluate($saiki)
                );
                $list_values
            )
        ";
        $list_values = Evaluate($saiki)
    ];
    Left($list_values; Length($list_values) - 1)
)
-----------------------------------------------------------------------
カスタム関数を使う、スクリプトを使うなど
他にもやり方はあるのでしょうが、LetとEvaluateを使ってやるという場合に
こんなやり方がある。とか上の計算式をもっとこうしたほうが良いとか
アドバイスがあれば教えて頂きたいです。

曖昧な質問で申し訳ありませんが
ご教授、お願いいたします。

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.010 seconds, 7 queries executed - Memory usage: 585.36 KiB (Peak: 590.93 KiB) ]