(現在 過去ログ74 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■11217 / inTopicNo.1)  半角カナを使わせない
  
□投稿者/ 悲しげ -(2018/06/23(Sat) 15:18:17)
    2018/06/24(Sun) 09:59:39 編集(投稿者)
    2018/06/24(Sun) 09:44:42 編集(投稿者)

    医薬品名として例えば「ハルシオン0.25mg錠」があったとする。(1)
    これを半角で「ハルシオン0.25mg錠」としてはエラーになってしまう。
    しばしば半角カナで入力してくれる人がいる。(2)
    「ハルシオン0.25mg錠」はOK。(3)

    できれば(3)の形にしたい。つまり、半角カナのみを全角にし、英数字は半角のまま。
    これってかなり面倒ですね。
    過去ログでもたまに話題になってるし、自分も殆ど忘れていたが2005年に力技で作った
    ものをDLコーナー112で上げていたりしている。
    余談ながら何故その年を覚えているかというと、それを上げた直後に、私は1ヶ月ほど
    入院していて、ネット断絶状態になっておりまして。
    退院後しばらくしてから覗いてみたらバグの報告を戴いていて、対応する気力体力もなく
    放置してしまったから。なぜなら当時は田舎の店を畳むことにしてたから。

    閑話休題。

    ともかくこんな力技を使う気にもならないので、この点は次のように対応しようと考えています。
    カナ・英数字に関わらず、テキスト叙述部は強制的に全角に変換してしまう。

    if(#IS半角([当該項目],0)>0)
     行訂正 終了状態=&終了,[当該項目]=#全角([当該項目])
    end

    あるいは入力途中で対処するなら「入力後」イベントで

    手続き定義開始 某テキスト::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
     if(#IS半角(&編集文字列,0)>0)
      *確認 "半角文字は使うな" 的にメッセージを出してもいいけど、手抜きで問答無用に
      &編集文字列=#全角(&編集文字列)
      &入力継続=0
     end
    手続き定義終了

    で走ってみるとか(未検証)
    と考えてみたのですが、もっとうまい方法ありませんか?

    ps.
    一部字句訂正
     ×&編集文字数=#全角(&編集文字列)
     ○&編集文字列=#全角(&編集文字列)

    入力後イベントで実働させてみたらエラーが出て気づきました。(^^;)
引用返信 [メール受信/OFF] 削除キー/
■11220 / inTopicNo.2)  Re[1]: 半角カナを使わせない
□投稿者/ ONnoji -(2018/06/23(Sat) 16:08:03)
    2018/06/23(Sat) 16:12:14 編集(投稿者)

    > あるいは入力途中で対処するなら「入力後」イベントで
    >
    > 手続き定義開始 某テキスト::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
    >  if(#IS半角(&編集文字列,0)>0)
    >   *確認 "半角文字は使うな" 的にメッセージを出してもいいけど、手抜きで問答無用に
    >   &編集文字数=#全角(&編集文字列)
    >   &入力継続=0
    >  end
    > 手続き定義終了

    半角のカナには濁点と半濁点が付着することがあるので、

    [半角カナ→全角カナ]変換は濁点と半濁点の処理をしなければならず非常に面倒ですよ。

    [入力後]イベントで半角カナを検出したら、「やり直し!」とメッセージボックスを表示するのが一番苦痛が少なくて済みますよ。

    それ以外に、メッセージボックスを出さなくても、

    当該テキストボックスの文字色を赤色等にして、オペレータに警告するという方法もありますね。

    これは単純ですが、結構効き目ありますよ。


引用返信 [メール受信/OFF] 削除キー/
■11222 / inTopicNo.3)  Re[2]: 半角カナを使わせない
□投稿者/ 悲しげ -(2018/06/24(Sun) 09:54:49)
    No11220に返信(ONnojiさんの記事)
    >半角のカナには濁点と半濁点が付着することがあるので、
    >[半角カナ→全角カナ]変換は濁点と半濁点の処理をしなければならず非常に面倒ですよ。

    う〜ん、改めて試してみましたが
     #全角("ガザダバパ") → ガザダバパ
    のように、濁点・半濁点は分離せず、普通に処理されましたよ。

    >[入力後]イベントで半角カナを検出したら、

    「#IS半角」関数はあるけど「#IS半角カナ」関数はないようなので、この検出には
    力技が必要と思われ、[入力後]イベント内で済ませるには、すべて「#全角」で
    逃げようと思ったのがNo11217でした。

    ps.
    まるいち、まるに問題(No11218)は継続検討中・・・

引用返信 [メール受信/OFF] 削除キー/
■11223 / inTopicNo.4)  Re[3]: 半角カナを使わせない
□投稿者/ ONnoji -(2018/06/24(Sun) 10:04:05)
    2018/06/24(Sun) 10:10:51 編集(投稿者)

    > >[半角カナ→全角カナ]変換は濁点と半濁点の処理をしなければならず非常に面倒ですよ
    > う〜ん、改めて試してみましたが
    >  #全角("ガザダバパ") → ガザダバパ
    > のように、濁点・半濁点は分離せず、普通に処理されましたよ。

    私が申し上げたことは、

    ガザダバパ の半角10文字からなる文字列を、左側から順番に1文字ずつ拾ったときの話ですよ。

    <追伸>

    2年ほど前のことですが、こんなのありましたよ。ご参考までに。
     ↓
    過去ログ63
    ■9669 / inTopicNo.1)  全角、半角の変換
    □投稿者/ ひで -(2016/02/16(Tue) 13:27:03)
    http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=9669&rev=&no=0&KLOG=63


