编写固定宽度的文本文件

时间:2013-08-13 20:24:53

标签: vb.net

我正在编写一个创建固定宽度文本文件的应用程序。我已经编写的内容很好,但我想知道是否有更有效的方法。 (通过有效,我的意思是执行得更快,而不是使用更少的代码。)

这是我创建的函数,用于将字符串填充或修剪为所需的长度:

Private Function ToLen(ByRef strLen As String, ByRef intLen As Integer) As String

    Dim L As Integer = Len(strLen)
    If L < intLen Then
        Return strLen & Strings.Space(intLen - L)
    ElseIf L = intLen Then
        Return strLen
    Else
        Return Strings.Left(strLen, intLen)
    End If

End Function

以下是调用它的代码的简化版本:

Using MyFile1 As New StreamWriter("C:\Temp\MyFile.txt")
    Do
        ' loop through records
        MyFile1.WriteLine(ToLen(Item1, 10) & ToLen(Item2, 50) & ToLen(Item3, 25))
    Loop
End Using

1 个答案:

答案 0 :(得分:2)

我建议使用新的.NET方法进行字符串操作,而不是使用旧式的VB6函数,例如:

Private Function ToLen(text As String, length As Integer)
    If text.Length > length Then
        Return text.SubString(0, length)
    Else
        Return text.PadRight(length)
    End If
End Function

然后,当您写入文件时,不要将字符串连接在一起。多次调用Write会更有效:

Using MyFile1 As New StreamWriter("C:\Temp\MyFile.txt")
    Do
        ' loop through records
        MyFile1.Write(ToLen(Item1, 10))
        MyFile1.Write(ToLen(Item2, 50))
        MyFile1.WriteLine(ToLen(Item3, 25))
    Loop
End Using