ab.com コミュニティ

ActiveBasicを通したコミュニケーション
前回の訪問日時: 2019年1月22日(火) 12:46 現在時刻 - 2019年1月22日(火) 12:46

All times are UTC+09:00




 [ 4 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2013年3月03日(日) 18:54 
オフライン

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

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

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

▽使用例▽
▽これをコピペしてください▽

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


ページトップ
   
 
投稿記事Posted: 2017年10月13日(金) 01:49 
コード:
'全角チェック(Shift_JIS)
Function isZenkaku(c As Byte) As Long
	If (c > &h80 And c < &hA0) Or (c > &hCF And c < &hF0) Then isZenkaku = 1
End Function

'文字数カウント(Shift_JIS)
Function GetTextCount(Text As BytePtr) As Long
	Dim i As Long

	While Text
		If isZenkaku(Text) Then i++'文字が全角文字のとき
		i++
		GetTextCount++
	Wend

End Function


ページトップ
   
 
投稿記事Posted: 2018年10月08日(月) 12:06 
オフライン

登録日時: 2006年2月05日(日) 17:10
記事: 197
住所: 東京都
ISCharAlphaNumeric関数からIsDBCSLeadByte関数に変更するだけでよいと思います。
ただし判定方法は <> FALSEとなります。


ページトップ
   
 
投稿記事Posted: 2018年10月08日(月) 22:38 
コード:
Declare Function GetTextCount CDECL lib "msvcrt" Alias "_mbslen" (str As *Byte) As Dword
これで良い


ページトップ
   
 
 [ 4 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: Bing [Bot], CCBot & ゲスト[1人]


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

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