winforms C#点击按钮后如何复制文本文件(.txt)中的行?

bkkx9g8r  于 2023-02-16  发布在  C#
关注(0)|答案(2)|浏览(239)

我有一个winform应用程序,当我点击一个按钮时,我想复制文本文件(. txt)中的一行。例如:你好世界
我想有这样的东西
你好世界
你好世界
当我点击一个按钮。

void duplicateLine(string text, int line){
//Read text file
//duplicate the line
//insert (Write) the duplicate line in text file(.txt)
}
s4n0splo

s4n0splo1#

在C#中,复制文本文件中行的一种方法是使用File.ReadAllLines方法将文件读入字符串数组,然后使用循环在所需的索引处插入重复行,再使用File.WriteAllLines方法将修改后的数组写回文件。例如,下面的代码段复制文本文件的第一行:

void duplicateLine(string text, int line)
{
    //Read the file into a string array
    string[] lines = File.ReadAllLines("textfile.txt");
    
    //Create a list to store the modified lines
    List<string> newLines = new List<string>();
    
    //Loop through the array and insert the duplicate line
    for (int i = 0; i < lines.Length; i++)
    {
        //Add the original line to the list
        newLines.Add(lines[i]);
    
        //If the line is the one to be duplicated, add it again
        if (i == line)
        {
            newLines.Add(lines[i]);
        }
    }
    
    //Write the modified list back to the file
    File.WriteAllLines("textfile.txt", newLines);
}

这段代码将生成一个如下所示的文本文件:

Hello world
Hello world
Some other line
Another line
t98cgbkg

t98cgbkg2#

最好是自己写代码,并对代码问题提出疑问,可以尝试以下方法:
1-使用File.ReadAllLines将文件的所有行读取到列表
2-如果文件中不存在,请检查行
3-在列表的指定位置添加新行(重复一行)
4-将列表写入文件

void duplicateLine(string text, int line){

    string _path = "data.txt";  //path of your file
    var txtLines = File.ReadAllLines(_path).ToList();  //1 

    if(line>=txtLines.Count) //2
    {
        MessageBox.Show("this line not exist in file..");
        return;
    }
    txtLines.Insert(line, Text);  //3
    File.WriteAllLines(_path, txtLines); //4
}

相关问题