Text in bestimmte Anzahl Teile teilen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von PhoenixBlaster.

    Text in bestimmte Anzahl Teile teilen

    Hi

    Ich hab folgenden Code geschreiebn der aber nicht richtig funktioniert:

    VB.NET-Quellcode

    1. Private Sub SplitTextInToParts(ByVal parts As Integer)
    2. 'Teilen
    3. Dim part As Integer = TextBox1.TextLength / parts
    4. Dim partTemp As Integer = part
    5. TextBox1.Text = TextBox1.Text.Insert(parts, "@")
    6. Do Until parts > TextBox1.TextLength
    7. parts += partTemp
    8. Try
    9. TextBox1.Text = TextBox1.Text.Insert(parts, "@")
    10. Catch ex As Exception
    11. Exit Do
    12. End Try
    13. Loop
    14. 'Auflisten
    15. Dim splitter As String() = TextBox1.Text.Split({"@"}, StringSplitOptions.RemoveEmptyEntries)
    16. For i = 0 To splitter.Count - 1
    17. RichTextBox1.Text += splitter(i).ToString() & vbCrlf
    18. Next
    19. End Sub
    20. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    21. SplitTextInToParts(4)
    22. End Sub

    So wenn ich nun "SplitTextInToParts(4)" schreibe möchte ich auch das der Text in der angegebenen Textbox in 4 Teile gesplittet wird. Geht aber nicht! Entweder sind es mehr oder weniger Teile oder die Teile sind unterschiedlich lang?

    Was ist falsch?

    MFG
    PhoenixBlaster?
    Du hast einen Text mit der Länge von 13

    Okay drück ich mich besser aus.
    Wenn ich einen Text von 13 Buchstaben habe soll das dann so aussehen

    B = Buchstabe
    | = Split-Stelle

    BBBB|BBBB|BBBB|B

    bei mir würde es jetzt aber so aussehen

    BBB|BBBBBB|BBB|B

    Ich will aber das es so aussieht wie oben. Alle Teile sind gleich nur der letzte kann anders sein.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Function strSplitParts(ByVal fullString As String, ByVal partsCount As Integer) As String()
    3. Dim parts(partsCount) As String
    4. Dim partLength = CInt(Math.Ceiling(fullString.Length / partsCount))
    5. For i As Integer = 0 To partsCount - 2
    6. parts(i) = fullString.Substring(i * partLength, partLength)
    7. Next
    8. parts(partsCount - 1) = fullString.Substring((partsCount - 1) * partLength)
    9. Return parts
    10. End Function
    11. ' aaa bbb ccc
    12. Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    13. Dim textParts() = strSplitParts(TextBox1.Text, 4)
    14. TextBox1.Text = ""
    15. For i As Integer = 0 To 4-1
    16. TextBox1.Text += textParts(i) + vbCrLf
    17. Next
    18. End Sub
    19. End Class

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Agita“ ()

    VB.NET-Quellcode

    1. Private Sub ChangeText(ByRef input As String, ByVal length As Integer)
    2. Dim zähler As Integer
    3. Do While zähler < input.Length
    4. If zähler Mod (length + 1) = length Then input = input.Insert(zähler, "|")
    5. zähler += 1
    6. Loop
    7. End Sub
    8. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    9. Dim input As String = "Dies ist ein Test Satz."
    10. ChangeText(input, 4) '4 Teilig splitten im Format: 1234|1234|1234|123
    11. MessageBox.Show(input)
    12. End Sub


    Das dürfte funktionieren