|
■No31305 (魔界の仮面弁士 さん) に返信
> その実装だと、「スペース」がカウントされてしまう気が。
ぅわは、 引っかかったのはわたしだったか〜〜〜っ orz
てことは、 まじめに全部見るしかないっすね。
リベンジついでに、 JIS 2004 対応 f(^^;
Dim count As Integer = 0
Dim charEnum As TextElementEnumerator = StringInfo.GetTextElementEnumerator(Me.TextBox1.Text)
While (charEnum.MoveNext())
Dim te As String = charEnum.GetTextElement()
Dim uc As UnicodeCategory = Char.GetUnicodeCategory(te, 0) ' TextElement の最初のコードだけ見ればいい (たぶん)
Select Case uc
Case UnicodeCategory.SpaceSeparator, UnicodeCategory.SpacingCombiningMark
' (do nothing --- 空白系のコード)
Case UnicodeCategory.Control, UnicodeCategory.Format, UnicodeCategory.LineSeparator, UnicodeCategory.ParagraphSeparator
' (do nothing --- 制御系のコード)
Case Else
count += 1
End Select
End While
Call MessageBox.Show(count.ToString("0文字です"))
※ UNICODE カテゴリの Case、 真面目に考えてないです。 すんません f(^^;;;
で。 これ、 TextChanged イベントとかでやったら、 えらい遅くなるような気がします。
|