文字列の分割して改行


FF  2023-07-05 15:42:34  No: 151008  IP: [192.*.*.*]

vb.net 2022で開発してます。(初心者です)
変数の文字列を分割について教えてください。

現在inptにはa1,a2,a3,a4...a10まで入り「,」区切りでa6から改行しています。
今後inptに最大a1~a50(基本a1~a30を使用)が入るため5個区切りで10行改行するようにしたいです。
現在のままa11以上いれると下記のようになります。
a1,a2,a3,a4,a5
a6,a7,a8,a9,a10,a11,a12...a50

 Function InsertEnterAfterThirdComma(ByVal input As String) As String
        ' 文字列をカンマで分割します。
        Dim parts As String() = input.Split(New Char() {","c})
        ' 配列の長さが5より大きい場合、改行を挿入します。
        If parts.Length > 5 Then
            ' 最初の3つの要素を連結します。
            Dim f As String = String.Join(",", parts, 0, 5)
            ' 残りの要素を連結します。
            Dim t As String = String.Join(",", parts, 5, parts.Length - 5)

            ' 最初の5つの要素、改行、残りの要素を連結して返します。
            Return f & "," & Environment.NewLine & t
        Else
            ' 配列の長さが5以下の場合、元の入力を返します。
            Return input
        End If
    End Function

編集    削除
とめ  2023-08-04 21:06:10  No: 151060  IP: [192.*.*.*]

>InsertEnterAfterThirdComma
>' 最初の3つの要素を連結します。
3番目で改行する問題をコピペして5に変えちゃったんですかね。
中途半端な改変は、PG作成者の意図が読めなくなるからやめて欲しいです。
まぁ、切り出す位置を変えるだけなら算数の範囲だし、問題を言葉で整理する
国語ができれば小学6年生くらいで解決できる知識レベルと思われます。
自分で考える力を育てないと。

     Function InsertEnterAfterInsertcountComma(ByVal input As String, ByVal Insertcount As Integer) As String
        Dim inputReturn As String = String.Empty
        Dim loopIndex As Integer = 0
        Dim parts As String() = input.Split(New Char() {","c})
        If Insertcount < 0 Then Throw New Exception("Error:OutOfRangeIndex(Insertcount)")
        If Insertcount = 0 Then Return input
        While True
            loopIndex = loopIndex + Insertcount
            If parts.Length > loopIndex Then
                Dim f As String = String.Join(",", parts, loopIndex - Insertcount, Insertcount)
                inputReturn = inputReturn & f & "," & Environment.NewLine
            Else
                Dim t As String = String.Join(",", parts, loopIndex - Insertcount, parts.Length - (loopIndex - Insertcount))
                inputReturn = inputReturn & t
                Exit While
            End If
        End While
        Return inputReturn
    End Function

編集    削除