C#编辑文本文件

时间:2015-04-03 00:19:52

标签: c# file text

我有一个我想编辑的文本文件。基本上,文本文件包含业务中请求的数据。因此,它将按顺序存储名称,员工ID,请求类型,请求总数,请求状态以及日期和时间。我必须能够编辑所选行的总金额。我使用列表视图来选择项目。例如,我必须接受史密斯的请求,并编辑$ 2.00并将其更改为让我们说4.00美元。

  

Ryan Rock,345,食物,$ 456.00,待定,4/2/2015 3:48:45 PM

     

Smith,4567,Food,$ 2.00,Pending,4/2/2015 6:26:37 PM

     

Jerry,444,Travel,$ 22.00,Pending,4/2/2015 6:26:47 PM

private void btnModify_Click(object sender, EventArgs e)
    {
        foreach (ListViewItem item in listView1.Items)
            if (item.Selected)
            {                    
                string selected = item.Text.ToString();
                string str;

                double total;
                bool totalCheck = double.TryParse(txtTotal.Text, out total);

                    if (totalCheck)
                    {
                        var lines = File.ReadAllLines("../../textFile/ExpenseReportingData.txt");
                        lines[3] = "7";
                        File.WriteAllLines("../../textFile/ExpenseReportingData.txt", lines);
                    }
                    else
                    {
                        MessageBox.Show("Please Enter A Valid Ammount", "Error");
                    }                    
            }
    }

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

编辑特定行的值你可以这样做:

for (int i = 0; i < lines.Length; i++)
        {
            string[] lineData = lines[i].Split(',');//split the line into an array ["Smith" ,"4567" ,"Food" ,"$2.00" ,"Pending" ,"4/2/2015 6:26:37 PM"]
            if (lineData[0] == "Smith")//0 is the index of the client name
            {
                lineData[3] = "$4.00";//modifie the value
                lines[i] = String.Join(",", lineData);
                File.WriteAllLines("../../textFile/ExpenseReportingData.txt", lines);
            }
        }

但我不推荐它,您应该使用数据库来保存您的数据,并且每个客户端必须具有唯一的ID(许多客户端可以具有相同的名称,这会产生问题)

或者您可以尝试使用XMl / JSON类型的格式作为文本文件