我正在编写一个创建固定宽度文本文件的应用程序。我已经编写的内容很好,但我想知道是否有更有效的方法。 (通过有效,我的意思是执行得更快,而不是使用更少的代码。)
这是我创建的函数,用于将字符串填充或修剪为所需的长度:
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
答案 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