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

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

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

You are not logged in.

Announcement

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


#1 2014-03-18 18:08:20

モルト
Guest

テキストの一部書き換え方法

お世話になっております。また壁に突きあたりました。お知恵をお貸しください。

環境はWin、Ver13です。


氏名フィールドがあります。

山田 太郎

鈴木 花子

のように、姓と名と間には、全角のスペースを入れています。

これを、

山● 太●

鈴● 花●

のように、姓の2番目を●に置換し、全角スペースはそのままに、名の2番目も●に置換したいのですが、その方法がわかりません。

ご教示いただければ幸いです。

#2 2014-03-18 18:23:46

チポ
Member

Re: テキストの一部書き換え方法

姓の2番目を●に置換し、全角スペースはそのままに、名の2番目も●に置換したい

2番目ですか?
一文字だったらどうします?

姓名の最後だったら
  ● ●
こんなこともあり得るし、、

Offline

#3 2014-03-18 19:10:55

モルト
Guest

Re: テキストの一部書き換え方法

チポ wrote:

姓の2番目を●に置換し、全角スペースはそのままに、名の2番目も●に置換したい

2番目ですか?
一文字だったらどうします?

姓名の最後だったら
  ● ●
こんなこともあり得るし、、


チポ様

お世話になっております。

おっしゃる通り一文字もあります。

森 進一さんのように姓が一文字の場合、

森● 進●

さらに

森田 進さんのように名が一文字の場合も同様に、

森● 進●

としたいと思います。

引き続きご教示いただければ幸いです。

#4 2014-03-18 19:39:59

Hiro
Member

Re: テキストの一部書き換え方法

さらに、3文字以上の場合、
森  進一郎 → 森●  進●郎
と想定した時の式例、

  Let([
    #姓=GetValue(Substitute(氏名フィールド;" ";¶);1);
      #姓=Replace(#姓;2;1;"●");
    #名=GetValue(Substitute(氏名フィールド;" ";¶);2);
      #名=Replace(#名;2;1;"●")
  ];
    Substitute(List(#姓;#名);¶;" ")
  )

Offline

#5 2014-03-18 22:01:20

モルト
Guest

Re: テキストの一部書き換え方法

Hiro wrote:

さらに、3文字以上の場合、
森  進一郎 → 森●  進●郎
と想定した時の式例、

  Let([
    #姓=GetValue(Substitute(氏名フィールド;" ";¶);1);
      #姓=Replace(#姓;2;1;"●");
    #名=GetValue(Substitute(氏名フィールド;" ";¶);2);
      #名=Replace(#名;2;1;"●")
  ];
    Substitute(List(#姓;#名);¶;" ")
  )


Hiro様


ありがとうございます。

ご教示の式例を試してみました。

福島 賢一朗 → 福● 賢一朗●   (理想は 福● 賢●朗)

溝島 明 → 溝● 明●   (まさに理想どおり!)

河田 哲也 → 河● 哲也 ●   (理想は 河● 哲●)

井上 三智子 → 井● 三智子  ●   (理想は 井● 三●子)

このようになってしまいます。

式内を改造し、いろいろとトライしますが思うようにいきませんでした。

どうすれば理想どおりになるのでしょうか?

ご面倒をおかけして申し訳ありませんが、再度、ご教示いただければ幸いです。

#6 2014-03-19 02:30:05

Hiro
Member

Re: テキストの一部書き換え方法

問題の原因は、このサイトが、式中の「"全角スペース"」を「"半角スペース"」に勝手に書き換えてる事に由りますネ。
コピーした式の "半角スペース" の箇所を "全角スペース" へ書き戻してから再度検証してみて下さい。

  Let([
    #姓=GetValue(Substitute(氏名フィールド;"全角スペース";¶);1);
      #姓=Replace(#姓;2;1;"●");
    #名=GetValue(Substitute(氏名フィールド;"全角スペース";¶);2);
      #名=Replace(#名;2;1;"●")
  ];
    Substitute(List(#姓;#名);¶;" ")
  )

Offline

#7 2014-03-19 08:30:20

keima
Member

Re: テキストの一部書き換え方法

スペース位置からふたつめの文字と最初から2文字目を●にするでよければ、
Let([ZS=Position(氏名;Char(12288);1;1);
TMP=Replace(氏名;ZS+2;1;"●")];
Replace(TMP;2;Case(ZS≠2;1);"●")
)

Offline

#8 2014-03-19 22:18:43

モルト
Guest

Re: テキストの一部書き換え方法

Hiro様


ご教示ありがとうございます。

おっしゃるように全角スペースで思ったとおりの動きをしました。

感謝感激です!

お世話になりまして、ありがとうございました。


Keima様


ありがとうございます。

Hiro様の式とまったく同じ結果を示しました。

たいへん勉強になりました。

ありがとうございました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 559.84 KiB (Peak: 579.41 KiB) ]