- 締切済み
ファイルメーカープロ V6 漢数字→数字変換
たとえば、 昭和十八年三月十一日 の様に入力がされている、文字列フィールド(計算フィールド)がある場合、これから、計算で、日付フィールドにしたり、 十八 の様に入力がされている、文字列フィールド(計算フィールド)がある場合、これから、計算で、数字フィールドに変換する 簡単な方法は無いでしょうか? 力ずくで、計算を行わせるしかないでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- aqula
- ベストアンサー率60% (70/115)
再び訂正。ANo.3の式 > 計算フィールド「漢数字変換」(数字) = > (Left(A,1) + (Position(漢数字, "十", 1, 1) = 1))*10 + Right(A,1) を修正です。いろんなパターンがあって難しい・・・ 計算フィールド「漢数字変換」(数字) = (Left(A,(Length(漢数字 > 1))) + (Position(漢数字, "十", 1, 1) = 1))*10 + Right(A,1)
- aqula
- ベストアンサー率60% (70/115)
>しかし、カスタム関数はDeveloper7かAdvanced8以降が必要になります。 ここだけ訂正。 カスタム関数は通常バージョンでも使えます。 ただし、URLにある関数は Let関数の使えるバージョン以降しか使えません。
- aqula
- ベストアンサー率60% (70/115)
カスタム関数でしたら、下記URLにあります。 http://www.fmpro.jp/ しかし、カスタム関数はDeveloper7かAdvanced8以降が必要になります。 そこで、上記カスタム関数を参考に九十九までを数字に変換できるようにしてみました。 力ずくには変わりありませんが・・・ (MacOS10.3.9 + FM6v3で検証) ※フィールド「漢数字」を数字に変換 まず、一から九までを数字に変換する計算フィールドを作ります。 計算フィールド「A」(テキスト) = Substitute(Substitute(Substitute(Substitute(Substitute( Substitute(Substitute(Substitute(Substitute( 漢数字, "九", "9"), "八", "8"), "七", "7"), "六", "6") , "五", "5"), "四", "4"), "三", "3"), "二", "2"), "一", "1") 計算フィールド「漢数字変換」(数字) = (Left(A,1) + (Position(漢数字, "十", 1, 1) = 1))*10 + Right(A,1)
- chieffish
- ベストアンサー率44% (1149/2554)
年と月と日の漢数字だけ取り出して、別ファイルの漢字と数字の対照表からルックアップするとか・・ これも力業ですね?そんなプラグインとか無いのですかね?
- chieffish
- ベストアンサー率44% (1149/2554)
Substituteで一を1にしたものを次は二を2にして・・・でしょうか? 十までだとコピーで式は簡単にできそうですが、式が長すぎるかも。
補足
要は、「一」~「六十四」 まで、すべて並べ立てる という 力業ですね? それしか無さそうですね。
お礼
皆様、ありがとうございました。 結局、力技で行いました。 完成したつもりのフィールド定義で、生まれた計算フィールドを、 日付、漢数字2 で書き出し、 オリジナルと、比較すると、平成元年 などが、間違っていました。 まったく、やっかいです。 目的は終了しましたが、もう少し、スマートな方法が得られないか、 質問を閉じるのは、もう少し後にしますl。