みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になっております。
ファイルメーカー19を使っております。
お客様からもらった宛名データで宛名を1000件ほど印刷するのですが、氏名フィールドが姓と名の間に空白が入っており、
山田■太郎(■は空白の意味)となっています。
縦書きの宛名印刷の為、これを山■田■太■郎にしたいのですが、ファイルメーカーでこのようなことは可能でしょうか。
※お客様の要望で姓と名の間だけスペースが入るのは嫌だと言われているのです・・・。
ご教授いただければと思います。
よろしくお願いいたします。
Offline
文字間にスペースを順に入れて行く再起式
Let ( [ $n = TrimAll ( 氏名 ; 1 ; 3 ) ;
$l = Length ( $n ) + 1 ;
$res = " Case ( $l = 2 ; $n ;
Let ( [ $l = $l - 1 ;
$n = Replace ( $n ; $l ; 0 ; \" \" ) ] ;
Evaluate ( $res ) ) ) " ] ;
Evaluate ( $res ) )
Offline
While関数使いましょうよ。。。(といいつつ自分もまだほとんど使ったことないので書けなかった。)
While (
[
txt = TrimAll ( 氏名 ; 1 ; 3 ) ;
n = Length ( txt )
] ;
n > 1 ;
[
txt = Replace ( txt ; n ; 0 ; " " ) ;
n = n - 1
] ;
txt
)
後ろから処理しているのが味噌です
Offline
みなさん、ありがとうございます。
TrimAllと Length を使うのはわかっていたのですが、組み合わせが難しくて混乱していました。
While関数を使ったことがないのですが、早速イチから勉強します!
本当にありがとうございました。
Offline
私も現在同じことで悩んでおり、こちらの投稿を拝見しました。
確かに山田■太郎の場合、教えていただいた計算式で山■田■太■郎となりますが
他に加藤■翔、吉田■一太郎、佐々木■太郎という名簿があった場合は
加藤■■翔、吉■田■一太郎、佐々木■太■郎にしたいのですが、
これは、計算式ではできないということでしょうか?
ルールを決めればどういうのでもできますけど、どういうルールですか?
姓名の間のスペースで区切ればいいのでしょうか。
それぞれのフィールドに分けて、上と同じ計算式を、1文字だけなら例外処理を行なって、適応すればいいです。
ただ、加藤■■翔 は、加■藤■■翔でしょうか。
繰り返しフィールドを利用するとして、 氏名を、
GetVaue ( Substitute ( 氏名 ; "■" ; ¶ ) ; Get ( 計算式繰り返し位置番号 ) )
で置き換えればいいです。それに、1文字だけの処理を追加します。
Offline
字取りというのを思い出しました。
http://www.yut.co.jp/ht_jidori.htm
加藤■■翔 は5字取りのAパターンですね。
文字数に応じて5字と7字を切り替える?
結局場合ごとに分けてスペースを入れる必要があるんで、元の質問とは全然違う処理になります。
元の質問も例が少なすぎただけで本当は7字取りにしたいという意味だったかもしれないが...
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 518.09 KiB (Peak: 523 KiB) ]