質問
必要な機能を取る文字パラメータとして、場合にtrueを返します。
解決
Seanyboyの IsCharAlphaA
答え があります。最良の方法は、Wバージョンはこのように:
Private Declare Function IsCharAlphaW Lib "user32" (ByVal cChar As Integer) As Long
Public Property Get IsLetter(character As String) As Boolean
IsLetter = IsCharAlphaW(AscW(character))
End Property
もちろん、この全な事項についてすべてのVB6の制御ANSIみ
他のヒント
このコードから投稿 rpetrich 応 質問 による ジョエルSpolsky.感じで必要なポストに固有の問題を解決で.であることが発表されます。
Private Function IsLetter(ByVal character As String) As Boolean
IsLetter = UCase$(character) <> LCase$(character)
End Function
おいて、考えることが自分自身は、いか?" 文書のUCaseとLCase機能を確認することです:
UCase機能 のみを小文字に変換される大文字; すべて大文字とnonletter文字に変.
LCase機能 のみ大文字は小文字に変換され; すべての小文字とnonletter文字に変.
Private Function IsLetter(Char As String) As Boolean
IsLetter = UCase(Char) Like "[ABCDEFGHIJKLMNOPQRSTUVWXYZ]"
End Function
何が悪いのない信頼を曖昧に言語行?
Private Function IsLetter(ByVal ch As String) As Boolean
IsLetter = (ch >= "A" and ch <= "Z") or (ch >= "a" and ch <= "z")
End Function
と思いを改善することができますこの少します。 rpetrich'sコードすが、恐らくみを展開しております。のAPI呼び出しのパラメータはTCHAR(WCHARここで実際にやりません。このものとすることによfiddlingへの交換もしくはマスキング&HFFFF.この方法は、整数値を追加し暗黙的に変換を同じことが言えます。その意味&HFFFF&かるでしょうか?
その上でされるのがベストかもしれにexplictlyのUnicoWSラッパーのためにこのAPI呼び出し、Win9Xに対応しています。のUnicoWS.dll する必要があるで展開されないが、少なくとも得られるオプションです。しっかVB6こautomagicallyにリダイレクトいWin9X設置されるとしていたことが分かりました。
Option Explicit
Private Declare Function IsCharAlphaW Lib "unicows" (ByVal WChar As Integer) As Long
Private Function IsLetter(Character As String) As Boolean
IsLetter = IsCharAlphaW(AscW(Character))
End Function
Private Sub Main()
MsgBox IsLetter("^")
MsgBox IsLetter("A")
MsgBox IsLetter(ChrW$(&H34F))
MsgBox IsLetter(ChrW$(&HFEF0))
MsgBox IsLetter(ChrW$(&HFEFC))
End Sub
宿の周りに少した以下---
Private Declare Function IsCharAlphaA Lib "user32" Alias "IsCharAlphaA" (ByVal cChar As Byte) As Long
と思いIsCharAlphaA試験ANSI文字セットとIsCharAlpha試験ASCII。私が誤っている可能性があります。
Private Function IsAlpha(ByVal vChar As String) As Boolean
Const letters$ = "abcdefghijklmnopqrstuvwxyz"
If InStr(1, letters, LCase$(vChar)) > 0 Then IsAlpha = True
End Function
その結果が、先ほど任天堂さんにVBA
Function IsLettersOnly(Value As String) As Boolean
IsLettersOnly = Len(Value) > 0 And Not UCase(Value) Like "*[!A-Z]*"
End Function
いう文書そのものです。でが遅くなることがあります。この巧みなハッキングなことになるすべてです。うに誘惑されることがより明らかと私のチェックしている。うちに使われている正規表現の書き明になります。
public bool IsAlpha(String strToCheck)
{
Regex objAlphaPattern=new Regex("[^a-zA-Z]");
return !objAlphaPattern.IsMatch(strToCheck);
}
public bool IsCharAlpha(char chToCheck)
{
return ((chToCheck=>'a') and (chToCheck<='z')) or ((chToCheck=>'A') and (chToCheck<='Z'))
}