如何在指定字段中复制文本,而不提及行号

时间:2015-09-14 20:35:36

标签: c# visual-studio-2012

我有下一个代码:

  private void button1_Click_1(object sender, EventArgs e)
        {

            string path = AppDomain.CurrentDomain.BaseDirectory.ToString();
            var link = File.ReadLines(path + "test.txt").ToArray();
            var lines = File.ReadAllLines(path + "test2.txt");
            foreach (var txt in link  )
            {
                if (txt.Contains("Output="))
                {
                    var outputPath = txt.Split('=')[1];

                    if (File.Exists(path + "test2.txt"))
                    {
                        var modifiedLines = lines.Select(line =>
             {
                 if (line.StartsWith("outlog=\""))
                 {
                     return string.Format("outlog=\"{0}\"", outputPath);
                 }
                 else
                 {
                     return line;
                 }
             });

             File.WriteAllLines(path+ "test2.txt", modifiedLines);
                    }


            }

            }

使用这段代码,我可以复制Output="C:\temp\out.log"(谁在test.txt中)后面的内容,等于outlog=(谁在test2.txt中)。 如何在第二个字段test.txt的指定位置复制一个文本文件test2.txt中存在的文字,没有提及行号?

这里我只放了一行,但在我的文件文本中我有很多行,但我想我可以使用它,我处理另一行。

test.txt

Licfile="C:\temp\lic.lic"
Output="C:\temp\out.log"
Title="name"

test2.txt

outlog=
license=
lmgr_files=
license_path=

在运行代码之后{I}我希望看起来像这样:

test2.txt

1 个答案:

答案 0 :(得分:0)

我对你的问题感到困惑,但我只想试着给你一个意见。我希望它可以帮助你。但是行号对于这些问题非常重要。

String[] arrayOld = File.ReadAllLines(@"C:\test.txt");
String[] arrayNew = new string[arrayOld.Length];

 if (arrayOld[0].Contains("Licfile=")) // If statements could be more
  {
    Array.Copy(arrayOld,0,arrayNew,0,2); // How many line will add
  }

 for (int i = 0; i < 2; i++)
   {
    File.AppendAllText(@"D:\test2.txt", arrayNew[i] + Environment.NewLine); // It'll add all lines
   }

P.S。:不要忘记添加 lineOne =“outlog =”+ locString; 等字符串。