文字数をカウントする方法が無さそうだったので作ってみました。
一応、半角全角を対応させています。
半角のカタカナは、2つで1文字とカウントされるっぽいですが……
GetTextCount関数として定義してます。
戻り値に文字数、
引数にカウントさせるテキストデータ(BytePtr型)
TextNum = GetTextCount(buf)
▽使用例▽
[ここをクリックすると内容が表示されます]
Dim Length As Long
Dim TextNum As Long
Dim buf As *Byte
Length = GetWindowTextLength(hEditBox1)
buf = malloc(Length+1)
GetWindowText(hEditBox1,buf,Length+1)
TextNum = GetTextCount(buf)
free(buf)
Dim TextNum As Long
Dim buf As *Byte
Length = GetWindowTextLength(hEditBox1)
buf = malloc(Length+1)
GetWindowText(hEditBox1,buf,Length+1)
TextNum = GetTextCount(buf)
free(buf)
▽これをコピペしてください▽
[ここをクリックすると内容が表示されます]
コード: 全て選択
Function GetTextCount(Text As BytePtr) As Long
Dim i As Long
Dim Count As Long
i=0
Count = 0
Do
'ポインタの最後ならば抜ける
If Text = NULL Then
Exit Do
End If
'文字が全角文字のとき
If IsCharAlphaNumeric(Text) = FALSE Then
If Text[i+1] = NULL Then
Count++
Exit Do
End If
i+=2
Count++
Continue
End If
Count++
i++
Loop
GetTextCount = Count
End Function