文字列のバイト計算

  ByteLen関数



VBScript(VB)では、文字列の内部コードは Unicode であり、Len 関数では文字数が返り、Lenbでは、Unicode のバイト数が返されるので、結局データを意図した位置に出力する為の情報になりません。そこで、以下のような関数で対処します。

  
' **********************************************************
' 文字列のバイト計算
' **********************************************************
function ByteLen( strTarget )

	Dim i,nLen,nRet,strMoji,nAsc

	nRet = 0

	nLen = Len( strTarget )

	For i = 1 to nLen
		nRet = nRet + 2
		strMoji = Mid( strTarget, i, 1 )
		nAsc = Asc( strMoji )
		if &H20 <= nAsc and nAsc <= &H7E then
			nRet = nRet - 1
		end if
		if &HA1 <= nAsc and nAsc <= &HDF then
			nRet = nRet - 1
		end if
	Next

	ByteLen = nRet

end function
  

以下は、40バイトの商品名文字列を作成する例です

  
strSyohin = Rs.Fields("商品名").Value & ""
strSyohin = strSyohin & String( 40-ByteLen(strSyohin), " " )
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