KPROPCASE( 対象変数名, ' 変換パターン指定 ' )
変換パターン | 指定方法 |
---|---|
① 全角カタカナ ⇒ 半角カタカナ | 'full-katakana, half-katakana' |
② カタカナ ⇒ ローマ字 | 'katakana, romaji' |
③ 全角アルファベット ⇒ 半角アルファベット (英数記号も対象。 ただし全角中点「・」は半角にならなかった。 ①の指定方法では半角になった) | 'full-alphabet, half-alphabet' |
④ 小文字 ⇒ 大文字 | 'lowercase, uppercase' |
変換パターンは、以下のように逆指定も可。
例:
kpropcase( 対象変数名, 'lowercase, uppercase' )
kpropcase( 対象変数名, 'uppercase, lowercase' )
data DT1; length VAR1 A B C D $30.; VAR1 = "あカキ(1abC"; A = kpropcase( VAR1, 'full-alphabet, half-alphabet' ) ; B = kpropcase( VAR1, 'lowercase, uppercase' ) ; C = kpropcase( VAR1, 'half-katakana, full-katakana' ) ; D = kpropcase( VAR1, 'katakana, romaji' ) ; run; 結果 | |
VAR1 | あカキ(1abC |
A | あカキ(1abC |
B | あカキ(1ABC |
C | あカキ(1abC |
D | あKAKI(1abC |
①ふたつめの引数は 「'lowercase', 'uppercase'」ではなく「'lowercase, uppercase'」です。
間違えやすいので注意が必要です。
②半角を全角に変換したい場合、
たとえば以下のプログラムを実行すると、VAR1の値は全角”A”となる。
data DT3; length VAR1 $2.; VAR1 = "AB"; VAR1 = kpropcase( VAR1, 'half-alphabet, full-alphabet' ); run; |
これは全角変換したことによって、LENGTHが4バイト必要なのに、2バイトしかないため、文字切れを起こしているから。そのため、変換前にLENGTHを2倍に指定し直す必要がある。
(※上記はWindowsのsjis環境での話で、他の環境ならもっとLENGTHが必要)
(※上記はWindowsのsjis環境での話で、他の環境ならもっとLENGTHが必要)
0 件のコメント:
コメントを投稿