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

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

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

You are not logged in.

Announcement

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


#1 2023-03-29 19:32:16

かなかな
Member

ひらがな英数を一度に半角にし、文字も途中切りしたい

katakana(テキスト)と kanahankaku(テキスト) とromanhankaku(テキスト)の関数を一度に使う時に、記述が下手で上手くいきません。
やりたいことは、以下のようなテキストをなるべく半角にして、さらに左から30文字だけで完成させたいと思ってます。
元のデーター:貴方のメアドをAB12@cd.comのように、書いて下さい。
上記は全部全角とします。
変換希望の形は、まず出来る限り半角なので「貴方ノメアドハAB12@cd.comノヨウニ、書イテ下サイ。」これではまだ35文字なので
左から30文字以上は強制的に切り落とし
最終的には「貴方ノメアドハAB12@cd.comノヨウニ、書イテ」としたいのです。

実際の使い方は、多量なデーターのcsvファイル(漢字ひらがなカタカナ英数その記号)をあるテーブルに移入する作業です。
インポートの段階で、フィールド内に計算式を入れて計算結果として取り込みたいのです。(変換エラーは無視します)
インポート側の文字最大値とこちらの受け入れる(2次加工で使用する)文字最大値が違うため、出来るだけ長い文字数で完成したいのです。
よろしくお願いいたします

Offline

#2 2023-03-29 19:38:55

himadanee
Guest

Re: ひらがな英数を一度に半角にし、文字も途中切りしたい

順番に入れ子にすればいいのでは。
romanhankaku(kanahankaku(katakana(テキスト)))

#3 2023-03-29 22:10:03

Shin
Member

Re: ひらがな英数を一度に半角にし、文字も途中切りしたい

30文字とは、shiftJISでの30バイトの意味のようですね。上の結果をさらに、
TextDecode ( HexDecode ( Left ( HexEncode ( TextEncode ( テキスト ; “shift_jis” ; 1 ) ) ; 60 ) ; bin.bin ) ; “shifr_jis” )
という式を通すといいのでしょう。ただし、30バイト目に全角文字が入ると2バイト文字が途中で切られる事になりエラーになります。エラーになれば29バイトにするとかの処理が別途必要でしょう。

Last edited by Shin (2023-03-30 12:08:16)

Offline

#4 2023-03-30 11:22:00

チポ
Member

Re: ひらがな英数を一度に半角にし、文字も途中切りしたい

再起式

Let ( [ $c = 30 ;
          $t = RomanHankaku(KanaHankaku(Katakana( テキスト ) ) ) ;
          $t = Left ( $t ; $c ) ;
          $L = Length ( $t & Filter ( $t ; RomanZenkaku ( KanaZenkaku ( $t ) ) ) ) ;
          $式 = "Case ( $L < 31 ; $t ; Let ( [ $c = $c - 1 ;
                                                            $t = Left ( $t ; $c ) ;
                                                            $L = Length ( $t & Filter ( $t ; RomanZenkaku ( KanaZenkaku ( $t ) ) ) ) ] ;
                                                            Evaluate ( $式 ) ) )" ];
          Evaluate ( $式 ) )
冗長ですが。。

31バイト目に濁点、半濁点がくるとその前で切れてしまいます。

Last edited by チポ (2023-03-30 11:27:05)

Offline

#5 2023-03-30 11:35:00

チポ
Member

Re: ひらがな英数を一度に半角にし、文字も途中切りしたい

今気が付きました。。

句読点「、。」を直接半角にできる関数はありませんね。
Subsutitute で「,.」に変えるしかないでしょう。

Offline

#6 2023-03-30 11:42:30

チポ
Member

Re: ひらがな英数を一度に半角にし、文字も途中切りしたい

さらに、、
「」~
も変えてくれない。

他にもあるのか??

Offline

#7 2023-03-30 18:35:53

かなかな
Member

Re: ひらがな英数を一度に半角にし、文字も途中切りしたい

いろいろとご教示いただきありがとうがございました。
、。「」~などはないので、私の処理できる範囲のものは、解決致しました。
個人的には、関数の勉強不足のため、とても役立ちました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 10 queries executed - Memory usage: 557.46 KiB (Peak: 564.47 KiB) ]