从文本文件中分离用户及其值

本文关键字:用户 分离 文本 文件 | 更新日期: 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;"指令来使用该代码。