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

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

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

You are not logged in.

Announcement

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


#1 2013-11-19 08:48:22

スヌーピー
Guest

1行あたりの文字数を制限したい

お世話になります。
例えば以下の文章がテキストフィールドにあります。

おはようございます。(改行)
今日も1日がんばりましょう。(改行)
---以上---

改行から改行までの文字数を数えることはできないでしょうか?
1行あたりの文字数を制限したいです。
例えば11文字以上になったら、別の計算フィールドに「文字数オーバー」などと表示できるようにしたいです。
上記の場合でしたら、
1行目10文字
2行目14文字
11文字を超えている行があるので「文字数オーバー」と別フィールドに表示。
このようなイメージです。

よろしくお願いします。

#2 2013-11-19 09:04:43

himaganee
Guest

Re: 1行あたりの文字数を制限したい

Case ( Evaluate("Max(Length(" & Substitute ( Quote ( テキスト ) ; ¶ ; "\");Length(\"" ) & "))" ) > 10 ; "文字数オーバー" )

#3 2013-11-19 09:10:02

Shin
Member

Re: 1行あたりの文字数を制限したい

計算式繰り返しフィールドを用意して、

Let (
 t = GetValue ( Text[1] ; Get ( 計算式繰り返し位置番号 ) ) ;
 Length ( t )
)

という式を設定しておきます。
更に、その Max() を取れば最大の文字数がカウントできます。
1フィールドですませるには、再帰式で同様のことをすればいいでしょう。

Offline

#4 2013-11-19 10:31:04

スヌーピー
Guest

Re: 1行あたりの文字数を制限したい

迅速な回答ありがとうございます。
教えていただいたものでできました。
過去ログも調べて以下でも1行あたりの最大文字数を取得することができました。

Let([
$リスト=テキスト;
$行数=ValueCount($リスト);
$答=0;
$関数="Case(
$行数=0; $答;
Let([
$答=Max(Length(GetValue($リスト;$行数));$答);
$行数=$行数-1
];
Evaluate($関数))
)"
];
Evaluate($関数))

ちなみに1行あたりの最小文字数を調べたいときはどうしたらよいのでしょうか?
よろしくお願いします。

#5 2013-11-19 11:09:00

himaganee
Guest

Re: 1行あたりの文字数を制限したい

MaxをMinにします。

「過去ログ」のでは最初の$答え=0も999999とか適当に大きい数にしておく

#6 2013-11-19 11:33:46

スヌーピー
Guest

Re: 1行あたりの文字数を制限したい

ありがとうございます。
最小も取得できました!
ただ文末に改行がある場合、例えば

こんにちは(改行)
(改行)

の場合「0」と取得したいのですが
「5」となってしまいます。
改善策はないでしょうか?

#7 2013-11-19 12:29:21

himaganee
Guest

Re: 1行あたりの文字数を制限したい

文末でも途中でも、改行が2個続いてたらそこには長さ0の文字列があることになるので、0で正しいと思いますけど

#8 2013-11-19 12:38:44

himaganee
Guest

Re: 1行あたりの文字数を制限したい

私の式で改行をエスケープし忘れてた。
長さ0の行は無視する最小の計算。
Evaluate(
"Min(Let(L=Length(" & Substitute ( Quote ( テキスト ) ; "\¶" ; "\");Case(L;L));Let(L=Length(\"" ) & ");Case(L;L)))"
)

#9 2015-10-22 12:18:41

yamac
Guest

Re: 1行あたりの文字数を制限したい

はじめまして 宜しくお願いします。
テキストフィールドに入力した文字を、計算フィールドに反映させ、一行が72バイトになるように自動的に改行させる計算式はありますでしょうか?

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 513.71 KiB (Peak: 518.25 KiB) ]