2013-04-04 42 views
0

結構I具有在Visual Basic.net數據到在vb.net

Private Structure queueT 
     Public name As String 
     Public parent As String 
     Public limitat As Integer 
     Public maxlimit As Integer 

這種結構這是我得到的數據,我已經存儲在一個維字符串數組(剛粘貼3):

!re=.id=*10000B0=name=Up-PBX=parent=Up=packet-mark=pack_pbx=limit-at=256000=queue=PCQ_Up=priority=1=max-limit=512000=burst-limit=0=burst-threshold=0=burst-time=00:00:00=invalid=true=disabled=true=comment=PBX 

!re=.id=*10000C7=name=Down_Mauro=parent=Down=packet-mark==limit-at=315000=priority=8=max-limit=5000000=burst-limit=0=burst-threshold=0=burst-time=00:00:00=invalid=false=disabled=true 

!re=.id=*10000C8=name=Down_Mauro_dom=parent=Down_Mauro=packet-mark=pack_Mauro_dom=limit-at=40000=queue=PCQ_Down=priority=2=max-limit=400000=burst-limit=0=burst-threshold=0=burst-time=00:00:00=invalid=false=disabled=true 

我需要將信息存儲在我的結構,所以它看起來是這樣的:

queueT.name = UP-PBX 
queueT.parent = UP 
queueT.limitat = 256000 
queueT.maxlimit = 512000 

我只需要的信息menti在上面,而不是其餘。我怎樣才能做到這一點?

謝謝!

+0

*那*是什麼樣的序列化格式?它看起來不像這些。 http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats – 2013-04-04 15:44:24

+0

您是否可以控制發送給您的字符串格式?如果是這樣,我會推薦一些可用的解析器來使用,比如XML或JSON。 – 2013-04-04 15:48:38

+0

我在我的字符串數組中的數據是我從我正在使用的函數中獲得的。它不是代碼,它只是一個字符串。 – 2013-04-04 15:49:14

回答

2

它看起來像是第一個值之後的鍵/值配對。從你的例子中可以發現這樣的事情。

Private Function queueTParse(item As String) As queueT 

    Dim queueValues = item.Split("=") 
    Dim queueTItem = New queueT 

    For i As Integer = 1 To queueValues.Length - 1 Step 2 

     Select Case queueValues(i) 
      Case "name" 
       queueTItem.name = queueValues(i + 1) 
      Case "parent" 
       queueTItem.parent = queueValues(i + 1) 
      Case "limit-at" 
       queueTItem.limitat = queueValues(i + 1) 
      Case "max-limit" 
       queueTItem.maxlimit = queueValues(i + 1) 
     End Select 

    Next 

    Return queueTItem 

End Function