Чтение пар ключ / значение в HttpWebResponse - PullRequest
0 голосов
/ 26 января 2010

Я хочу прочитать строку, которая выглядит именно так:

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

... в словарь желательно. Я попытался разбить vbcrlf (по одной в каждой строке, я могу вас заверить) и '=', но не могу заставить его вести себя правильно, часто выходя за пределы ошибки Кто-нибудь получил фантастические идеи о том, как решить эту проблему?

Помощь, как всегда, ценится.

Ответы [ 2 ]

1 голос
/ 26 января 2010

Вы можете использовать StringReader :

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
0 голосов
/ 26 января 2010

Я решил это с помощью этого довольно неприятного куска кода;

    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

Я надеюсь, что это кому-то поможет, и если кто-то может предложить улучшения, сделайте:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...