質問

必要な機能を取る文字パラメータとして、場合に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'))
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top