将数据写入特定行C#

时间:2015-11-03 03:28:57

标签: c#

我有一些数据,我想用C#将它们写入记事本中的特定行。

例如,我有两个文本框,其中的数据为“123 Hello”,textBox1,“565878 Hello2”为textBox2

当我按下SAVE按钮时,这些数据将保存到一个文件中,但行不同。我想保存第一行中的第一个数据和第三行中的第二个数据。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

这个问题太宽泛了。简单的答案是您将两行写入文件,但在每个字符串之间写一个换行符("\r\n"Environment.NewLine)。这将把两个字符串放在不同的行上。如果你想要第三行的第二个字符串,那么你应该在每个字符串之间写两个换行符。

如果这些都不是答案,那么你需要更具体地说明为什么不这样做。该文件是否为空?你有什么尝试?具体来说,你在哪里陷入困境?什么平台?

我真的不知道这与NotePad有什么关系。

修改

您已澄清您是从现有的文本文件开始,并希望替换指定行的内容。

这是一个更复杂的事情,如果你刚刚开始,可能超出你的技能。基本方法是:

假设您可以将整个文件读入内存,请将文件加载到字符串中。您必须解析新行以查找要替换的行。然后,您可以使用新数据替换字符串的这些部分。完成后,将文件写回磁盘。

如果文件太大而无法加载到内存中,那么它就会变得复杂得多。对不起,但是由于你在描述这个问题方面做得不好,所以我不会为了解决这个案子的细节而烦恼。而且这样的任务可能无论如何都不属于stackoverflow的范围。

答案 1 :(得分:0)

如果您的行号未修复,您可以执行以下操作:

class Program
    {
        private static void Main()
        {
            var data = "";
            const string data1 = "Data1";//First Data
            const string data2 = "Data2";//Second Data
            const int line1 = 1;//First Data Line
            const int line2 = 3;//Second Data Line
            var maxNoOfLines = Math.Max(line1, line2);
            for (var i = 1; i <= maxNoOfLines; i++)
            {
                if (i == line1)
                {
                    data += data1 + Environment.NewLine;
                }
                else if (i == line2)
                {
                    data += data2 + Environment.NewLine;
                }
                else
                {
                    data += Environment.NewLine;
                }
            }
            File.WriteAllText(@"C:\NOBACKUP\test.txt", data);
        }
    }

否则,如果行号被修复,它将更加简单。您可以从上面删除循环并对值进行硬编码。