我有一些数据,我想用C#将它们写入记事本中的特定行。
例如,我有两个文本框,其中的数据为“123 Hello”,textBox1
,“565878 Hello2”为textBox2
。
当我按下SAVE按钮时,这些数据将保存到一个文件中,但行不同。我想保存第一行中的第一个数据和第三行中的第二个数据。
我该怎么做?
答案 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);
}
}
否则,如果行号被修复,它将更加简单。您可以从上面删除循环并对值进行硬编码。