在VB.Net解析帮助
问题描述:
我不完全确定如何说这个问题,也没有如何做到这一点,所以我想我会来这里的一些见解。那么,什么是运行一个命令并获取返回数据的查询程序,这个数据回来看起来像这样。在VB.Net解析帮助
[0]:
ServerId: 1
ServerPort: 9987
ServerStatus: Online
[1]:
ServerId: 13
ServerPort: 4000
ServerStatus: Online
[2]:
ServerId: 14
ServerPort: 4001
ServerStatus: Online
[3]:
ServerId: 15
ServerPort: 4002
ServerStatus: Online
[4]:
ServerId: 16
ServerPort: 4003
ServerStatus: Online
[5]:
ServerId: 17
ServerPort: 4004
ServerStatus: Online
[6]:
ServerId: 18
ServerPort: 4005
ServerStatus: Online
[7]:
ServerId: 19
ServerPort: 42069
ServerStatus: Online
[8]:
ServerId: 20
ServerPort: 4006
ServerStatus: Online
[9]:
ServerId: 21
ServerPort: 5022
ServerStatus: Online
[10]:
ServerId: 23
ServerPort: 4007
ServerStatus: Online
[11]:
ServerId: 24
ServerPort: 4008
ServerStatus: None
[12]:
ServerId: 25
ServerPort: 4009
ServerStatus: Online
[13]:
ServerId: 26
ServerPort: 4010
ServerStatus: Online
[14]:
ServerId: 27
ServerPort: 4011
ServerStatus: Online
[15]:
ServerId: 28
ServerPort: 4012
ServerStatus: Online
现在不仅有15台服务器可以改变,可以去任何数量。我将如何处理从每个小数据中提取数据,哦,你会怎么说呢,信息片段?按照从最小到最大的顺序排列成一个列表框,首先是0。有任何想法吗?提前致谢!
[0]:
UniqueId:
ServerNumberOfClientsOnline: 56
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10000
ServerUptime: 18.05:22:01
ServerName: The FourHorsemens & The Disciples
ServerAutoStart: True
ServerMachineId:
ServerId: 1
ServerPort: 9987
ServerStatus: Online
[1]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 18.15:03:24
ServerName: NotYoda
ServerAutoStart: True
ServerMachineId:
ServerId: 13
ServerPort: 4000
ServerStatus: Online
[2]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 18.15:03:24
ServerName: CYNTEX HF - TS3 Server :D
ServerAutoStart: True
ServerMachineId:
ServerId: 14
ServerPort: 4001
ServerStatus: Online
[3]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 18.15:03:24
ServerName: GuyCheap
ServerAutoStart: True
ServerMachineId:
ServerId: 15
ServerPort: 4002
ServerStatus: Online
[4]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 18.15:03:24
ServerName: Game All Day
ServerAutoStart: True
ServerMachineId:
ServerId: 16
ServerPort: 4003
ServerStatus: Online
[5]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 18.15:03:24
ServerName: #Cloud9
ServerAutoStart: True
ServerMachineId:
ServerId: 17
ServerPort: 4004
ServerStatus: Online
[6]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 50
ServerUptime: 18.15:03:24
ServerName: FuryTech
ServerAutoStart: True
ServerMachineId:
ServerId: 18
ServerPort: 4005
ServerStatus: Online
[7]:
UniqueId:
ServerNumberOfClientsOnline: 3
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 100
ServerUptime: 11.18:18:51
ServerName: Frost-Hosting - A Teamspeak Hosting Service
ServerAutoStart: True
ServerMachineId:
ServerId: 19
ServerPort: 42069
ServerStatus: Online
[8]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 18.15:03:24
ServerName: Hangout
ServerAutoStart: True
ServerMachineId:
ServerId: 20
ServerPort: 4006
ServerStatus: Online
[9]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 18.14:56:17
ServerName: [email protected]'s_Teamspeak_Server!
ServerAutoStart: True
ServerMachineId:
ServerId: 21
ServerPort: 5022
ServerStatus: Online
[10]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 17.20:32:39
ServerName: Straight Flush Gaming
ServerAutoStart: True
ServerMachineId:
ServerId: 23
ServerPort: 4007
ServerStatus: Online
[11]:
UniqueId:
ServerNumberOfClientsOnline:
ServerNumberOfQueryClientsOnline:
ServerMaximumClientsAllowed:
ServerUptime:
ServerName: [email protected]
ServerAutoStart: True
ServerMachineId:
ServerId: 24
ServerPort: 4008
ServerStatus: None
[12]:
UniqueId:
ServerNumberOfClientsOnline: 1
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 13.01:01:34
ServerName: Welcome to Gaming Room - by Anders & Christian
ServerAutoStart: True
ServerMachineId:
ServerId: 25
ServerPort: 4009
ServerStatus: Online
[13]:
UniqueId:
ServerNumberOfClientsOnline: 3
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 12.21:46:55
ServerName: Reineling's teamspeak
ServerAutoStart: True
ServerMachineId:
ServerId: 26
ServerPort: 4010
ServerStatus: Online
[14]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 12.00:04:56
ServerName: CrashGFX
ServerAutoStart: True
ServerMachineId:
ServerId: 27
ServerPort: 4011
ServerStatus: Online
[15]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 10
ServerUptime: 12.00:03:52
ServerName: XBL Hammer
ServerAutoStart: True
ServerMachineId:
ServerId: 28
ServerPort: 4012
ServerStatus: Online
[16]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 50
ServerUptime: 7.18:43:07
ServerName: Team Battles!
ServerAutoStart: True
ServerMachineId:
ServerId: 29
ServerPort: 10000
ServerStatus: Online
[17]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 100
ServerUptime: 6.19:17:32
ServerName: YoloMcSwagins
ServerAutoStart: True
ServerMachineId:
ServerId: 30
ServerPort: 4013
ServerStatus: Online
[18]:
UniqueId:
ServerNumberOfClientsOnline: 0
ServerNumberOfQueryClientsOnline: 0
ServerMaximumClientsAllowed: 20
ServerUptime: 6.19:16:30
ServerName: -Cybia-
ServerAutoStart: True
ServerMachineId:
ServerId: 31
ServerPort: 4014
ServerStatus: Online
答
这样就可以使这样的功能:
Private Shared Function GetResults(match As String) As Dictionary(Of [String], [String])
Dim num = Regex.Match(match, "\[(\d+)\]").Groups(0).Value 'Gets the ID of the entry
Dim allIds = Regex.Matches(match, "(\w+): (.+)") 'Gets each key/value
Dim dictionary = New Dictionary(Of [String], [String])()
dictionary.Add("Index", num)
For Each i As Match In allIds
dictionary.Add(i.Groups(1).Value, i.Groups(2).Value)
Next
Return dictionary
End Function
,然后也许这样称呼它:
Dim reg = Regex.Matches(yourValue, "\[\d*\]:(\s+\w+:.+){1,}") 'yourValue is all of the servers
Dim allEntries = (From i As Match In reg Select GetResults(i.Value)).ToList()
你需要添加一些细节 - 哪里名单来自, 对于初学者?你在投票吗?这是一个文件吗?你似乎在问如何得到这些数据('获取返回数据') - 我们如何知道? **和**问如何解析它。 – Plutonix 2014-11-20 22:20:25
数据来自通过telnet的查询响应,我只需要将我提供的文本转换为ListBox项目@Plutonix – Killpot 2014-11-20 22:37:08