HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■13293 / inTopicNo.1)  計算式を教えてください
  
□投稿者/ Y子 -(2022/06/02(Thu) 10:29:36)
    初めての投稿になります。
    既出の質問でしたらすみません。

    桐10を使っております。
    例えば、下記アドレスの「.jp/」以降から「.html」前までを省略したい場合の計算式を教えて頂きたいです。(省略したい部分の文字数は様々です。)

    https://www.kthree.co.jp/kihelp/index.html
引用返信 [メール受信/OFF] 削除キー/
■13294 / inTopicNo.2)  Re[1]: 計算式を教えてください
□投稿者/ 今村 誠 -(2022/06/02(Thu) 11:39:59)
    Y子さんこんにちは
    > 例えば、下記アドレスの「.jp/」以降から「.html」前までを省略したい場合の計算式を教えて頂きたいです。(省略したい部分の文字数は様々です。)
    下記アドレスの記載項目名を[url]とした場合
    > https://www.kthree.co.jp/kihelp/index.html
    但し↑を「あれ」sをはぶいたものを「これ」と読み替えて下さい。
    以下の式でいかがでしょうか?
    #cond(#文字位置([url],".jp/")*#文字位置([url],".html")*#文字位置([url],"あれ://")
    ,#sstr([url],#文字位置([url],"あれ://"),#文字位置([url],".jp/")-#文字位置([url],"あれ://"))
    ,#文字位置([url],".jp/")*#文字位置([url],".html")*#文字位置([url],"これ://")
    ,#sstr([url],#文字位置([url],"これ://"),#文字位置([url],".jp/")-#文字位置([url],"これ://")))
引用返信 [メール受信/OFF] 削除キー/
■13295 / inTopicNo.3)  Re[1]: 計算式を教えてください
□投稿者/ ONnoji -(2022/06/02(Thu) 13:05:48)
    2022/06/02(Thu) 16:59:58 編集(投稿者)
    2022/06/02(Thu) 13:49:21 編集(投稿者)

    > 桐10を使っております。
    > 例えば、下記アドレスの「.jp/」以降から「.html」前までを省略したい場合の計算式を教えて頂きたいです。(省略したい部分の文字数は様々です。)
    >
    > https://www.kthree.co.jp/kihelp/index.html

    つまり、"https://www.kthree.co.jp/kihelp/index.html" → "https://www.kthree.co.jp/" という文字列操作ですね。

    リテラルのままで書くと次のようになります。

     #sstr( "https://www.kthree.co.jp/kihelp/index.html", 1, #文字位置( "https://www.kthree.co.jp/kihelp/index.html", ".jp/" ) + 3 )

    #sstr は #部分列の別名です。sstrは Substring:サブストリング の意です。

     この関数は、#sstr( string, p, n )

     文字列:string の左から数えて p番めから、 n文字分取り出せという意味です。

    なので、 pの値は1(一番左の文字)、 nは、#文字位置( "https://www.kthree.co.jp/kihelp/index.html", ".jp/" ) + 3 です。

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    実際には項目の項目値なのでしょうから、

    仮に項目名 [address]の項目値が https://www.kthree.co.jp/kihelp/index.html だとすれば、

     #sstr( [address], 1, #文字位置( [address], ".jp/" ) + 3 )        ※値 3は等価の式 #文字数( ".jp/" ) - 1 でもよい

    ただし、[address]の項目値に .jp/ が含まれていない場合には正しい結果が得られません。

    なので、

     #cond( #文字位置( [address], ".jp/" ) > 0, #sstr( [address], 1, #文字位置( [address], ".jp/" ) + 3 ), 1, "url not found" )

      または

     #cond( #文字位置( [address], ".jp/" ) > 0, #sstr( [address], 1, #文字位置( [address], ".jp/" ) + 3 ), 1, [address] )

    のように、条件を付けた方がよいと思いますよ。

    #cond は #条件選択 の別名です。


引用返信 [メール受信/OFF] 削除キー/
■13296 / inTopicNo.4)  Re[1]: 計算式を教えてください
□投稿者/ 尾形 -(2022/06/02(Thu) 16:01:18)
    どうも、こんにちは

    > 桐10を使っております。
    > 例えば、下記アドレスの「.jp/」以降から「.html」前までを省略したい場合の計算式を教えて頂きたいです。(省略したい部分の文字数は様々です。)
    >
    > https://www.kthree.co.jp/kihelp/index.html


    桐10は便利そうな関数あるみたい


    &STR = "https://www.kthree.co.jp/kihelp/index.html"
    &STR = "/" + &STR

    #囲み文字列(&STR,"/","/",1)+"//"+#囲み文字列(&STR,"/","/",2)+"/"


    未検証です


引用返信 [メール受信/OFF] 削除キー/
■13297 / inTopicNo.5)  Re[2]: 計算式を教えてください
□投稿者/ 尾形 -(2022/06/02(Thu) 16:09:00)
引用返信 [メール受信/OFF] 削除キー/
■13298 / inTopicNo.6)  Re[2]: 計算式を教えてください
□投稿者/ Y子 -(2022/06/02(Thu) 16:38:14)
    No13294〜13297に返信

    返信の方法もままならずすみません。。

    皆様ありがとうございます。一つずつ検証してみたいと思います。かなり時間が掛かりそうですが、理解を深められるよう頑張ります。
引用返信 [メール受信/OFF] 削除キー/
■13299 / inTopicNo.7)  Re[2]: ドメイン(.co.jp)以外のドメインも取得するのであれば
□投稿者/ ONnoji -(2022/06/04(Sat) 14:45:51)
    2022/06/04(Sat) 16:54:10 編集(投稿者)

    > 桐10を使っております。
    > 例えば、下記アドレスの「.jp/」以降から「.html」前までを省略したい場合の計算式を教えて頂きたいです。(省略したい部分の文字数は様々です。)
    >
    > https://www.kthree.co.jp/kihelp/index.html

    ↑上のようにドメイン(.co.jp)の場合には、

     #sstr( [address], 1, #文字位置( [address], ".jp/" ) + 3 ) ※これは質問のように「.jp/」をターゲットにした式です

    でOKですが、

    実際には、↓以下の例のような

     https://www.youtube.com/watch?v=WDH_nJM3djc

    ドメイン(.comなど)のようなケースもあるのではないでしょうか??

    なので、ドメイン(.co.jp)以外のドメインも取得するのであれば、

    すでに尾形さんが提示されたように

     #対応文字列( #文字置換( [address], "/", "," ), 1 ) + "//" + #対応文字列( #文字置換( [address], "/", "," ), 3 ) + "/"

    #文字置換( )関数と#対応文字列( )関数を利用した上↑の式の方が汎用性があって良いと思いますよ。

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    なお安全のために、値の文字列が http で始まっているという条件を付けた場合は以下のようになります。

     #cond( #文字位置( [address], "http" ) = 1, #対応文字列( #文字置換( [address], "/", "," ), 1 ) + "//" + #対応文字列( #文字置換( [address], "/", "," ), 3 ) + "/", 1, "url not found" )

      または

     #cond( #文字位置( [address], "http" ) = 1, #対応文字列( #文字置換( [address], "/", "," ), 1 ) + "//" + #対応文字列( #文字置換( [address], "/", "," ), 3 ) + "/", 1, [address] )

    #cond の最初の条件をさらに厳密にするには

     #文字位置( [address], "http" ) = 1

    を以下↓の

     #文字位置( [address], "https://" ) = 1 .or #文字位置( [address], "http://" ) = 1

    とすればよいですが、式が長くなるのでここまで厳密にしなくてもよいだろうと思います。



引用返信 [メール受信/OFF] 削除キー/
■13301 / inTopicNo.8)  Re[1]: 計算式を教えてください
□投稿者/ eo -(2022/06/05(Sun) 00:44:47)
    解決済かな?
    これでも行けます。尾形さんのパクリになるかと思いますが...

    桐9s

    #対応文字列2([url],"/",1)+"//"+#対応文字列2([url],"/",3)+"/"

url_domain.zip
/5KB
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -