みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
いつもお世話になっております。
[内容]というテキストフィールドに
「
株式会社○○○
住所 東京都新宿区
電話番号 123-456
」
というデータがあり、
これをスクリプトで、「フィールド設定[本文;内容]」を実行したさいに、
[本文]フィールドでは(■はスペースの意味です)
「
■■株式会社○○○
■■住所 東京都新宿区
■■電話番号 123-456
」
と各行先頭にスペースが2つ入るようにしたいです。
また、
「
■■株式会社○○○■■■
■■住所 東京都新宿区
」
のように行の最後にスペースがある場合は
「
■■株式会社○○○
■■住所 東京都新宿区
」と取り除きたいです。
テキストフィールド内で、
・行の先頭にスペースを2つ挿入したい
・行末にスペースがある場合は取り除きたい
こういったことは可能でしょうか。
宜しくお願い致します。
Last edited by めい吉 (2020-06-18 18:17:00)
Offline
私ならこうします、って言うのを投稿させて頂きます。
自分の勉強の意味も込めてなので、上手く行かなかったら、ゴメンなさい。。。
フィールド設定の計算結果に、
" " & Trim ( GetValue ( 内容 ; 1 ) ) & ¶ &
" " & Trim ( GetValue ( 内容 ; 2 ) ) & ¶ &
" " & Trim ( GetValue ( 内容 ; 3 ) )
上記でどうでしょう?
任意行数の入力内容に対応できる汎用式例(ループ式):
Let(
[
$LOOP=
"Case(
$i=ValueCount($txt)
; $res
; Let([$i=$i+1;#itm=Trim(GetValue($txt;$i));$res=List($res;Char(1228812288)&#itm)]; Evaluate($LOOP))
)"
];
Let([$txt=内容フィールド;$i=0;$res=Char(0)]; Evaluate($LOOP))
)
Offline
印字上の都合なら、フィールドの左マージンで調節できますが...
Hiro様
ありがとうございます。うまくできることができました!!
なぜこれでループ処理ができるのでしょうか。
任意行数の入力内容に対応できる汎用式例(ループ式):
Let(
[
$LOOP=
"Case(
$i=ValueCount($txt)
; $res
; Let([$i=$i+1;#itm=Trim(GetValue($txt;$i));$res=List($res;Char(1228812288)&#itm)]; Evaluate($LOOP))
)"
];
Let([$txt=内容フィールド;$i=0;$res=Char(0)]; Evaluate($LOOP))
)
Offline
Evaluate($LOOP)の計算をすると、その式中にEvaluate($LOOP)があるからです。ループというか、再帰呼び出しです。
Case()でEvaluate($LOOP)が呼ばれない方が選択されるまで繰り返し(ループ)、という感じ。
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 513.34 KiB (Peak: 517.88 KiB) ]