اقرأ أزواج المفتاح/القيمة في httpwebrosponse
سؤال
أريد أن أقرأ سلسلة تبدو تمامًا مثل هذا:
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 (يوجد خط واحد على كل سطر يمكنني أن أؤكد لك) وعلى "=" ، لكن لا يمكنني الحصول عليه تمامًا على التصرف بشكل صحيح في كثير من الأحيان من أخطاء الحدود. هل حصل أي شخص على بعض الأفكار الرائعة حول كيفية حل هذا؟
المساعدة ، كما هو الحال دائمًا ، موضع تقدير.
المحلول
يمكنك استخدام أ 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
نصائح أخرى
لقد حللت هذا مع هذه القطعة السيئة إلى حد ما من التعليمات البرمجية.
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
آمل أن يساعد شخص ما هناك وإذا كان بإمكان أي شخص اقتراح تحسينات ، فيرجى القيام :)
لا تنتمي إلى StackOverflow