Imports System.Text.RegularExpressions
Module Module1
Sub Main()
Console.WriteLine(binary(16380, "binary(值,1)"))
Console.ReadKey()
End Sub
''' <summary>
''' 处理十进制转二进制取值函数
''' </summary>
''' <param name="CurrentValue">当前值</param>
''' <param name="formula">表达式</param>
''' <returns></returns>
Public Function binary(ByVal CurrentValue As String, ByVal formula As String) As String
If formula.Contains("binary(") = False Then
Return formula '如果未发现二进制转换函数返回表达式
End If
Dim mc = System.Text.RegularExpressions.Regex.Matches(formula, "binary\((.+?)\)", RegexOptions.IgnoreCase)
If mc.Count > 0 Then
For Each m As Match In mc
Dim param As String = m.Value.Substring(7, m.Value.Length - 8)
Dim value = param.Split(",")(2) '"值,16"
Dim tmp = Convert.ToString(CInt(CurrentValue), 2).PadLeft(16, "0")
formula = formula.Replace(m.Value, tmp(param.Split(",")(1) - 1))
Next
End If
Return formula
End Function
End Module