1

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

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

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
4

1 回答 1

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
于 2013-08-13T20:36:57.387 回答