2017-12-01 10 views
-2

私の学校の計算機プロジェクトに取り組んでいます。C#ストリームライターは、さらに情報を上書きしません。

私は、テキスト文書に私の操作を上書きに問題がある通常、私は私のテキストファイルでこれを持っている必要があります。

1|peter|DESKTOP-P6IL7VV|19/11/2017 11:38:11 ==> 5 x 5=25  
2|peter|DESKTOP-P6IL7VV|19/11/2017 11:38:15 ==> 25 + 3=28  
3|peter|DESKTOP-P6IL7VV|19/11/2017 11:38:27 ==> 28/2=14  
4|peter|DESKTOP-P6IL7VV|19/11/2017 11:38:31 ==> 14 + 6=20  
5|peter|DESKTOP-P6IL7VV|19/11/2017 11:38:35 ==> 20 - 20=0     
(example from my teacher) 

をしかし、私が何かを書くたびに、それは最初の行を削除し、のみ上書き最後の操作は、私は結果]ボタンをクリックして毎回必要な、それはここでは数字

の順序で私のファイルに上書きされ、私のコーディングです:

private void result_Click(object sender, RoutedEventArgs e) 
    { 
     try 
     { 
      result(); 
     } 
     catch (Exception exc) 
     { 
      txtIngave.Text = "Error!"; 
     } 
     try 
     { 
      if (!txtResultaat.Text.Equals(string.Empty) && btnLog.IsChecked 
      == true) 
      { 
       int i = 1; 
       using (StreamWriter myOper = new 
    StreamWriter(@"C:\Users\Achraf Alajdi\Documents\Visual Studio 
     2017\Projects\TaakCalculator\log\log.txt")) 
       { 
        myOper.WriteLine(i.ToString() + " | " + "Achraf | " + System.Environment.MachineName + " | " + DateTime.Now.ToLongTimeString() + " | ==> " + txtResultaat.Text); 
       } 
       i++; 

      } 
     } 
     catch (Exception ex) 
     { 

      MessageBox.Show("Loser"); 
     } 
    } 
+1

アドオン**真**で新しい のStreamWriter(@: "C Achraf Alajdi \ドキュメントは、プロジェクト\ TaakCalculator \ログの\ log.txtという\ Visual Studioの 2017 \ \ \ユーザー" ** **真)テキストを追加するには –

答えて

0

TrのパラメータappendtrueがあるとY

StreamWriter(string path, bool append) 

コンストラクタ。 documentationから

:ファイルにデータを追加する

アペンド

ファイルを上書きします。指定されたファイルが存在しない場合、このパラメーターは効果がなく、コンストラクターは新しいファイルを作成します。

+0

okありがとうございますが、私のintは1番にとどまりますが、どうすれば修正できますか? –

+0

@ ach.alaメソッドを呼び出すたびに再度1に設定するためです。宣言をメソッドの外に置いて、1にリセットしないでください。 –

+0

@ ach.ala:もちろんです。ファイルに1を書き込む直前に 'i'を初期化していて、ファイルに仮想的に書き込みます。ブロックを離れるとすぐに、「i」は*忘れられ*、ファイルに書き込む前に再び1に設定されます。値を維持するために、クラスのインスタンス変数として 'i'(より良い名前を考えてください)を宣言しなければなりません。 –

関連する問題