## ****************************************************************** ## zen2han(全角記号列) ## ****************************************************************** ## 全角文字で書かれた文字列の各文字を半角文字に書き換える。 ## 半角文字列を返す。なお文字の変換は変換テーブルを使っておこなうので、 ## 当然ながら変換テーブルに記載されていない全角記号は半角にならない。 ## ****************************************************************** func zen2han(zen, CON, Zens_, Hans_, Zens, Hans, ia, ib) { CON = "/dev/tty"; ## コンソール Zens_ = "0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z − / | ¥ ? ! @ # %"; Hans_ = "0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z - / | \\ \? \! @ \# %"; ia = split(Zens_, Zens, " "); ## 「AWK256」で知った配列設定 ib = split(Hans_, Hans, " "); if(ia != ib) { ## Zens_, Hans_ をまちがえて書いてたとき print "をいをい。配列の初期化がうまくいかなかったぞ." > CON; return ""; ## 空の文字列を返す } for(ib = 1; ib <= ia; ib++) { ## これで全角/半角を一括料理 gsub(Zens[ib],Hans[ib],zen); ## ... のはずだけど.. } return(zen); ## これは半角になってる }