引用返信 [メール受信/OFF] 削除キー/
■11228 / inTopicNo.5)  Re[4]: 半角カナを使わせない
□投稿者/ 悲しげ -(2018/06/24(Sun) 20:35:40)
    No11223に返信(ONnojiさんの記事)
    >私が申し上げたことは、
    >ガザダバパ の半角10文字からなる文字列を、左側から順番に1文字ずつ拾ったときの話ですよ。
    >
    ><追伸>
    >2年ほど前のことですが、こんなのありましたよ。ご参考までに。
    > ↓
    >過去ログ63
    >■9669 / inTopicNo.1)  全角、半角の変換
    >□投稿者/ ひで -(2016/02/16(Tue) 13:27:03)
    >http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=9669&rev=&no=0&KLOG=63

    あ、そういうことなんですね。
    私がこの板に復帰したのは丁度この頃みたいなんですが、このツリーは記憶が全くなくてすいません。

    さて、上記リンクのNo9682でONnojiさん曰く

    >しかし、わざわざ半角カタカナを全角に変換するというアプローチ自体に違和感を感じる。
    >だって#全角で簡単に全角に変換できるのだからねぇ〜。※#半角で逆変換も一発だっ。
    >一方、数字と英字の場合には、半角カタカナのように直後の文字を調べる必要がないので、
    >数字と英字を半角に変換するアプローチの方が自然な感じがします。
    >従って、半角カナをターゲットに全角変換しないで、一度すべての文字を全角に変換してから、
    >必要ならば英字と数字を半角に変換すればOKだろうと思うのでありました。

    これに同意します。
    したがって結論的にはNo11222で書いたように、カナだろうが英数字だろうが、
    半角文字は十把一絡げにすべて#全角に変換で対応しようと思います。
    データの横幅が微増する以外に実態的な不都合も無いと想定されるので。

    ps.
    私がおそらく2005年に挙げた「file_112.LZH」では「濁点・半濁点の分離」問題は
    曲がりなりにも考慮済のようです。
    バグ内包みたいだが未検証なまま(^^;)、参考までに添付しておきます。
    まだ若い頃(?)に作った力技です。桐v8で作ったcmdだからテキストにしてあります。


file_112_LZH_CMD.txt
/2KB
引用返信 [メール受信/OFF] 削除キー/
■11230 / inTopicNo.6)  Re[5]: 半角カナを使わせない
□投稿者/ 悲しげ -(2018/06/24(Sun) 20:43:52)
    No11228に返信(悲しげさんの記事)
    ひとまず「解決済み!」マークを付けておきます。
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■11239 / inTopicNo.7)  Re[5]: 半角カナを使わせない
□投稿者/ 悲しげ -(2018/06/25(Mon) 09:24:16)
    2018/06/25(Mon) 09:25:10 編集(投稿者)

    「解決済み!」後にひらめいて試してみました。
    表定義の項目制約で「半角」のチェックを外せばいいんじゃないかと。

    で、早速試してみたら・・・・

    「KD1527:値が字種制約に違反しています」

    とのエラーメッセージ。
    これだときっとワケワカメになってしまう人が居る可能性大なので、結論的には不採用。
    シコシコ「入力後」イベントで強制全角置換で。
引用返信 [メール受信/OFF] 削除キー/
■11244 / inTopicNo.8)  Re[6]: 半角カナを使わせない
□投稿者/ bonito -(2018/06/25(Mon) 10:18:15)
    ども...です

    > 「解決済み!」後にひらめいて試してみました。
    > 表定義の項目制約で「半角」のチェックを外せばいいんじゃないかと。
    >
    > で、早速試してみたら・・・・
    >
    > 「KD1527:値が字種制約に違反しています」
    >
    > とのエラーメッセージ。

    私ももっぱら上記の方法を採用しています
    エラーメッセージはこのタブ(制約)の下の方にエラーメッセージを
    設定する欄があるので、そこに「この項目に半角は入力出来ません」
    とか...

    でも他の条件による項目エラーでもこのメーッセージが表示される (^^;)
    でもでもこの欄に式は書けない仕様(V8では....)
    式でエラーメッセージを変えられるとGOODなんだが...
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -