2013-04-04 23 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