現在、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 スペースの範囲で指定できます。
また、名前にスペースが含まれている可能性があるため、1 つのスペースだけで分割することはできません。
リストから 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));
}
}
誰でもこれを解決できるアイデアを思いつきましたか?