String() alle möglichkeiten Durchlaufen

  • VB.NET
  • .NET 5–6

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von HenryV.

    String() alle möglichkeiten Durchlaufen

    Servus,

    ich stehe gerade bisschen (mal wieder) auf dem Schlauch.

    ich habe folgendes vor:
    Ich habe einen einfachen String. Der ist bspw. so aufgebaut: "Hauptkategorie, Hauptkategorie > Unterkategorie 1, Hauptkategorie > Unterkategorie 1 > Unterkategorie 2"

    Diese muss ich in 2 DataSets laden wie folgt:
    Dataset1: wc_terms
    ----------------------------
    term_id|Name|Slug|term_group
    ---------------------------
    1| Hauptkategorie | hauptkategorie|0
    2| Unterkategorie 1 | hauptkategorieunterkategorie1 | 0
    3 | Unterkategorie 2 | hauptkategorieunterkategorie1unterkategorie2 | 0

    Dataset2: wp_term_relationships 'hier wird die abhängigkeit zugeordnet
    --------------------------------
    objectid | term_id | ter_group
    1 | 1 | 0
    1| 2 | 0
    2 | 2 | 0
    1 | 3 | 0
    2 | 3 | 0
    3 | 3 |0

    und hier setzt irgendwie mein Hirn aus. Ich splitte den String erstmal nach den Komma. So und ab hier weiß ich nicht mehr wie ich weiter machen soll.
    ich versteh nur Bahnhof.
    Wie soll aus deinem einen BeispielString die untigen zwei Tabellen bei rauskommen, mit 3 bzw 7 Datensätzen?

    Das zweite ist, es ist keine gute Idee, das in zwei Datasets zu verteilen.
    Die Daten sind untereinander abhänggig, dann sollen sie auch in ein gemeinsames Dataset (und weitere Tabellen wohl noch dazu)
    Hier der Code, der aus deinem String die zwei Tabellen ausgibt. (Die Reihenfolge der zweiten Tabelle konnte ich so nicht reproduzieren)

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim Txt As String = "Hauptkategorie, Hauptkategorie > Unterkategorie 1, Hauptkategorie > Unterkategorie 1 > Unterkategorie 2"
    3. Dim TxtArray As String() = Txt.Split(","c)
    4. Dim term_ids As New List(Of Integer)
    5. Dim i As Integer
    6. 'wc_terms
    7. 'term_id|Name|Slug|term_group
    8. For Each t As String In TxtArray
    9. i += 1
    10. Dim NameArray As String() = t.Split(">"c)
    11. Dim Name As String = NameArray.Last.Trim
    12. Dim Slug As String = t.Replace(" "c, "").Replace(">"c, "").ToLower
    13. Debug.Print($"{i} | {Name} | {Slug} | 0")
    14. term_ids.Add(i)
    15. Next
    16. 'wp_term_relationships
    17. 'objectid | term_id | ter_group
    18. Dim z As Integer = 0
    19. For x As Integer = 0 To term_ids.Count - 1
    20. For y As Integer = z To term_ids.Count - 1
    21. Debug.Print($"{term_ids(x)} | {term_ids(y)} | 0")
    22. Next
    23. z += 1
    24. Next
    25. End Sub