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

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

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

You are not logged in.

Announcement

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


#1 2016-03-24 15:43:07

sora
Guest

型式と改定の表示

FM V12の初心者です。
ファイル名を入力すると計算式で型式と改定を表示させています。

型式フィールド: GetValue(Substitute(GetValue(Substitute(ファイル添付;".";¶);1);["_";¶];["改";¶]);2)
改定フィールド: GetValue(Substitute(GetValue(Substitute(ファイル添付;".";¶);1);["_";¶];["改";¶]);3)

正しい表示です
ファイル名 :A4-123_ST-45-67-C1改8.tif
型式         : ST-45-67-C1
改定          :8

ところがファイル名に「.」が入ったことにより間違った表示になってしまいました。
ファイル名には従来通り「.」が入らないのもあります。
どの様に修正すれば宜しいのでしょうか。
ファイル名 :A4-123_ST-4.5-67-C1改8.tif
型式         : ST-4 (正しくはST-4.5-67-C1)
改定        : 空白 (正しくは8)

宜しくお願い致します。

#2 2016-03-24 15:52:35

Moz
Member

Re: 型式と改定の表示

最後の「.」までを処理対象として扱えばよいのでは?

Let ( [
    ~text = ファイル名
] ;
    GetValue ( Substitute ( Left ( ~text ; Position ( ~text ; "." ; Length ( ~text ) ; -1 ) - 1 ) ; [ "_" ; "¶" ] ; [ "改" ; "¶" ] ) ; x )
) // Let

x は抜き取り位置なので、
ファイル名は 1 、形式は、 2 、改定は 3 です。
表示が見切れたのでタグ変えました。

Last edited by Moz (2016-03-24 15:54:21)

Offline

#3 2016-03-25 11:51:46

sora
Guest

Re: 型式と改定の表示

Moz wrote:

最後の「.」までを処理対象として扱えばよいのでは?

Let ( [
    ~text = ファイル名
] ;
    GetValue ( Substitute ( Left ( ~text ; Position ( ~text ; "." ; Length ( ~text ) ; -1 ) - 1 ) ; [ "_" ; "¶" ] ; [ "改" ; "¶" ] ) ; x )
) // Let

x は抜き取り位置なので、
ファイル名は 1 、形式は、 2 、改定は 3 です。
表示が見切れたのでタグ変えました。

回答頂き有難う御座います。
~text  の入力方法がわかりません。
演算子や関数にもなくヘルプでも検索できません。

#4 2016-03-25 12:11:44

Moz
Member

Re: 型式と改定の表示

コピペしても入力できませんか?FileMaker ではなくPCの操作の基本です。
キーボードの「へ」を Shift 押下で入力できると思いますが(JISキーボードの場合)

~text は Let 関数内の変数を分かりやすくするために 「~」を付けているだけですから他の文字に置き換えても動作します。

ファイル名 の部分や x などもご自身の環境に合わせて適宜変更して下さい。
ファイル名は 1 というのは余計でしたね。失礼しました。

Let 関数
http://www.filemaker.com/help/12/fmp/jp … 33.16.html
何度も同じフィールドへの参照が発生するのを省略するために ~text に値を格納しています。

Offline

#5 2016-03-25 13:56:10

Shin
Member

Re: 型式と改定の表示

GetValue ( Substitute( ファイル添付 ;[ ".";¶ ];[ "_";¶ ];[ "改";¶ ] ); X )
にして、X が2ならば型式、3ならば改定が得られます。

Mozさんの式は、ファイル名に . が無い時にも大丈夫かな。

Offline

#6 2016-03-25 14:23:46

チポ
Member

Re: 型式と改定の表示

それではまた「.」を改行しちゃってますよ。

型式は
  GetValue ( Substitute ( ファイル添付 ; [ "_" ; ¶ ] ; [ "改" ; ¶ ] ) ; 2 )

改定は
  GetValue ( Substitute ( GetValue ( Substitute ( ファイル添付 ; [ "_" ; ¶ ] ; [ "改" ; ¶ ] ) ; 3 ) ; [ "." ; ¶ ] ) ; 1 )

とすれば、拡張子の有無を問いません。

Offline

#7 2016-03-25 22:30:37

Shin
Member

Re: 型式と改定の表示

あぁ、下の例でも正しく出したい、という事でしたか。
GetValue ( Substitute( ファイル添付 ;[ ".tif";¶ ];[ "_";¶ ];[ "改";¶ ] ); X )
としておけば良いでしょうね。拡張子がほかにもあるのでしたら、それも置換してしまうと良いです。

Offline

#8 2016-03-25 23:07:09

Moz
Member

Re: 型式と改定の表示

ご指摘の通り私の計算式では「.」がないときはダメです(汗)

ファイル形式問わず使えたほうが便利な気がしますね。

Offline

#9 2016-03-29 13:05:02

sora
Guest

Re: 型式と改定の表示

皆様
大変有難う御座います。
型式の計算式で試しました。

GetValue ( Substitute ( ファイル添付 ; [ "_" ; ¶ ] ; [ "改" ; ¶ ] ) ; 2 )
は「改」が無い場合は ST-4.5-67-C1.tif とtifがつきます。

GetValue ( Substitute( ファイル添付 ;[ ".tif";¶ ];[ "_";¶ ];[ "改";¶ ] ); X )
は ST-4.5-67-C1 と表示し問題ありません。

今回対象外ですが他グループのファイルでjpgやpdfが混在しているのが見つかりました。
将来の事を考えると同じ式で対応出来れば助かるのですが。

#10 2016-03-29 13:30:30

Moz
Member

Re: 型式と改定の表示

「改」が無いものが存在するというのが初出だと思われるのですが......
ここまでは「改」という文字に基づいて拡張子が無くても大丈夫な式まで想定して皆さんが考えて下さっています。

将来のことを考えることも大切ですがルールを整理しては如何でしょう。
ルールがあやふやの場合はすべてに対応することは難しいでしょう。

これまでの流れで分かってきたこと
・型式や改定には拡張子は含めない
・型式はファイル名のうち「_」以降「改」の手前までの文字列
・改定はファイル名の「改」以降の文字列

よく分からないこと
・拡張子がないファイルが存在する?
・「改」が付かないファイルが存在する?
・「_」が付かないファイルもあるのではないか?
・「改」が付かないファイルの場合の改定の扱い→空白なのか?

Last edited by Moz (2016-03-29 13:31:02)

Offline

#11 2016-03-29 16:22:20

Shin
Member

Re: 型式と改定の表示

GetValue ( Substitute( ファイル添付 ;[ ".tif";¶ ];[ ".jpg";¶ ];[ ".pdf";¶ ];[ "_";¶ ];[ "改";¶ ] ); X )
と言う風に、拡張子を増やしていけば取りあえずは逃げる事が出来ますが。

Offline

#12 2016-03-31 10:03:28

sora
Guest

Re: 型式と改定の表示

Shin wrote:

GetValue ( Substitute( ファイル添付 ;[ ".tif";¶ ];[ ".jpg";¶ ];[ ".pdf";¶ ];[ "_";¶ ];[ "改";¶ ] ); X )
と言う風に、拡張子を増やしていけば取りあえずは逃げる事が出来ますが。

有難うございます。
今回はこちらの計算式で解決しました。
同じファイルが複数ありまして、計算式を変えても上手くいかずパターンが複数あるとこが分かりました。
今後は現状把握を事前にきちんと行います。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.013 seconds, 8 queries executed - Memory usage: 526.74 KiB (Peak: 547.65 KiB) ]