2014-11-22 83 views
-3

我想将2个.txt文件合并到一个文本文件中。假设我有2个文本文件。第一个只包含100行“再试一次”。像这样的画面:合并2个文本文件ASP.NET

enter image description here

而第二个文本文件中包含的随机码一堆:

enter image description here

我要合并这2个文本文件,这样一个在下面的图片:

enter image description here

我有一周,我还没有弄清楚。

+0

难道你不能只读取这两个文件,并合并你的线,并将其写入第三个文件? – 2014-11-22 17:19:30

+0

@VsevolodGoloviznin,这是我想要的。但我还没有弄明白。 – aldoblack 2014-11-22 17:22:17

+0

您可以查看该参考以阅读该文件:http://msdn.microsoft.com/en-us/library/ezwyzy7b.aspx以及用于写入文件的文件:http://msdn.microsoft.com/en-us /library/8bh11f1k.aspx – 2014-11-22 17:24:05

回答

0

编辑:我编辑代码通过吉姆,他警告我,现在它的工作。 首先,您需要读取两个文件并将所有行存储到字符串数组中。然后像下面的波纹管一样环绕它们。你需要从第二个文件中检查和写入每五个项目。 PS:我没有尝试过这个代码,但是它确实没有错误。

string[] first = System.IO.File.ReadAllLines("path of first txt file"); 
string[] second = System.IO.File.ReadAllLines("path of second txt file"); 

var sb = new StringBuilder(); 


var k = 0; 
     var m = 0; 
     for (int i = m; i < second.Length; i++) 
     { 
      m = i + 1; 

      for (int j = k; j < first.Length; j++) 
      { 
       k = j + 1; 

       if (j != 0 && j % 4 == 0) 
       { 
        sb.Append(second[i] + "\n"); 
        break; 
       } 
       else 
       { 
        sb.Append(first[j] + "\n"); 
        continue; 
       } 
      } 
     } 


// create new txt file 
var file = new System.IO.StreamWriter("path of third txt file"); 
file.WriteLine(sb.ToString()); 
+0

你确定这将工作正确吗?似乎它会输出太多东西。也就是说,它会为'first'的每一行输出全部'second'。也许你的意思是“继续”是一个“休息”?但是这也行不通。我认为你采取了错误的做法。这个问题不能通过像你拥有的简单的嵌套循环结构来解决。 – 2014-11-23 00:49:22

+0

感谢Jim纠正我,我编辑代码。我测试和工作。 – Kadir 2014-11-23 10:38:52

0

只要打开这两个文件,并在循环中从第一行和第二行中读取四行。在读取每行时输出。

using (var outputFile = File.CreateText("OutputFile.txt")) 
{ 
    using (var input1 = File.OpenText("TryAgain.txt")) 
    using (var input2 = File.OpenText("File2.txt")) 
    { 
     while (!input1.EndOfStream && !input2.EndOfStream)) 
     { 
      int i; 
      for (i = 0; i < 4 && !input1.EndOfStream; ++i)) 
      { 
       var s1 = input1.ReadLine(); 
       outputFile.WriteLine(s1); 
      } 
      if (i != 4) break; // end of first file 
      // now read one line from the other file, and output it 
      var s2 = input2.ReadLine(); 
      outputFile.WriteLine(s2); 
     } 
    } 
} 

这有不必一下子读取两个文件到内存的优势,你不必在内存中构建的整个输出。每行在写入后立即输出。