C# 在某一点写入.txt文件

C# 在某一点写入.txt文件,c#,C#,我在这里尝试的是将用户选择的某个字符串写入.txt文件,但仅写入.txt文件的某个部分,例如: 文本文件将包含: #name|user_login USERNAME #password|pass_recovery|user_pass PASSWORD ... ... ... 如果我在组合框下拉列表中键入文本框单词新用户(例如),我将选择用户名,我试图在.txt文件中找到这一行,然后像这样附加它: #name|user_login|new_user USERNAME #password|pass

我在这里尝试的是将用户选择的某个字符串写入.txt文件,但仅写入.txt文件的某个部分,例如:

文本文件将包含:

#name|user_login
USERNAME
#password|pass_recovery|user_pass
PASSWORD
...
...
...
如果我在
组合框
下拉列表中键入
文本框
单词
新用户
(例如),我将选择
用户名
,我试图在.txt文件中找到这一行,然后像这样附加它:

#name|user_login|new_user
USERNAME
#password|pass_recovery|user_pass
PASSWORD
...
...
...
这同样适用于任何大写字母的行,到目前为止,我的功能是:

        public void WriteToAIFile(string findThis, string writeThis)
        {
            var fileContent = File.ReadAllLines(@"LogicFiles\rj-ai-fields.txt");
            foreach (string eachLine in fileContent) {
                if (findThis == eachLine) {
                    // we have found the macro we want, go back up 1 line and append: "|" + writeThis to the end of the line ...

                    //var writeContent = File.WriteAllText(@"LogicFiles\rj-ai-fields.txt");
                }
            }
        }

这是非常基本的,我想的是循环每一行,直到
找到它==eachLine
(大写字母值),然后将
写的内容附加到该行的末尾,但在附加之前我需要返回1行,有没有更好的方法来实现这一点?在我看来,是否需要一个
foreach
循环?感谢您的帮助,非常感谢。

要在特定行之后插入一行,您应该使用向后for循环和
List::insert
方法。请参见实现这一点的最简单方法是使用
for
循环对字符串数组进行索引,而不是
foreach

然后您可以编写一个循环,该循环从1开始,而不是从0开始,并“滞后”一个元素,这样您就可以更容易地将文本追加到前一行

然后,在循环终止后,您必须写入文件的最后一行作为额外步骤

大概是这样的:

public void WriteToAIFile(string findThis, string writeThis)
{
    var fileContent = File.ReadAllLines(@"LogicFiles\rj-ai-fields.txt");

    using (var output = File.CreateText("My filename"))
    {
        for (int i = 1; i < fileContent.Length; ++i)
        {
            if (fileContent[i] == findThis)
                output.WriteLine(fileContent[i-1] + "|" + writeThis);
            else
                output.WriteLine(fileContent[i-1]);
        }

        output.WriteLine(fileContent[fileContent.Length-1]);
    }
}
public void WriteToAIFile(字符串findThis,字符串writeThis)
{
var fileContent=File.ReadAllLines(@“LogicFiles\rj ai fields.txt”);
使用(var output=File.CreateText(“我的文件名”))
{
for(int i=1;i
如果您可以在想要插入用户名的位置存储一个唯一的符号(例如“”),那么您可以避免使用foreach,而是使用普通的字符串查找谢谢大家,这是一种更好的方法Matthew,
for
循环就是一种方法。