過去の桐井戸端BBS (桐ver.8)
5172 「12345・・」を「壱弐参四伍・・」のように変換する関数 関口喜人 2000/03/14-22:14
こんな質問ですいません(^^;
数値データ
123456789

文字列
壱弐参四伍六七八九
に変換してくれる関数ありますか?

どんな手でも結構です
よろしくお願いします


5175 Re: tomo 2000/03/14-22:34
記事番号5172へのコメント
関数で一発というのはわかりませんが
#jis("壱")->12397->9009->#jis(9009)->"1"
のような
漢数字と算用数字のJISコード対応表を用意するのでは
数値の桁数分いちいちやることになり、面倒かな?
5176 Re: 幅田 2000/03/14-22:40
記事番号5172へのコメント
関口喜人さん、こんばんは。

すぐに思いつくのは「#漢数字」ですが、マニュアルで見てみると関口さんの
思うような形式がないような気がします。
となると
「#文字置換」を使って、(元の文字列は&STRです)

#文字置換(#文字置換(#文字置換(#文字置換(&STR,”1”,”壱”),”2”,”弐”),”3”,”参”),”4”,”四”)〜〜〜〜

という風に延々と10個の入れ子にしてひとつひとつ置換していけば?

これは書くのもめんどうなので、#漢数字と#文字置換を組み合わせて

#漢数字(#文字置換(#文字置換(#文字置換(#文字置換(&STR,”1”,”壱”),”2”,”弐”),”3”,”参”),”5”,”伍”),3)

こうすれば、いかがでしょうか?

5177 Re:漢数字変換 bonito 2000/03/14-22:45
記事番号5172へのコメント
関口喜人さん、こんにちは。
よもや実データを
>壱弐参四伍六七八九
に変えたい訳でもあるまいと勝手に解釈して...ですが、
表示する為だけなら、
フォーム(又はそのテキスト)→の編集タブ→表示編集モード→設定→変換
印刷する為には
レポートのテキストオブジェクトの印字属性タブ→文字変換

にそれぞれ漢数字変換が用意されています。
5182 #漢数字で簡単に変換できます 佐田 守弘 2000/03/15-00:40
記事番号5172へのコメント
関口喜人さん
単に、
#漢数字(<変換する数値>,<パラメータ>)
で簡単に変換できます。変換する数値は、す位置型、文字列型の両方が許される様です。
ただし、変換された値は文字列になります。

ここでパラメータの値によって、漢字表記は次の様になります。
 1 位文字(「京兆億万」)を含む。'壱弐参拾'を含まない。
 2 位文字を含む。「壱弐参拾」を含む。
 3 位文字を含まない。「壱弐参拾」を含まない。「〇」を含む。
 4 位文字を含む。「壱弐参拾」を含まない。「〇」を含む。
 5 位文字を含む。数字は ANK のまま。
 6 位文字を含む。「壱弐参伍拾阡萬」を含む。
(ヘルプファイルより)

bonitoさんが言われている通り、数値そのものを漢数字にしてしまうわけではないでしょうから、印刷用の別項目を設けるなり、印
刷時に漢数字に変換して印刷するといった用途になると思います。

佐田守弘(KS-00119)

5187 Re:#漢数字で簡単に変換できます 幅田 2000/03/15-07:02
記事番号5182へのコメント
さすが、佐田先生!
#漢数字で一発変換できるのか!
と思って試してみましたが、やはり#漢数字だけでは
どのパラメータを使っても
関口さんの言われる

123456789→壱弐参四伍六七八九

にはならないですね。
やはり#文字置換と組み合わせるしかないのかな?

ちなみにNo.5176の式では、&STRは文字列という前提で
書いてしまいましたので、

123456789が数値型であった場合
そのままでは、変換できません。
&STRが数値型であるならば、
&STRの部分を#全角(#文字列(&STR))
にする必要があります。

また計算式の#文字置換の中の数字の部分を半角にしてやれば、
#全角はいらないので、#文字列(&STR)でいいようです。


5189 法務局の登記申請 関口 2000/03/15-10:07
記事番号5172へのコメント
#漢数字か!!!
皆さんご指導ありがとうございます(^^)
現在、法務局への登記申請手続きのシステムを考えています
法務局は、全部縦書き漢数字表記なので、この関数は助かります。

この関数は、K3さんもこの法務局関係の業務を考えて開発されたのでしょうか?
アクセスにはないでしょう??こういう関数

しかし、法務局によって、表記が違うかもしれませんが

1234567890 ⇒ 壱弐参四伍六七八九〇 が標準みたいです

幅田さんのやり方でも出来るのですが

一発で変換できるよう、#漢数字のパラメータを追加してください
管理工学さん!!

5209 Re:#漢数字で簡単に変換できます 佐田 守弘 2000/03/16-00:01
記事番号5187へのコメント
質問の意味を取り違えていたようです。
#漢数字関数は、壱、弐、参、・・・の様な難しい漢数字(旧漢数字と呼ぶ事にします。)に変換できる関数ですが、
用意されている書式は、位取り文字を含む表記のみですね。
(これで良いのだと思っておりました)

どうやら題意は、位取り文字を含まない旧漢数字に変換するという事ですので、#漢数字関数だけでは変換できませんね。
さて、一番簡単な計算式は、位取りと旧漢数字を含まない漢数字に変換した後、一、二、三、五を壱、弐、参、伍に
変換するのがよさそうです。つまり、以下の様になります(試してません)。

#文字置換(#文字置換(#文字置換(#文字置換(#漢数字(<値>,3),"一","壱"),"二","弐"),"三","参"),"五","伍")

佐田守弘(KS-00119)

5217 Re:法務局の登記申請 MIT 2000/03/16-11:36
記事番号5189へのコメント
MITと申します。
私は以前,マンション登記書類作成システムを桐で作成した事があります。
数字変換では関数「#漢数字」を利用しましたが
面積や金額では123は「壱弐参」や「壱百弐拾参」なのに住所では123を「壱弐三」としたり
実際の運用は関数だけでは対応できませんでした。
なお私は登記の知識はありませんし,システム作成時は1人の司法書士さんと相談しながらでしたので,
これはこの書士さんの「やり方」だったのかもしれませんが...

そのシステムでは入力された内容に応じて法務局や顧客に提出する書類を自動作成するものですが
上記のような一様ではない漢数字の変換は結局,複雑な一括処理を組んで対応しました。
また,漢数字以外にも縦書きの為の変更や権利者や敷地件表示が異なる場合に作成された書類の体裁などで
元データによって印刷帳票も自動的に変更されるものとしました。
(つまり多くの印刷帳票を作成したと言う事です)

作る立場としては人の感性である「体裁」やあまり論理的ではない
「習慣」が仕様にあるのでとても苦しかった記憶があります。
関口さんが目指す形はわかりませんが,がんばって下さい。
以上参考にもなりませんが,関口さんの投函を見て,つい投函させて頂きました。MIT

戻る