Feedback

VB - String Splitten

Veröffentlicht von am 07.04.2008
(3 Bewertungen)
String Komfortabel Splitten
oder
Was MS einfacher hätte machen können '''vergessen hat

Splittet einen Sting KOMFORTABEL mit einem anderen String
z.B. (br)

Danke an Tim Hartwig und Pirmin (siehe Kommentare), da ich nicht wusste, das es eine zwar umständliche Möglichkeit gibt, aber es gibt sie.

Ich habe die MS-Methode ebenfalls eingetragen.
Nun kann man eben wählen ;)

Anmerkung:
Ich habe zwar mit .net 1.1 angefangen, aber erinnere mich NICHT,
ob es sowas schon gab.
Wenn es jemandem dort hilft, bitte gern geschehen ^^
'++++++++++++ MS-Version ++++++++++++
'danke an Pirmin für das C# Beispiel ;)

        Dim ar() As String
        Dim Str As String = "Franz<br>jagt im<br>völlig verwahrlosten<br>Taxi..."
        Dim spltstr() As String = {"<br>"}
        ar = Str.Split(spltstr, StringSplitOptions.None)


'++++++++++++ meine-Version ++++++++++++
'############### Aufruf ################
        Dim Str As String = "Franz<br>jagt im<br>völlig verwahrlosten<br>Taxi..."
        Dim ar() As String
        ar = clsMySnippets.StringSplit(Str, "<br>")
'#######################################

    ''' <summary>
    ''' Splittet einen String an der angegebenen Zeichenfolge,
    ''' ähnlich wie "Replace"
    ''' </summary>
    ''' <param name="StrToSplt">
    ''' Der zu Splitendene String
    ''' </param>
    ''' <param name="SplitString">
    ''' Der String, an dem gesplitet werden soll
    ''' Dies kann ein Zeichen ";"
    ''' oder ein ganzer string sein "(br)"
    ''' </param>
    Public Function StringSplit(ByVal StrToSplt As String, ByVal SplitString As String) As String()
        'Ein Array mit den Dezimalen werten von NICHT druckbaren Zeichen
        'Sollten eigentlich nicht in einem String vorkommen,
        'aber sie KÖNNTEN ES! Deshalb alternativauswahlen ;)
        Dim SplitTemp() As Integer = {7, 1, 23}
        'Der ausgewählte ASCII Char,
        'bei -1 enthielt der Text alle nicht druckbaren Zeichen
        Dim selectedASCII As Integer = -1
        'das Rückgabe Array
        Dim arStr() As String

        'Prüfen, ob der String NICHTDRUCKBARE ZEichen enthält und wähle das erste, dass NICHT entalten ist
        For i As Integer = 0 To SplitTemp.Length - 1
            If Not StrToSplt.Contains(SplitTemp(i)) Then
                selectedASCII = SplitTemp(i)
                Exit For
            End If
        Next

        'wenn ein nicht vorkommendes Zeichen gefunden wurde,
        'ersetzte den SplitString mit diesem zeichen und splitte es
        If selectedASCII >= 0 Then
            StrToSplt = StrToSplt.Replace(SplitString, ChrW(selectedASCII))
            arStr = StrToSplt.Split(ChrW(selectedASCII))
        Else
            arStr = StrToSplt.Split("")
        End If

        Return arStr
    End Function
Abgelegt unter String, Split, Splitten, String Splitten.

6 Kommentare zum Snippet

Tim Hartwig schrieb am 07.04.2008:
Und was hat MS vergessen? Deine Funktion ist vollkommen überflüssig.
General Bison schrieb am 08.04.2008:
In diesemfall bin ich einfach zu d00f um ausm Busch zu winken :P
und bitte um erleuchtung (am besten mit einem snippet;)

Hm... TROTZDEM habe ich hier mehr Punkte bekommen, als mit anderen Snippets, die definitiv NICHT schon im VS drinnen sind....
Pirmin schrieb am 08.04.2008:
Hallo Bison
Vielleicht hättest du noch erwähnen sollen, dass deine Funktion in den alten .NET-Versionen nicht vorhanden ist. Ab .NET-Version 2.0 geht nähmlich folgendes.

string str = "Franz<br>jagt im<br>völlig verwahrlosten<br>Taxi...";
string[] ar = str.Split(new string[] { "<br>" }, StringSplitOptions.None);

Ich hab hier nur C# eingefügt, weil ich die VB-Syntax nicht kenne. Aber mit VB.NET müsste es sicher eine Entsprechung geben.
Pirmin schrieb am 08.04.2008:
Hab vorher noch den Link vergessen: http://msdn2.microsoft.com/de-de/library/tabh47cf(VS.80).aspx
Tim Hartwig schrieb am 08.04.2008:
Tja da dachte wohl Jemand das der Snippet gut sei weil diese Person wirklich dachte diese Funktion gibt es noch nicht. 9 Punkte für eine nachgebaute Funktion die es im Framework 2.0 schon gibt. :X
General Bison schrieb am 09.04.2008:
Aber das zeigt nur, dass ich nicht der einzige binn, der das mit dem Array nicht verstanden/gesehen hat.
Und überhaupt hätte MS ruig eine EINFACHE Stringübergabe machen können.
Ein SIMPLER String....
Wär ja wohl nicht zuvielverlangt gewesen :P
 

Logge dich ein, um hier zu kommentieren!