簡體   English   中英

覆蓋.txt文件中的選擇行

[英]Overwrite Select Lines in .txt File

我有一個測試應用程序,該應用程序從用戶那里獲取信息並將其保存到文本文件中。 問題是,即使用戶在文檔的后面會遇到適當的字段,也需要在列表的結構中插入某些信息。

在此處輸入圖片說明

我決定走懶惰的路線,並稍后在文本文件中添加所需信息的占位符,但是我不知道如何有選擇地覆蓋行。

這是示例:

表格1:

在此處輸入圖片說明

using System.IO;

namespace Debug.NewFolder1
{  
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void btnNextInfo_Click_1(object sender, EventArgs e)
    {
        System.IO.StreamWriter objwriter;
        objwriter = new System.IO.StreamWriter("Info.txt", true);
        objwriter.Write("nameL=" + tbxLast.Text);
        objwriter.WriteLine();
        objwriter.Write("nameF=" + tbxFirst.Text);
        objwriter.WriteLine();
        objwriter.Write("nameM=" + tbxMiddle.Text);
        objwriter.WriteLine();
        objwriter.Write("numberAge=" + tbxAge.Text);
        objwriter.WriteLine();

        //Occupation
        objwriter.Write("Occupation=");
        objwriter.WriteLine();
        //Certification
        objwriter.Write("Certification=");
        objwriter.WriteLine();

        objwriter.Write("Residence=" + tbxRes.Text);
        objwriter.WriteLine();
        objwriter.Close();

        NewFolder1.Form2 settingsForm = new NewFolder1.Form2();
        settingsForm.Show();
        this.Hide();
        }}}

表格2:

在此處輸入圖片說明

using System.IO;

namespace Debug.NewFolder1
{
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void btnNextInfo_Click(object sender, EventArgs e)
    {
        System.IO.StreamWriter objwriter;
        objwriter = new System.IO.StreamWriter("Info.txt", true);
        //skip 4 lines            
        objwriter.Write("Occupation=" + tbxOcc.Text);
        objwriter.WriteLine();
        objwriter.Write("Certification=" + tbxCert.Text);
        objwriter.WriteLine();
        //skip 1 line
        objwriter.Close();

        Application.Exit();
    }}}

如果要查找特定的行並僅重寫該行,可以執行以下操作:

        string filePath = ""; //Your file path goes here
        string[] lines = File.ReadAllLines(filePath);
        string newLastName = "Smith";
        string newFirstName = "John";

        for (int i = 0; i < lines.Count(); i++)
        {
            if (lines[i].Contains("nameL="))
                lines[i] = "nameL=" + newLastName;

            if (lines[i].Contains("nameF="))
                lines[i] = "nameF=" + newFirstName;
        }

        File.WriteAllLines(filePath, lines);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM