HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0917
Ref全角・半角のアルファベットのみを大文字へ3未解決


Ref

リンク

2006/9/17(Sun) 17:33:15|NO.2489

全角・半角のアルファベットを大文字へ変換するにはどうすればよいのでしょうか。
例えば、moji = "あssDD" のときに、
変数「moji」の内容を "あSSDD" のようにしたいのです。



この記事に返信する


男性A

リンク

2006/9/17(Sun) 20:20:14|NO.2491

一文字ずつpeekで文字コードを取得して文字コードが'a'〜'z'の範囲であればpokeで'A'〜'Z'に置き換えるという方法はいかがでしょうか?



Ref

リンク

2006/9/17(Sun) 21:05:40|NO.2492

返信ありがとうございます。
その方法でやってみましたが、全角英数の場合での変換が上手くいきませんでした。



Irisawa

リンク

2006/9/17(Sun) 23:22:13|NO.2493

HSP3掲示板の方で似たような質問があるのでヒントになります。

http://www.onionsoft.net/hsp/beta/betabbs.cgi?mode=allread&no=6157&page=0

LCMAP_LOWERCASEが小文字変換でLCMAP_UPPERCASEは大文字変換です。


#module #uselib "kernel32.dll" #cfunc LCMapString "LCMapStringA" int, int, sptr, int, var, int #cfunc GetUserDefaultLCID "GetUserDefaultLCID" #const LCMAP_LOWERCASE 0x00000100 ; lower case letters #const LCMAP_UPPERCASE 0x00000200 ; upper case letters #const LCMAP_SORTKEY 0x00000400 ; WC sort key (normalize) #const LCMAP_BYTEREV 0x00000800 ; byte reversal #const LCMAP_HIRAGANA 0x00100000 ; map katakana to hiragana #const LCMAP_KATAKANA 0x00200000 ; map hiragana to katakana #const LCMAP_HALFWIDTH 0x00400000 ; map double byte to single byte #const LCMAP_FULLWIDTH 0x00800000 ; map single byte to double byte #const LCMAP_LINGUISTIC_CASING 0x01000000 ; use linguistic rules for casing #const LCMAP_SIMPLIFIED_CHINESE 0x02000000 ; map traditional chinese to simplified chinese #const LCMAP_TRADITIONAL_CHINESE 0x04000000 ; map simplified chinese to traditional chinese ; 小文字英字を大文字英字に変換 #defcfunc Upper str s1, var v1, int p1 return LCMapString(GetUserDefaultLCID(), LCMAP_UPPERCASE, s1, -1, v1, p1) ; 大文字英字を小文字英字に変換 #defcfunc Lower str s1, var v1, int p1 return LCMapString(GetUserDefaultLCID(), LCMAP_LOWERCASE, s1, -1, v1, p1) #global tmp = "あssDD" len = Upper(tmp, buf, 0) sdim buf, len ret = Upper(tmp, buf, len) mes buf len = Lower(buf, buf2, 0) sdim buf2, len ret = Lower(buf, buf2, len) mes buf2 stop



ONION software Copyright 1997-2021(c) All rights reserved.