Listboxeintrag in Listboxen auf "SPLITEN"

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Listboxeintrag in Listboxen auf "SPLITEN"

    He leuz,

    Für euch ein kleines für mich ein MEGA problem,

    Ich habe eine Listbox und möchte den Eintrag der z.b so aus sieht

    Blabla,blabla2,blabla3

    in 3 Listboxen eintragen, sprich Spliten bei ","

    In die 1. listbox soll dann Blabla
    In die 2.Listbox dann Blabla2
    In die 3.Listbox dann BlaBla3 stehen

    das ganze läuft dann über ne schleife die mehr einträge bearbeiten soll, aber das birng ich dann schon zusammen :D

    ich hab keinen Plan die Split funktion bring ich nur mit der textbox zusammen.

    Danke für eure Ratschläge :thumbup:

    Ps : Google weiß nicht alles :rolleyes:
    Du bringst die Split-Funktion mit der TextBox "zusammen", aber mit nem String nicht? Dann sag ich Dir mal was. Was da in der TextBox steht, ist auch ein String. Wenn Du mir plausibel erklären kannst, warum Du das so nicht schaffst, dann geb ich Dir nen Denkanstoss.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. For Each item In ListBox2.Items()
    3. ListBox3.Items.Add(item.ToString.Split(CChar(","))(0))
    4. ListBox4.Items.Add(item.ToString.Split(CChar(","))(1))
    5. ListBox5.Items.Add(item.ToString.Split(CChar(","))(2))
    6. Next
    7. End Sub


    So ?
    Das macht das schon mit allen Einträgen jeder Eintrag darf halt nur 2 Kommata haben !

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „xd-franky-5“ ()

    VB.NET-Quellcode

    1. Dim AA As Integer = 40 ' startwert Listbox1
    2. Dim BB As Integer = ListBox1.Items.Count
    3. For XX = AA To BB Step 51 ' sprung je 51 zeilen
    4. For A As Integer = XX To XX + 19 ' bei jeden Sprung (51) soll er alle 20 einträge abgehen
    5. For Each item In ListBox1.Items(A)
    6. ListBox5.Items.Add(item.ToString.Split(",")(0))
    7. ListBox6.Items.Add(item.ToString.Split(",")(1))
    8. ListBox7.Items.Add(item.ToString.Split(",")(2))
    9. Next
    10. Next
    11. Next


    Hier mal der Ausschnitt aus dem CODE .Funktioniert nicht Fehler: Ausserhalb des Array bereich!
    Für was ist AA und BB ?
    Wenn du die Items in deiner Box hast und den Code z.b. in nen Button setzt genauso wie oben, dann gehts ! Habs getestet ;)
    Aso und dass kann heißen das es das Item nicht gibt oder nix drin steht !
    Was ganze ist Teil meines Programms und ich muss es da Rein setzen sonst funktioniert der Rest nicht mehr

    Hier der Original

    VB.NET-Quellcode

    1. Sub VersionV5() 'VERSION AUSWÄHLEN
    2. Dim AA As Integer = 40
    3. Dim BB As Integer = ListBox1.Items.Count
    4. For XX = AA To BB Step 51
    5. For A As Integer = XX To XX + 19
    6. ListBox2.Items.Add(ListBox1.Items(A))
    7. Next
    8. Next
    9. Filter()


    das Funktioniert so aber jetz muss ich noch das ganze EXTRA in 3 listboxen verbauen und dazu spliten

    lg

    VB.NET-Quellcode

    1. ListBox2.Items.Add(item.ToString.Split(",")(0))
    2. ListBox3.Items.Add(item.ToString.Split(",")(1))
    3. ListBox4.Items.Add(item.ToString.Split(",")(2))


    Der code von xd-franky-5 ist ein Beispiel wie du den string splitten und den Listboxen zuweisen kannst.
    Das heißt aber nicht, dass hier auf jede Situation reagiert wird.
    Wenn es nicht in jeder Zeile mindestens 2 Komma gibt, dann wird er bei Split auf einen Index im Array zugreifen wollen, den es nicht gibt.

    Also jede Zeile müßte so aufgebaut sein, wie du angegeben hast.

    Blabla,blabla2,blabla3
    @xd-franky-5

    Dein Code ist Option Strict Off und somit nicht zu gebrauchen.

    @StefanS0

    Erklär mal, was da am Ende rauskommen soll und es gibt 100% eine bessere Lösung.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    SpaceyX schrieb:

    @StefanS0



    Erklär mal, was da am Ende rauskommen soll und es gibt 100% eine bessere Lösung.
    Wie gesagt ich habe eine Listbox mit 200 einträge oder so die wurden aber schon bearbeitet. Das Proramm mach das schon was ich will.

    Gerade hab nochmal nachgesehen und brauch eigentlich immer nur den 4 eintrag pro Zeile in der neuen Listbox.

    Also Text1,Text2,text3,Text4,

    Neue Listbox nur der TEXT 4 und ohne ,
    Hallo,

    dann halt:

    VB.NET-Quellcode

    1. Listbox.Items(index).Split(",")(3)


    Index ist immer nullbasiert.

    MFG

    Alex-Digital :D
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D

    Alex-Digital schrieb:



    Index ist immer nullbasiert.
    Versteh ich ned und Funktioniert auch ned ;(

    SpaceyX schrieb:

    Ich würde an Deiner Stelle meine Daten in einer Klasse oder besser in einem DataSet abbilden.
    Ich bin noch blutiger Anfänger, so weit bin ich noch nicht aber danke für die Info , so kann ich weiter lernen und Forschen :)
    Mit nullbasiert ist gemeint, dass ein Array mit dem Index "0" beginnt.
    Dein String besteht aus 4 Teilen wenn man ihn beim Komma splittet.
    Und das bedeuted du kannst die einzelnen Teile von 0 bis 3 ansprechen.

    Wenn du auf den Index 4 zugreifen willst, wird das den von dir geposteten Fehler ergeben.
    Es ist einfach immer schlecht, direkt auf Listbox rumzuorgeln.
    Schaff dir eine sinnvolle Datenklasse - mit 3 Properties, binde 3 Listboxen dran, und weise jeder einen anneren DisplayMember zu - Problem solved.
    Danke für die Info aber mit was genau soll ich mich da weiter beschäftigen SQL? oder so