發表 Function LenA()(編號:4974)

VB 提供了兩組取得字串長度的函數 Len 跟 LenB, 其中 Len 傳回 Unicode 的字串長, 也就是無論中英文都算一個字, 而 LenB 則傳回所佔用的 Bytes, 所以無論中英文都佔 2 Bytes. 但是很多狀況底下會字串會被轉成 ASCII 的格式再作儲存, 但是 VB 卻沒有提供計算字串存成 ASCII 時所佔用的空間, 且此時用 Len 或 LenB 皆無參考價值, 所以只好借助其他方法來達成目標. 以下便是自己寫成的函數供參考, 效能還算可以接受.
Public Function LenA(ByVal Str As String) As Long
Dim Arr()  As Byte
  
  Arr() = StrConv(Str, vbFromUnicode)
  LenA = UBound(Arr) + 1
End Function
** 以上程式在 VB6 <中文企業版>, VB6 <英文企業版> 及 VB in VS6 <英文企業版> 環境測試無誤