将文本调试为文件格式

时间:2015-09-01 14:42:04

标签: vb.net math rounding

嘿所有我希望简化以下代码,以便输出正确数量的 = 以匹配输出部分的顶部/底部。

示例:

========================================================================
=======================This would be the text here======================
========================================================================

文本这将是此处的文本将发送给该​​函数的内容。这可以是从4个字符到最多72个字符的任何内容。我想看看是否有更简单的编码方式,然后我正在使用以下内容:

Dim cnt As Integer = 0
Dim ch As Char = ""

For Each c As Char In _tmpDebugArray(0)
    If c = ch Then cnt += 1
Next

cnt = Math.Round((cnt - 72) / 2, 2)

cnt 会为我提供 = 的数量,我需要在调试信息名称的左侧和右侧使用,以匹配顶部/底部输出部分 =

示例:

Dim strDebug string = "Bob The Builder"
cnt = 72 - strDebug          '72-15 = 57
cnt = Math.Round(cnt / 2, 2) '57/2 = 29 (28.5 rounded)

因此,在上面的例子中, = 左边是 28 ,然后是调试字符串 Bob The Builder ,然后 29 = 位于其右侧。虽然这里有 1 ,但这取决于调试字符串的长度。

2 个答案:

答案 0 :(得分:2)

可能更容易使用固定宽度,并在左右两侧填充文本。

Sub DisplayText(ByVal text As String)

    Const WIDTH As Integer = 72
    Const DISPLAY_CHAR As String = "="c

    Console.WriteLine("".PadLeft(WIDTH, DISPLAY_CHAR))
    Console.WriteLine(text.PadLeft((WIDTH + text.Length) / 2, DISPLAY_CHAR).PadRight(WIDTH, DISPLAY_CHAR))
    Console.WriteLine("".PadLeft(WIDTH, DISPLAY_CHAR))

End Sub

答案 1 :(得分:0)

假设您只能以固定宽度字体查看这些字符串,您可以使用PadLeftPadRight将字符串填充到正确的长度。以下函数使用任何字符串,填充字符和长度执行该操作。

Function PadStringCentre(str As String, ch As Char, len As Integer) As String
    Dim numLeft As Integer = (len - str.Length) \ 2 + str.Length 
    Dim numRight As Integer = len - str.Length - numRight 
    Return str.PadLeft(numLeft,ch).PadRight(len, ch)
End Function

你可以这样称呼它

Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Label1.Text = PadStringCentre("Bob The Builder", "="c, 72)
End Sub