2014-11-22 102 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); 
     } 
    } 
} 

這有不必一下子讀取兩個文件到內存的優勢,你不必在內存中構建的整個輸出。每行在寫入後立即輸出。