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

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

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

You are not logged in.

Announcement

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


#1 2018-01-27 21:42:18

shojin
Member

文字列(全角半角混在)を固定バイト長で分割するための指定文字位置検出

FM16Pro Win10です。

タイトルのとおり、
Middle関数で全角半角混在のテキストデータから、取得する文字数と開始文字位置を検出する計算式で困っています。

<文字列>
あいうえおかきくけこ
あいう12341234くけこ
12345678901234567890

<フィールド1>
あいうえお
あいう1234
1234567890

<フィールド2>
かきくけこ
1234くけこ
1234567890

できればカスタム関数は使用したくなく、表現する最終的な関数はMiddle関数で行いたいです。
そのためには、Middle ( テキスト ; 先頭文字位置 ; 文字数 )の先頭文字位置と文字数を検出し、これを組み合わせて実現したいと考えています。
前はMiddleb関数を使用していましたがいまは無いため皆さんご教授願います。

Offline

#2 2018-01-27 22:51:36

Shin
Member

Re: 文字列(全角半角混在)を固定バイト長で分割するための指定文字位置検出

Length ( テキスト & Filter ( テキスト ; RomanZenkaku ( KanaZenkaku ( テキスト ) )))
でバイト数が求められるので、loop か再帰関数を作って変化させていけば良いでしょうね。

Offline

#3 2018-01-28 00:51:58

shojin
Member

Re: 文字列(全角半角混在)を固定バイト長で分割するための指定文字位置検出

Shin様ありがとうございます。

先ずは、10文字目までの中に全角が何文字あるか拾いました。
そこから、全て半角の場合は10文字、あとは10文字から全角の文字数を差し引き対応できました。

”かきくけこ”の方は、上記の文字数からMiddleの先頭文字位置を計算し、拾う文字数も上記の内容を繰り返して対応できました。

Offline

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: 549.99 KiB (Peak: 586.66 KiB) ]