Frage

Ich möchte eine Zeichenfolge lesen, dass sieht genauso aus wie folgt aus:

VPSProtocol=2.22
Status=OK
StatusDetail=0000 : The Authorisation was Successful.
VPSTxId={BBF09A43-913E-14E3-B41B-E5464B6FF8A9}
SecurityKey=EH8VFZUSH9
TxAuthNo=4979698
AVSCV2=SECURITY CODE MATCH ONLY
AddressResult=NOTMATCHED
PostCodeResult=NOTMATCHED
CV2Result=MATCHED
CAVV=AAABARR5kwAAAAAAAAAAAAAAAAA=
3DSecureStatus=OK

... in ein Wörterbuch bevorzugt. Ich habe auf der vbcrlf versucht Splitting (es gibt eine auf jeder Zeile kann ich Ihnen versichern) und auf die ‚=‘, kann aber nicht ganz bekommen es richtig oft zu verhalten Fehler immer außerhalb der Grenzen. Jeder bekam einige fantastische Ideen, wie dieses Problem zu lösen?

Hilfe, wie immer, sehr geschätzt.

War es hilfreich?

Lösung

könnten Sie ein String :

Dim dic = New Dictionary(Of String, String)
Using reader = New StringReader(someString)
    Dim line As String = reader.ReadLine()
    While line <> Nothing
        Dim tokens = line.Split("=")
        If tokens.Length < 2 Then
            Continue While
        End If
        dic.Add(tokens(0), tokens(1))
        line = reader.ReadLine()
    End While
End Using

Andere Tipps

Ich löste dies mit diesem ziemlich bösen Stück Code;

    Dim dictionary As New Dictionary(Of String, String)
    Dim x As String = "x?" & Replace(tmp.ToString(), vbCrLf, "&")
    Dim arr As String() = x.Split("?".ToCharArray())
    If arr.Length >= 2 Then
        Dim arr2 As String() = arr(1).Split("&".ToCharArray())
        For Each item As String In arr2
            Dim arr3 As String() = item.Split("=".ToCharArray())
            dictionary.Add(arr3(0), arr3(1))
        Next
    End If

Ich hoffe, dass es jemanden da draußen hilft und wenn jemand Verbesserungen vorschlagen kann, bitte tun:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top