VB.Net Random String an bestimmten Stellen teilen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Semiconductor.

    VB.Net Random String an bestimmten Stellen teilen

    Guten Tag,

    das Problem ist konkret folgendes:

    ich habe einen randomisierten String

    Quellcode

    1. teststring = "11111XXXcdsgdfgdg11111XXfdsgfdgdgd11111Xgddfgdfgdf11111XXXgdfgdfgdfg11111Xfgfgfdgd"


    Ich kenne nicht deren Länge. Ich kenne aber den Anfang an den zu teilenden Stellen, aber auch nicht deren Ende.
    Die Anfänge, an denen geteilt werden sollen, beginnen immer gleich.

    Ich habe versucht, mit Split.String den String in ein Array, bzw. Listbox hinzuzufügen, jedoch klappte das bisher nicht.

    Es soll in der Listbox folgendermaßen aussehen (siehe oberer Teststring)

    11111XXX
    11111XX
    11111X
    11111XXX
    11111X

    -------

    Wobei X eine randomisierte Länge darstellt, die ich nicht kenne. Der Buchstabensalat im inneren soll also ignoriert werden.

    Bisherige Ansätze:
    Wenn ich die For-Schleife nutze und mit IndexOf abfrage, komme ich natürlich nur bis zum 1. Stringpart voran und die nachstehenden Zeichen werden ignoriert.

    Wenn ich mittels Splitstring nutzen will, geht das auch schwer, da ich die Länge an den zu teilenden Stellen nicht, aber nur deren Anfang.

    Regex bietet nur starres Abschneiden.


    Daher wäre ich euch für weiterführende Lösungsansätze sehr dankbar!

    MfG
    Semi

    VB.NET-Quellcode

    1. Private Sub Test()
    2. Dim teststring = "11111XXXcdsgdfgdg11111XXfdsgfdgdgd11111Xgddfgdfgdf11111XXXgdfgdfgdfg11111Xfgfgfdgd"
    3. Dim query = From s In teststring.Split("11111", StringSplitOptions.RemoveEmptyEntries) Select "11111" & New String("X"c, s.Split("X"c).Length - 1)
    4. ListBox1.DataSource = query.ToArray
    5. End Sub
    ah - denn probierma so:

    VB.NET-Quellcode

    1. Private Sub Test()
    2. Dim teststring = "11111XXXcdsgdfgdg11111XXfdsgfdgdgd11111Xgddfgdfgdf11111XXXgdfgdfgdfg11111Xfgfgfdgd"
    3. Dim query = From s In teststring.Split({"11111"}, StringSplitOptions.RemoveEmptyEntries) Select "11111" & New String("X"c, s.Split("X"c).Length - 1)
    4. ListBox1.DataSource = query.ToArray
    5. End Sub

    ErfinderDesRades schrieb:

    teststring.Split("11111", StringSplitOptions.RemoveEmptyEntries)
    Diese Überladung (String, StringSplitOptions) existiert ja auch nicht: msdn.microsoft.com/de-de/library/tabh47cf(v=vs.110).aspx

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ja gut, der Edit kam etwas später.
    Ich bezog mich zunächst auf:

    Womöglich du ein niedrigeres Framework - da musst du mal im ObjectBrowser nachgucken, welche String.Split-Überladungen dir zur Verfügung stehen


    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: