Skip to content

VBMAN.Formater - 格式化工具对象 ​

概述 ​

VBMAN.Formater 提供了各种数据格式化功能,包括数字、日期、文件大小等的格式化显示。

使用方式:通过链式调用 Data(值).ReturnXXX() 的方式使用。

核心特性 ​

  • 数字格式化: 货币、百分比、千分位、罗马数字
  • 日期格式化: 多种日期时间格式、相对时间
  • 文件大小: 自动转换为 B/KB/MB/GB/TB/PB
  • 文本格式化: 对齐、填充、截断、命名风格转换
  • 掩码格式化: 手机号、身份证号、邮箱脱敏
  • 编码转换: HTML编码、URL编码、Base64、十六进制

方法 ​

Data ​

设置数据源,返回 Me 支持链式调用(入口方法)

vb
Public Function Data(ByVal Source As Variant) As cFormater

文件大小格式化 ​

ReturnFileSize ​

返回格式化后的文件大小字符串 (B/KB/MB/GB/TB/PB)

vb
Public Function ReturnFileSize(Optional ByVal DecimalPlaces As Long = 2, Optional ByVal ForceUnit As String = "") As String

时间格式化 ​

ReturnTimeAgo ​

返回相对时间描述(刚刚、5秒前、3分钟前等)

vb
Public Function ReturnTimeAgo() As String

ReturnDateTime ​

返回格式化日期时间

vb
Public Function ReturnDateTime(Optional ByVal FormatStr As String = "yyyy-MM-dd HH:mm:ss") As String

ReturnShortDate ​

返回日期(短格式 yyyy-MM-dd)

vb
Public Function ReturnShortDate() As String

ReturnShortTime ​

返回时间(短格式 HH:mm:ss)

vb
Public Function ReturnShortTime() As String

数字格式化 ​

ReturnNumber ​

返回格式化数字(千分位)

vb
Public Function ReturnNumber(Optional ByVal DecimalPlaces As Long = 0) As String

ReturnCurrency ​

返回货币格式

vb
Public Function ReturnCurrency(Optional ByVal Symbol As String = "¥") As String

ReturnPercent ​

返回百分比

vb
Public Function ReturnPercent(Optional ByVal DecimalPlaces As Long = 0) As String

ReturnRoman ​

返回罗马数字(支持 1-3999)

vb
Public Function ReturnRoman() As String

文本格式化 ​

ReturnTruncate ​

返回限制长度的文本,超长时显示省略号

vb
Public Function ReturnTruncate(ByVal MaxLength As Long, Optional ByVal Suffix As String = "...") As String

ReturnPadLeft ​

返回左侧填充后的文本

vb
Public Function ReturnPadLeft(ByVal TotalWidth As Long, Optional ByVal PadChar As String = " ") As String

ReturnPadRight ​

返回右侧填充后的文本

vb
Public Function ReturnPadRight(ByVal TotalWidth As Long, Optional ByVal PadChar As String = " ") As String

ReturnProperCase ​

返回首字母大写

vb
Public Function ReturnProperCase() As String

ReturnCamelCase ​

返回驼峰命名 (helloWorldExample)

vb
Public Function ReturnCamelCase() As String

ReturnPascalCase ​

返回帕斯卡命名 (HelloWorldExample)

vb
Public Function ReturnPascalCase() As String

ReturnSnakeCase ​

返回下划线命名 (hello_world_example)

vb
Public Function ReturnSnakeCase() As String

ReturnKebabCase ​

返回短横线命名 (hello-world-example)

vb
Public Function ReturnKebabCase() As String

ReturnHtmlEncode ​

返回HTML转义文本

vb
Public Function ReturnHtmlEncode() As String

ReturnUrlEncode ​

返回URL编码文本

vb
Public Function ReturnUrlEncode() As String

掩码格式化 ​

ReturnMaskedPhone ​

返回手机号掩码 (138****8888)

vb
Public Function ReturnMaskedPhone() As String

ReturnMaskedIDCard ​

返回身份证号掩码 (110101********1234)

vb
Public Function ReturnMaskedIDCard() As String

ReturnMaskedEmail ​

返回邮箱掩码 (a***@gmail.com)

vb
Public Function ReturnMaskedEmail() As String

