過去の桐井戸端BBS (桐ver.8)
9299 英文字だけを半角、大文字にしたい ぽん 2001/01/12-12:50
ある1項目に20文字程度のフリーアンサーが入力されていて、文字の形・半角・全角がバラバラです。

そのなかで、英字だけを全て半角、大文字にしたいのですが

例えば  A a a を A
に変えるような感じなのですが、

やはり、一字ずつ変換していくしかないでしょうか?

お願いいたします。
9300 Re:文字置換 みすず 2001/01/12-13:52
記事番号9299へのコメント
#UC
#半角

あたりで出来そうですね。
9301 Re:文字置換 ぽん 2001/01/12-14:48
記事番号9300へのコメント
ありがとうございます。

>#UC
>#半角
>
>あたりで出来そうですね。

#半角を使うと、数字も半角になってしまいますよね
数字の部分は、何も変化させないで行いたいのですが?

いかがですかね?
9302 Re:文字置換 幅田 2001/01/12-15:49
記事番号9301へのコメント
No.9273の質問にあるように、#漢数字の反対ができれば、いったん数字を漢数字にしておいて、英字を文字置換し
そのあとで、もう一度漢数字をもとの数字になおしておくという方法がとれると思いますが。
(漢数字に置換しておくと、半角に変換されない)
やはり#漢数字の反対の関数は欲しいですね。


そこで、簡単な一括処理を考えてみました。
[あ]の項目に入っている文字列を変換して[い]の項目に入れるというような一括処理です。

先頭のレコードから順番に、[あ]のデータの最初の文字から
1文字ずつ英字であるかどうかを判断しながら変換していって
最後に[い]へ入れています。
−−−−−−−−−−−−−−−−−−−−−−−
変数宣言 数値{&位置}
変数宣言 文字列{&い}

ジャンプ 行番号=先頭

繰り返し (.NOT #終端行)
 &い=""
  繰り返し &位置=1,#文字数([あ])
    if (#IS英字(#部分列([あ],&位置,1),1)=1)
     &い=&い+#UC(#半角(#部分列([あ],&位置,1)))
    else
     &い=&い+#部分列([あ],&位置,1)
    end
  繰り返し終了
 行訂正 [い]=&い
 ジャンプ 行番号=次行
繰り返し終了

戻る