ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2017年9月20日(水) 18:13

All times are UTC+09:00




新しいトピックを投稿する  トピックへ返信する  [ 1 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2013年3月03日(日) 18:54 
オフライン

登録日時: 2009年3月29日(日) 15:45
記事: 106
文字数のByte数は取得出来ますが、
文字数をカウントする方法が無さそうだったので作ってみました。
一応、半角全角を対応させています。
半角のカタカナは、2つで1文字とカウントされるっぽいですが……

GetTextCount関数として定義してます。

戻り値に文字数、
引数にカウントさせるテキストデータ(BytePtr型)
TextNum = GetTextCount(buf)

▽使用例▽
[hide]
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)

[/hide]


▽これをコピペしてください▽
[hide]
コード:
Function GetTextCount(Text As BytePtr) As Long
	Dim i As Long
	Dim Count As Long

	i=0
	Count = 0
	Do
		'ポインタの最後ならば抜ける
		If Text[i] = NULL Then
			Exit Do
		End If

		'文字が全角文字のとき
		If IsCharAlphaNumeric(Text[i]) = 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
[/hide]

_________________
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 1 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[2人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by KONISHI Yohsuke