0

VB.NET でプログラムを書くのは久しぶりですが、今は WinForm アプリケーションを書こうとしています。いくつかの文字列があり、それらをまとめてListViewコントロールに追加できるようにしたいと考えています。

私はこれを持っています:

text1 = ("00 | 34123 | 232")
text2 = ("023 | 233 | 23332 ")
text2 = ("00 | 2342432 | 122 ")

しかし、私はこれが欲しい:

text1 = ("00     |     34123       |  232   ")
text2 = ("023    |     233         |  23332 ")
text2 = ("00     |     2342432     |  122   ")

各数値は文字列変数であるため、各数値は「12」または「123」または「1234」になる可能性があることに注意してください...どうすればそれができますか!?

4

2 に答える 2

1
Public Function ToFixedColumns(ByVal input As String) As String
    'Separate individual items 
    Dim values = input.Split("|"c).Select(Function(s) s.Trim()).ToArray()

    'Validate split operation
    If values.Length <> 3 Then 
        Throw New InvalidArgumentException("The string was not in the correct starting format.")
    End If

    'Create new formatted string
    Return String.Format("{0,-6} |     {1,-12}  |  {2,-6}", _
           values(0),values(1),values(2))
End Function
于 2012-12-03T20:25:14.603 に答える
1

String.PadRightメソッドを使用します。

使用例:

Dim result = "00".PadRight(7) & "|    " _
             & "34123".PadRight(12) & "|  " _
             & "232".PadRight(6)

この場合、String.Formatアプローチはさらに優れています。両方のアプローチを機能させるには、固定幅フォントを使用する必要があることに注意してください。

于 2012-12-03T20:21:10.783 に答える