Ergebnis 1 bis 8 von 8
  1. #1
    Capt'n Crunch Avatar von hackerking
    Registriert seit
    08.11.2008
    Beiträge
    964

    Standard [VB.NET] Nach Splitten im Array immer Leere Felder!

    Jo Hey Leute...
    Habe ein Problem mit Arrays:
    Wenn ich etwas splitte, dann bekomme ich im array immer nach jedem string eine leerzeile...
    also so:
    Array(0) = "Text"
    Array(1) = ""
    Array(2) = "Text2"
    Array(3) = ""

    wie kann man die leeren felder löschen ohne die reinfolge durcheinander zu bringen?

  2. #2
    Richard Stallman Avatar von Sawyer
    Registriert seit
    26.07.2008
    Beiträge
    2.037

    Standard

    Da das ganze sicherlich Dynamisch sein soll , lässt du dein array am besten mit einer for schleife durchlaufen , und löscht den Eintrag innerhalb

    Beispiel:

    Code:
            Dim Test(5) As String
            Test(0) = "Hallo"
            Test(1) = ""
            Test(2) = "Hallo2"
            Test(3) = ""
            Test(4) = "Hallo3"
            Test(5) = ""
    
            For i As Integer = 0 To Test.Length - 1 Step 1
                If Test(i) = String.Empty Then
                    Array.Clear(Test, i, 1)
                End If
            Next
    Problem dabei nur , das da Array dann nur auf Nothing gesetzt wird , aber du möchtest sicher ein neues Array welches keine lehren stellen hat , wie du es bereits beschrieben hast.

    Also musst du ein neues Array aufbauen , hier würde sich eine Funktion gut dafür eignen.

    Aufruf:
    Code:
    Dim MeinArray As String() = NeuesArray(Test)

    Beschreibung:
    Wir erstellen ein neues Array und weißen als quelle die Funktion hinzu.
    Mit dem Ausgangs Array Test als Parameter.

    Funktion:

    Code:
        Private Function NeuesArray(ByVal ArrayList As String()) As String()
            Dim FinaleArrayAnzahl As Integer = 0
            Dim zaehler As Integer = 0
    
            For i As Integer = 0 To ArrayList.Length - 1 Step 1
                If Not ArrayList(i) = String.Empty Then
                    FinaleArrayAnzahl += 1
                End If
            Next
    
            Dim BufferArray(FinaleArrayAnzahl - 1) As String
    
            For x As Integer = 0 To ArrayList.Length - 1 Step 1
                If Not ArrayList(x) = String.Empty Then
                    BufferArray(zaehler) = ArrayList(x)
                    zaehler += 1
                End If
            Next
    
            Return BufferArray
    Beschreibung:
    Innerhalb der Funktion laufen wir das Array durch und schauen , wie groß unser neues Array werden muss , dabei werden natürlich die lehren Elemente ignoriert.

    Danach erstellen wir ein ArrayDummy in das wir mit der neuen Länge initialisieren.

    Danach laufen wir wieder das Ausgangs Array durch und prüfen innerhalb der schleife ob der Eintrag nicht leer ist , wenn das so ist schreiben wir das neue Element in unser BufferArray.

    Danach zählt der zaehler um eins hoch , somit haben wir immer das richtige Array Element das wir schreiben wollen.

    Hoffe ich konnte dir damit helfen

    MfG
    Geändert von Sawyer (29.06.2009 um 01:58 Uhr)

  3. #3
    BackNine Wurm
    Registriert seit
    01.01.2007
    Beiträge
    302

    Standard

    Oder Du benutzt beim Splitten

    StringSplitOptions.RemoveEmptyEntries


    Zitat Zitat von roflcopterpilot
    danke, aber wo kann man denn hier bitte proxies checken? http://proxycheck.dl.am/

  4. #4
    Capt'n Crunch Avatar von hackerking
    Registriert seit
    08.11.2008
    Beiträge
    964

    Standard

    @papst
    danke sehr ausführlich?^^

    @steav
    hmm ich kriege immer den fehler das keine überladene split funktion diese paramter unterstütz

  5. #5
    Eigener Benutzertitel Avatar von inmate
    Registriert seit
    23.12.2008
    Beiträge
    1.767


    iPott <3

  6. #6
    Capt'n Crunch Avatar von hackerking
    Registriert seit
    08.11.2008
    Beiträge
    964

    Standard

    Dabei geht aber die ursprüngliche Reihenfolge der Elemente verloren.
    Sonst hätt ich das auch gemacht^^

  7. #7
    BackNine Wurm
    Registriert seit
    01.01.2007
    Beiträge
    302

    Standard

    Zitat Zitat von hackerking Beitrag anzeigen
    @papst
    danke sehr ausführlich?^^

    @steav
    hmm ich kriege immer den fehler das keine überladene split funktion diese paramter unterstütz

    Dürfte ich den Code mal sehn für den der Fehler angezeigt wird^^


    Zitat Zitat von roflcopterpilot
    danke, aber wo kann man denn hier bitte proxies checken? http://proxycheck.dl.am/

  8. #8
    Capt'n Crunch Avatar von hackerking
    Registriert seit
    08.11.2008
    Beiträge
    964

    Standard

    @steav A.Split("|||", StringSplitOptions.RemoveEmptyEntrieß)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •