如何修改.txt文件中的数字?

时间:2015-06-04 13:50:01

标签: c# streamreader streamwriter

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

这是我的代码:

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(),但我不知道如何将此代码段用于我的代码。

2 个答案:

答案 0 :(得分:0)

也许您期待一个简单的答案,但实际上您需要自己想出的自定义代码。 如果你进入LINQ并且真的想要使用enter file name with path read.txt iertkf 方法,你可以使用我为你写的oneliner,我还没有测试过:

$("#hardware").on("keyup", function () {
    var isActive = ($(this).val().length > 0) ? 0 : false;
    $("#accordion").accordion({
        active : isActive,
        collapsible: true
    });
});

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

答案 1 :(得分:-2)

我没有看到你在文件中写任何东西。

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');

但也许你需要一个编写器。