Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2011, 19:05   #1
Brok[BS]
 
Регистрация: 12.01.2011
Сообщений: 6
По умолчанию Проблема с поиском и выводом результата

Есть программа, ищет по заданному критерию информацию и выводит её на экран.

Вот пример работы формы.

1. Слева в списке есть число 1990, я ввожу его в поле для поиска и нажимаю кнопку Find, программа успешно находит число и вывод на правый листбокс.


2. Слева в списке так же есть число 1000, оно стоит первым. Я ввожу его в поле для поиска и нажимаю кнопку Find, но ничего не происходит и с права в листбоксе это число не появляется. Методом тыка было выявленно, что не выводится либо первое, либо последнее число из левого списка. В зависимости от сортировки (по имени или по числу)


Код:

Код:
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private Form2 addfrm;
        private myCmpFam cmpf;
        private myCmpYear cmpy;
        private System.Collections.ArrayList myList;
        public Form1()
        {
            InitializeComponent();
            myList = new System.Collections.ArrayList();
            addfrm = new Form2();
            addfrm.list = myList;
            cmpf = new myCmpFam();
            cmpy = new myCmpYear();
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            myList.Sort(cmpf);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            addfrm.Show();
            
        }

        private void button3_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            foreach (myListObj o in myList)
            {
                listBox1.Items.Add(o.ToString());
            }
        }

        private void button4_Click(object sender, EventArgs e)
        { 
            myListObj tmp = new myListObj();
            tmp.fam = textBox1.Text;
            tmp.year = Convert.ToInt32(textBox1.Text);
            myList.Sort(cmpy);
            if (myList.BinarySearch(tmp, cmpy) > 0) listBox2.Items.Add(tmp.fam+" "+tmp.year.ToString());
            else;
        }

        private void button5_Click(object sender, EventArgs e)
        { 
            using (System.IO.TextWriter f = new System.IO.StreamWriter("list.txt"))
            {
                f.WriteLine("LIST");
                foreach (myListObj o in myList)
                { 
                    f.WriteLine(o.fam);
                    f.WriteLine(o.year.ToString());
                }
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();

            string s = openFileDialog1.FileName;
            string tmp;
            using (System.IO.TextReader f = new System.IO.StreamReader(s))
            {
                myList.Clear();
                tmp = f.ReadLine();
                if (tmp != "LIST")
                {
                    System.Windows.Forms.MessageBox.Show("Неправельный формат файла");
                    return;
                }
                myListObj o_tmp;
                tmp=f.ReadLine();
                while (tmp != null)
                {
                    o_tmp = new myListObj();
                    o_tmp.fam = tmp;
                    tmp = f.ReadLine();
                    o_tmp.year = Convert.ToInt32(tmp);
                    myList.Add(o_tmp);
                    tmp = f.ReadLine();
                }
            }

        }

        private void button7_Click(object sender, EventArgs e)
        {
            myList.Sort(cmpy);
        }
    }
    public class myListObj
    {
        public string name;
        public string fam;
        public int year;
        override public string ToString()
        {
            return fam + " - "+year.ToString();
        }
    }
    public class myCmpFam : System.Collections.IComparer
    {

        #region Члены IComparer

        public int Compare(object x, object y)
        {
            return ((myListObj)x).fam.CompareTo(((myListObj)y).fam);
        }

        #endregion
    }
    public class myCmpYear : System.Collections.IComparer
    {

        #region Члены IComparer

        public int Compare(object x, object y)
        {
            if (((myListObj)x).year > (((myListObj)y).year)) return 1;
            else if (((myListObj)x).year < (((myListObj)y).year)) return -1;
            return 0;
        }

        #endregion
    }
}
Есть два вопроса:
1. Как сделать, чтобы в правый листбокс выводилось любое найденное из левого списка число?
2. Как сделать, чтобы в правый листбокс, вместе с найденным числом выводилась и фамилия, которая соответствует этому числу в левом списке?
Brok[BS] вне форума Ответить с цитированием
Старый 18.01.2011, 19:10   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Это что, С++? Разве не С#?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 18.01.2011, 19:11   #3
Brok[BS]
 
Регистрация: 12.01.2011
Сообщений: 6
По умолчанию

Если понадобится, то распишу какая из кнопок Button1 и т.д.
Brok[BS] вне форума Ответить с цитированием
Старый 18.01.2011, 19:11   #4
Brok[BS]
 
Регистрация: 12.01.2011
Сообщений: 6
По умолчанию

Это C#, просто на форуме нету раздела С#, поэтому я отписался сюда.
Brok[BS] вне форума Ответить с цитированием
Старый 18.01.2011, 20:16   #5
skytechkrutoi
Новичок
Джуниор
 
Регистрация: 18.01.2011
Сообщений: 2
По умолчанию

Ребят, не игнорьте пжалста, завтра защита, хотелось бы разобраться
Можно считать как "Ап".
skytechkrutoi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Табулирование функции с выводом результата по условию shozanah Помощь студентам 0 20.11.2010 21:46
Табулирование функции с выводом результата (паскаль) Miles Prower Помощь студентам 0 26.10.2010 21:12
Скрипт точного поиска по БД с выводом результата kolembet PHP 3 07.09.2010 04:37
проблема с выводом результата Nyutka PHP 2 16.04.2009 11:58
калькулятор с выводом результата в файл yori Помощь студентам 7 27.01.2009 18:40