固定幅のテキスト ファイルを作成するアプリを作成しています。私がすでに書いたものは問題なく動作しますが、もっと効率的な方法があるかどうか疑問に思っています。(効率的とは、コードの使用量を減らすのではなく、実行を高速化することを意味します。)
以下は、文字列を必要な長さにパディングまたはトリムするために作成した関数です。
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