其他格式化 ​

ReturnHex ​

返回十六进制字符串

vb
Public Function ReturnHex() As String

ReturnBase64 ​

返回Base64编码

vb
Public Function ReturnBase64() As String

ReturnBooleanText ​

返回布尔值的友好文本

vb
Public Function ReturnBooleanText(Optional ByVal TrueText As String = "是", Optional ByVal FalseText As String = "否") As String

ReturnFileName ​

返回文件名(含扩展名)

vb
Public Function ReturnFileName() As String

ReturnFileNameWithoutExt ​

返回文件名(不含扩展名)

vb
Public Function ReturnFileNameWithoutExt() As String

ReturnFileExt ​

返回文件扩展名

vb
Public Function ReturnFileExt() As String

ReturnFilePath ​

返回文件路径(不含文件名)

vb
Public Function ReturnFilePath() As String

综合示例 ​

示例1: 基本格式化 ​

vb
Private Sub BasicFormat()
    ' 货币显示
    Dim price As Currency
    price = 1234567.89
    LabelPrice.Caption = VBMAN.Formater.Data(price).ReturnCurrency("¥")
    ' 结果: ¥1,234,567.89
    
    ' 文件大小
    Dim fileSize As Currency
    fileSize = 1536000000
    LabelSize.Caption = VBMAN.Formater.Data(fileSize).ReturnFileSize()
    ' 结果: 1.43 GB
    
    ' 百分比
    Dim rate As Double
    rate = 0.8567
    LabelRate.Caption = VBMAN.Formater.Data(rate).ReturnPercent(2)
    ' 结果: 85.67%
    
    ' 相对时间
    Dim postTime As Date
    postTime = DateAdd("h", -2, Now)
    LabelTime.Caption = VBMAN.Formater.Data(postTime).ReturnTimeAgo()
    ' 结果: 2小时前
End Sub

示例2: 文本格式化 ​

vb
Private Sub TextFormat()
    Dim text As String
    text = "hello world example"
    
    ' 驼峰命名
    Debug.Print VBMAN.Formater.Data(text).ReturnCamelCase()
    ' 结果: helloWorldExample
    
    ' 帕斯卡命名
    Debug.Print VBMAN.Formater.Data(text).ReturnPascalCase()
    ' 结果: HelloWorldExample
    
    ' 截断文本
    Debug.Print VBMAN.Formater.Data("这是一段很长的文本").ReturnTruncate(6)
    ' 结果: 这是一段...
    
    ' 左填充
    Debug.Print VBMAN.Formater.Data("123").ReturnPadLeft(6, "0")
    ' 结果: 000123
End Sub

示例3: 数据脱敏 ​

vb
Private Sub MaskSensitiveData()
    ' 手机号脱敏
    Debug.Print VBMAN.Formater.Data("13812345678").ReturnMaskedPhone()
    ' 结果: 138****5678
    
    ' 身份证号脱敏
    Debug.Print VBMAN.Formater.Data("110101199001011234").ReturnMaskedIDCard()
    ' 结果: 110101********1234
    
    ' 邮箱脱敏
    Debug.Print VBMAN.Formater.Data("admin@gmail.com").ReturnMaskedEmail()
    ' 结果: a***@gmail.com
End Sub

示例4: 列表格式化显示 ​

vb
Private Sub FormatListView()
    Dim li As ListItem
    For Each li In ListView1.ListItems
        ' 格式化金额列
        li.SubItems(2) = VBMAN.Formater.Data(li.SubItems(2)).ReturnCurrency()
        
        ' 格式化日期列
        li.SubItems(3) = VBMAN.Formater.Data(CDate(li.SubItems(3))).ReturnShortDate()
        
        ' 格式化文件大小列
        li.SubItems(4) = VBMAN.Formater.Data(li.SubItems(4)).ReturnFileSize()
    Next li
End Sub

最佳实践 ​

  1. 链式调用: 使用 Data(值).ReturnXXX() 的方式保持代码简洁
  2. 类型检查: 格式化前确保数据类型正确,错误类型会返回默认值
  3. 本地化: 根据用户地区使用相应的货币符号和日期格式
  4. 一致性: 同类数据使用相同的格式化方式

VB6及其LOGO版权为微软公司所有