2012-03-02 9 views
0

逆の順序でカウントを取得するにはどうすればよいですか?今、カウント数は表示されています。しかし、カウント数も残しておきたいです。そして、以下のプログラムで毎日の終わりにタイマーをリセットし、それが最後に実行された時刻を表示するにはどうしたらいいですか?誰かがプログラム全体を手伝ってくれますか? プログラムは -どのように逆の順序でカウントを取得するには?

namespace Time_Writer 
{ 
    class Program 
    { 
    static int count = 1; 
    static double seconds; 
    private static System.Timers.Timer aTimer; 


    static void Main(string[] args) 
    { 
     ReadCountFromFile(); 


     aTimer = new System.Timers.Timer(); 
     aTimer.Elapsed +=new System.Timers.ElapsedEventHandler(aTimer_Elapsed); 
     aTimer.Interval = 5000; 
     aTimer.Enabled = true; 
     Console.WriteLine("Press Enter To Exit The Program\n"); 
     Console.ReadLine(); 


     AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit); 


    } 
    private static void ReadCountFromFile() 
    { 
     try 
     { 
      if (File.Exists(".\\mynumber.dat")) 
      { 
       using (var file = File.Open(".\\mynumber.dat", FileMode.Open)) 
       { 
        byte[] bytes = new byte[4]; 
        file.Read(bytes, 0, 4); 
        count = BitConverter.ToInt32(bytes, 0); 
        Console.WriteLine("Limit = 10000"); 
        Console.WriteLine("Count = {0}", count); 

       } 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("Problem reading file."); 
     } 
    } 
    static void CurrentDomain_ProcessExit(Object sender, EventArgs e) 
    { 
     using (var file = File.Open(".\\mynumber.dat", FileMode.OpenOrCreate)) 
     { 
      var buffer = BitConverter.GetBytes(count); 
      file.Write(buffer, 0, buffer.Length); 
     } 
    } 
    private static void aTimer_Elapsed(object source, ElapsedEventArgs e) 
    { 
     Console.WriteLine("Name is Yap {0}", e.SignalTime); 
     seconds += 5; 
     count += 1; 
     if (count>10000 || seconds==86400) 
     { 
      aTimer.Enabled = false; 
      Console.WriteLine("\n\nTimer is off at {0}\n\n", e.SignalTime.TimeOfDay.ToString()); 
     } 
    } 
    } 
} 
+1

あなたのプログラムが何をすべきか説明できますか?なぜファイルに書き込むのですか?何を読んでいるのですか? – gideon

+0

@gideonここに掲載されたコード全体が彼の質問に必要ではないとは思わない。 – Jayanga

+0

@gideon実際には、このプログラムは、1日に10k回、指定されたステートメントを繰り返すことです。ステートメントの代わりに、私はメールを挿入し、それを別の受信者に送信することができます。私は送信されたメールと残りのメールの数を保持する必要があるので、ファイルに書き込みます。あなたは私を助けてくれますか? – 3692

答えて

0

ですか?

Console.WriteLine("Limit = 10000"); 
Console.WriteLine("Count: {0} of 10000. {1} remaining", count, 10000 - count); 
+0

ねえ..ありがとう。:)しかし、それは毎回新しい日付で実行されます。 – 3692

関連する問題