2015-09-07 162 views
-1

我已通過文件輸入碼和我有根據它的數據和輸出它的結果在一個文本文件以及.. 我的輸出代碼是下面產生..顯示輸出

public void Generator() 
    { 
    /// ....... Code 
    public void DisplayTOKENS() 
    { 

     using (StreamWriter writer = 
    new StreamWriter("C:\\Users\\saeed\\Documents\\Outputt.txt")) 
     { 
     for (int i = 0; i < j;i++) 
     { 
      tok[i].Display_Token(); 
     } } 

    } 

//和其他structur命名爲TOKEN

public void Display_Token() 
    { /* 
      using (StreamWriter writer = 
    new StreamWriter("C:\\Users\\saeed\\Documents\\Outputt.txt")) 
     { 
      writer.Write("(" + this.Class_Part + " , "); 
      writer.Write(this.Value_Part + " , "); 
      writer.Write(this.Line_no + ")"); 
      writer.WriteLine(); 
     }*/ 
      Console.Write("(" + this.Class_Part + " , "); 
      Console.Write(this.Value_Part + " , "); 
      Console.Write(this.Line_no + ")"); 
      Console.WriteLine(); 

    } 

當我嘗試在Display_Token直接工作,那麼它只是簡單地顯示在文件的最後一行..我想顯示的文件中,整個陣列。等待一些積極的迴應!

+0

這將是有趣的,看看你如何填寫tok數組(或列表) – Steve

+0

@Steve問題解決!無論如何感謝:) –

回答

0

該StreamWriter構造函數覆蓋現有的文件。因此,每個令牌都會有效地刪除先前寫入的內容,然後寫入其內容。這就是爲什麼你只能看到文件中最後一個標記的內容。

使用帶有「附加」的說法過載,因此,現有的文件不會被刪除傳遞true。

+0

它工作!!!!!感謝:D –

0

你必須檢查文件是否存在,比做「附加」操作而不是「覆蓋」。

// in DisplayTOKENS() 

string fileName = "C:\\Users\\saeed\\Documents\\Outputt.txt"; 
if (System.IO.File.Exists(fileName)) 
    System.IO.File.Delete(fileName); 

for (int i = 0; i < j; i++) 
{ 
    tok[i].Display_Token(fileName); 
} 


// in Display_Token(string fileName) 

System.IO.File.AppendAllText(fileName, "(" + this.Class_Part + " , " + this.Value_Part + " , " + this.Line_no + ")");