我目前遇到了 RCon 的问题。
我基本上是在发送一个请求以接收所有玩家的列表。
服务器以所有玩家的列表回答,如下所示:
# IP:Port Ping ID Name
0 127.0.0.1 0 3523523 Bob
12 192.168.0.1 120 342525523 Anna
320 192.168.0.2 240 63463634634 Chuck Norris
^^^ ^^ ^^^^^ ^
问题是,我不知道不同标签之间有多少空格,这取决于#/IP/ping 和ID 的长度。
空格可以从 1 个空格到 5 个空格不等。
名称中也可以有空格,所以我不能只用一个空格分隔。
我想从列表中读取 IP、ping、id 和名称。
我目前尝试做一些混乱的替换和拆分东西,但是当空间不同时它就行不通了。
我想过用正则表达式做点什么,但我对正则表达式不太擅长。
我已经将这些行拆分为 1 行。
类 Player 可以存储所有信息
这是应该发生的事情:
// List to store all the players
List<Player> players = new List<Player>();
// Using a StringReader to split up every line
StringReader reader = new StringReader(result);
string line;
int row = 0;
// Processing every line one after another
while ((line = reader.ReadLine()) != null)
{
row++;
// Doing some filtering to prevent empty lines and other stuff
if (row > 3 && !line.StartsWith("(") && line.Length > 0)
{
// Getting all the stuff I need here
// Then adding a player object to save the informations, ignore status
players.Add(new Player(ip, ping, id, name, status));
}
}
任何人都有一个可以解决这个问题的想法?