繁体   English   中英

如何编辑.txt文件中的数字?

[英]How can I edit numbers in my .txt file?

我在这里有代码,并根据用户输入,我想更改我将选择的选择行。 但是,我目前只能暂时更改文本行,并且当我再次写出文件时,该文本并没有被永久覆盖。

这是我的代码:

public struct classMates
{
    public string first;
    public string last;
    public int ID;
}


static classMates[] readClassMates(classMates[] classMateInfo)
{
    StreamReader sr = new StreamReader(@"C:\class.txt");
    int count = 0;
    while (!sr.EndOfStream)
    {
        classMateInfo[count].first = sr.ReadLine();
        classMateInfo[count].last = sr.ReadLine();
        string idTemp = sr.ReadLine();
        classMateInfo[count].ID = Convert.ToInt32(idTemp);
        count++;
    }
    sr.Close();
    return classMateInfo;               
}

static void editClassMates(classMates[] classMateInfo)
{
    Console.Write("Who's number would you like to change? ");
    string classMateInput = Console.ReadLine();
    for (int i = 0; i < classMateInfo.Length; i++)
    {
        if (classMateInfo[i].first.Equals(classMateInput))
        {
            Console.Write("Enter new number: ");
            string temp = Console.ReadLine();
            int classMateNumber = Convert.ToInt32(temp);
            classMateInfo[i].ID = classMateNumber;
            Console.WriteLine("You have successfully changed {0}'s number to {1}.", classMateInfo[i].first,classMateInfo[i].ID.ToString());
        }
    }
}

static void Main()
{
    classMates[] classMateInfo = new classMates[43];

    listClassMates(classMateInfo);
    editClassMates(classMateInfo);
    listClassMates(classMateInfo);
}

我知道我本打算使用File.WriteAllText() ,但是我不知道如何在我的代码中利用这个片段。

也许您期望得到一个简单的答案,但是实际上您需要自定义代码,您需要自己考虑一下。 如果您对LINQ File.WriteAllText()并且真的想使用File.WriteAllText()方法,则可以使用我为您编写的此oneliner,但尚未测试:

File.WriteAllText(@"C:\class.txt", string.Join(Environment.NewLine, (from cm in classMateInfo select string.Format("{1}{0}{2}{0}{3}", Environment.NewLine, cm.first, cm.last, cm.ID)).ToArray()));

它从您的classMateInfo创建一个字符串数组,使用换行符作为分隔符将该数组连接起来,并将整个字符串写入指定的文件。

我看不到您在文件中写入任何内容。

Console.Write("Enter new number: ");
string temp = Console.ReadLine();
int classMateNumber = Convert.ToInt32(temp);
classMateInfo[i].ID = classMateNumber;
Console.WriteLine("You have successfully changed {0}'s number to {1}.", classMateInfo[i].first,classMateInfo[i].ID.ToString());

我应该期望你做了类似的事情:

rs.Writeline('foo');

但是也许您需要一个流媒体编写器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM