みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM13
いつもお世話になっております。
ここ最近、文字数制限などで何度となく質問しております。
文字数のカウント、行数を数えるのは上手くいきました。
それにより警告文は出せるのですが、超えた分は削除出来るようにもと思い試行錯誤しています。
例えば、5行まで印刷できるのであれば、6行目以降は削除してしまう。
これを、フィールドに入力→フィールドから離れ確定→スクリプト実行で削除、と。
スクリプトトリガ設定OnObjectModifyで、フィールド内を置換するスクリプトを動かしますとFMが落ちてしまうので、OnObjectExitでなら出来るかと考えています。
そのさい、5行目から6行目以降へ続いている一文の削除でも、6行目以降の削除でも、どちらもで良いので方法はありますでしょうか?
6行目だけを抜き出すなら、下記でも出来るのですが、それだけをどうやって消すことが出来るのかがわからず。
MiddleValues ( フィールド名 ; 6 ; 1 )
よろしく御願いします。
Offline
フィールド設定 そのフィールド MiddleValues ( そのフィールド ; 1; 5 ) ではないの?
最後の改行が残るかも知れないけど。
Offline
おはようございます。
なるほど、末尾に注目するのではなく、前から必要な行数分を抜き出すわけですね。
ただ、1行あたりの文字数が多くなった場合はどうすれば良いでしょうか?
例えば、4文字x5行として
ああああ
い
う
え
お
、であれば良いのですが
ああああ
ああ
い
うううう
うううう
うう
え
お
、となった場合です。
MiddleValues ( そのフィールド ; 1; 5 )ですと
ああああああ
い
うううううううううう
え
お
、と認識するため見た目は8行になり超えてしまっているのですが、計算上は5行となり削除される行は無いとなります。
下記を参考に、MiddleValues ( フィールド ; 1; 4 )&5行目を判断出来ないかな?と試していますが、上記のように1行あたりの文字数が増えると対処できていません。
[5953] 文字の桁数制限の作り方
http://www.russ.jp/stepbbs/step.cgi?mode=view&no=5953
よろしく御願いします。
Offline
>MiddleValues ( フィールド名 ; 6 ; 1 )
とあったので、あくまでも改行のみで書きました。
見た目の行数については考慮していません。
Offline
見た目の改行…
一文字でも文字によって文字幅が違うし、禁則処理とかも考慮しないといけないだろうし、
フィールド枠に収まっているかの厳密な判定は出来ないと考えた方がいいです。
ブラウズモードとプレビューモードでも違う場合があるし、プリンターによっては印刷結果も
また違う場合もあるし。
旅人さん、ありがとうございます。
出来ました。
行数を数える中に、指定の行数を超えればその1つ前の文までを確保する。
今が何行目であるかは得れるので、そこまでを確保出来れば出来ました。
ただし、1文をバッサリ切ってしまうので、その対処をどうすれば良いかですね。
例えば、頭から6行目までが改行の無い1文ですと、5行目を超えているので、全消去してしまいますから。
このあたりも、試行錯誤してみます。
だんだんと、ゴールが近づけてきました。もう少し頑張ります。
ありがとうございました。
Offline
Pages: 1
[ Generated in 0.013 seconds, 10 queries executed - Memory usage: 514.29 KiB (Peak: 519.2 KiB) ]