从文本文件中分离用户及其值
本文关键字:用户 分离 文本 文件 | 更新日期: 2023-09-27 18:15:56
我正在为聊天服务器制作一个小机器人,在机器人中有一个小游戏系统,用户可以使用硬币进行赌博。我在我的电脑上运行机器人,并使用一个文本文件来存储我的数据。我用':'字符将我的用户与他们的硬币分开。我有一个方法,它接受一个参数,无论你想要一个用户数组还是一个硬币数组。我认为这将使我们更容易找到用户的价值。但是我得到的只是空数组。
我很确定它可以用一种更圆滑的方式完成,但我对编程很陌生,尤其是c#。我试过调试,但它只是跳出循环,没有任何进一步,它也没有抛出任何异常。
这是我的方法。
private string[] separateUsersFromCoins(string option)
{
string[] users = { };
string[] coins = { };
string[] temp;
string[] result = { "I fucked up somewhere." };
char[] userSeparater = { ':' };
string rawData = File.ReadAllText(@"C:'Users'Derk'Documents'BottingDiscord'CringeBot'CringeBotConsole'Coin.txt");
temp = rawData.Split(userSeparater);
for (int i = 0; i <= temp.Length; i += 2)
{
users[i] = temp[i];
}
for (int i = 1; i <= temp.Length; i += 2)
{
coins[i] = temp[i];
}
if (option == "users" )
{
result = users;
}
else if(option == "coins")
{
result = coins;
}
else
{
return result;
}
return result;
}
您可以使用以下代码代替您的方法:
int count = 0;
string[] users = { };
string[] coins = { };
string[] result = { "I fucked up somewhere." };
char[] userSeparater = { ':' };
string path = @"FILE_PATH_HERE";
try
{
if (File.Exists(path))
using (StreamReader sr = new StreamReader(path))
{
while (sr.Peek() >= 0)
{
string[] temp = sr.ReadLine().split(userSeparater);
users[count] = temp[0];
coins[count] = temp[1]
}
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
return result;
}
if (option == "users" )
{
return users;
}
else if(option == "coins")
{
return coins;
}
else
{
return result;
}
您需要在文件开头使用"using System.IO;"指令来使用该代码。