過去の桐井戸端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 繰り返し終了 行訂正 [い]=&い ジャンプ 行番号=次行 繰り返し終了 |