Benutzer mit den meisten Antworten
2. Vorkommen eines Zeichen in String abfragen und Rest abschneiden

Frage
-
Hoi,
habe mal wieder eine Frage.
Ich bekomme einen String einer Anwendung zurück geliefert der am Anfang und ca. in der Mitte einen DOPPELPUNKT beinhaltet.
Ich möchte aber nur den Inhalt des Strings AB dem 2. Doppelpunkt in meiner Textbox lesen (der Rest sind Serverinformationen die unnötig sind und das lesen nur erschweren).
Folgender Code funktioniert soweit:
Dim lData() As String Dim C() As String Dim tData As Integer Dim CL As Integer Dim CLi As String Dim a As Integer lData = Split(inData, Chr(10)) tData = UBound(lData) - LBound(lData) For a = 0 To tData If Mid(lData(a), 1, 1) = ":" Then lData(a) = Mid(lData(a), 2) End If Next
Was müsste ich machen um oben erwähntes Ergebnis zu erzielen ?
Doei
Franz
Antworten
-
Hi Franz,
es gibt verschiedene Möglichkeiten, das zweite Auftreten eines Zeichens in einer Zeichenkette zu erkennen, z.B. mit der InStr-Funktion, mit der Split-Funktion/Methode oder mit regulären Ausdrücken. Was die optimale Lösung ist, hängt von weiteren bedingungen ab, z.B. ob nach dem zweiten Doppelpunkt weitere Doppelpunkte möglich sind. Hier mal eine Demo mit Split:
Dim s0 = "ab c:cd efg:hi jklmn" Dim s1 = s0.Split(":"c) Console.WriteLine(s1(2))
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Montag, 28. September 2009 10:16
- Als Antwort markiert Robert Breitenhofer Dienstag, 6. Oktober 2009 20:57
Alle Antworten
-
Hi Franz,
es gibt verschiedene Möglichkeiten, das zweite Auftreten eines Zeichens in einer Zeichenkette zu erkennen, z.B. mit der InStr-Funktion, mit der Split-Funktion/Methode oder mit regulären Ausdrücken. Was die optimale Lösung ist, hängt von weiteren bedingungen ab, z.B. ob nach dem zweiten Doppelpunkt weitere Doppelpunkte möglich sind. Hier mal eine Demo mit Split:
Dim s0 = "ab c:cd efg:hi jklmn" Dim s1 = s0.Split(":"c) Console.WriteLine(s1(2))
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Montag, 28. September 2009 10:16
- Als Antwort markiert Robert Breitenhofer Dienstag, 6. Oktober 2009 20:57
-
Hoi Peter,
habe das u.a. mal so verscht, gibt aber immer einen Fehler zurück dass ":" nicht in Integer konvertiert werden kann.
For a = 0 To tData If Mid(lData(a), 1, 1) = ":" Then ' lData(a) = Mid(lData(a), 2) Dim s0 = Mid(lData(a), 2) Dim s1 = s0.Split(":") lData(a) = s1(":") End If Next
2. Version war so:
For a = 0 To tData If Mid(lData(a), 1, 1) = ":" Then ' lData(a) = Mid(lData(a), 2) Dim s0 = Mid(lData(a), 2) Dim s1 = s0.Split(":") lData(a) = (s1(2)) End If Next
Dann erscheint als Fehler dass der Index ausserhalb des Arraybereichs liegt
P.S.: nach dem 2. Doppelpunkt kommt nur noch anzuzeigender Text (in der Länge variabel)
Doei
Franz