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版权为微软公司所有