예제 #1
0
        public void CheckRecords(int Po)
        {
            StreamReader sr      = File.OpenText("Records.txt");
            string       input   = null;
            ArrayList    records = new ArrayList();

            while ((input = sr.ReadLine()) != null)
            {
                ClassResult CR = new ClassResult(ClassMoving.ToWords(input, 2)[0], Convert.ToInt32(ClassMoving.ToWords(input, 2)[1]));
                records.Add(CR);
            }

            sr.Close();

            records.Sort(ClassResult.SortByPoint);
            // самый младший рекорд в таблице
            ClassResult Cr = (ClassResult)records[0];

            // если его удалось победить
            if (Po > Cr.ResPoint)
            {
                //MessageBox.Show("Ваш результат - это новый рекорд!");
                Fr.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Fr_FormClosing);
                Fr.tbName.Focus();
                Fr.ShowDialog();
                FileInfo     fi = new FileInfo("Records.txt");
                StreamWriter writer;
                // если результат влезает в десятку
                if (records.Count < 10)
                {
                    records.Add(new ClassResult(UserName, Po));
                    // и дописать файл новым рекордом
                    writer = fi.AppendText();
                    writer.WriteLine(UserName + " " + Po.ToString());
                    writer.Close();
                }
                // иначе - удалить последнего
                else
                //if (Po > Cr.ResPoint)
                {
                    records.Remove(records[0]);
                    records.Add(new ClassResult(UserName, Po));
                    // и дописать файл новым рекордом
                    writer = fi.CreateText();
                    for (int i = 0; i < records.Count; i++)
                    {
                        Cr = (ClassResult)records[i];
                        writer.WriteLine(Cr.ResName + " " + Cr.ResPoint.ToString());
                    }
                    writer.Close();
                }
            }
        }
예제 #2
0
        int IComparer.Compare(object o1, object o2)
        {
            ClassResult m1 = (ClassResult)o1;
            ClassResult m2 = (ClassResult)o2;

            if (m1.ResPoint > m2.ResPoint)
            {
                return(1);
            }
            if (m1.ResPoint == m2.ResPoint)
            {
                return(0);
            }
            else
            {
                return(-1);
            }
        }
예제 #3
0
        private void FormTableRecs_Load(object sender, EventArgs e)
        {
            StreamReader sr    = File.OpenText("Records.txt");
            string       input = null;

            System.Collections.ArrayList records = new System.Collections.ArrayList();

            while ((input = sr.ReadLine()) != null)
            {
                ClassResult CR = new ClassResult(ClassMoving.ToWords(input, 2)[0], Convert.ToInt32(ClassMoving.ToWords(input, 2)[1]));
                records.Add(CR);
            }
            sr.Close();
            records.Sort(ClassResult.SortByPoint);
            records.Reverse();

            for (int i = 0; i < records.Count; i++)
            {
                ClassResult CR = (ClassResult)records[i];
                dgRecords.Rows.Add(CR.ResName, CR.ResPoint);
            }
        }