当前位置: 代码迷 >> VB Dotnet >> Vb.net 格式化字符串 @@-@@-@@,该如何解决
  详细解决方案

Vb.net 格式化字符串 @@-@@-@@,该如何解决

热度:682   发布时间:2016-04-25 01:59:40.0
Vb.net 格式化字符串 @@-@@-@@
vb.net 中如何实现Vb6中的 format(str, "@@-@@-@@")

以下是各种效果返回值
1. str= “123”  format(str, "@@-@@-@@") 返回 “  - 1-23”
2. str= “123abc”  format(str, "@@-@@-@@") 返回 “12-3a-bc”
3. str= “123abc456” f ormat(str, "@@-@@-@@") 返回 “12-3a-bc456”

vb.net 中有何方法可以实现vb6中的  format(str, "@@-@@-@@")

求大神们解答

------解决思路----------------------
Imports Microsoft.VisualBasic.Compatibility.VB6

Module Module1

    Sub Main()

        Console.WriteLine(Support.Format("123", "@@-@@-@@"))
        Console.WriteLine(Support.Format("123abc", "@@-@@-@@"))
        Console.WriteLine(Support.Format("123abc456", "@@-@@-@@"))
        Console.ReadLine()

    End Sub

End Module

  - 1-23
12-3a-bc
12-3a-bc456

------解决思路----------------------
警告是 .Net 版本的原因。
先前的 VS.Net 考虑从 VB6 升级,所以支持用 Compatibility.VB6。
后来的版本虽然还支持,但是不建议用了,所以出警告。
要么降版本、要么忽略、要么不用。
------解决思路----------------------
你用 .Net Reflector 反编译 Microsoft.VisualBasic.Compatibility.dll,把 Support.Format() 以及相关的代码复制过来不就可以了。
------解决思路----------------------
        Dim ddd As String
        ddd = "123"
        Dim fff As String
        If Len(ddd) < 6 Then
            fff = Space(6 - Len(ddd)) & ddd
        Else
            fff = ddd
        End If
        MsgBox(fff.Substring(0, 2) & "-" & fff.Substring(2, 2) & "-" & fff.Substring(4))
  相关解决方案