예제 #1
0
        private void 열기ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog OFD = new OpenFileDialog();                   //파일오픈에 필요한 dialog객체 생성

            OFD.Filter           = "텍스트 파일(*.txt)|*.txt|모든 파일(*.*)|*.*"; //볼 파일만 나오게함
            OFD.FilterIndex      = 1;                                    //필터 인덱스 설정
            OFD.RestoreDirectory = true;                                 //이전의 선택한 디렉터리로 복원가능
            OFD.Multiselect      = true;                                 //여러대상 선택가능

            DialogResult dr = OFD.ShowDialog();                          //파일오픈 dialog창 띄우기

            try
            {
                if (dr == DialogResult.OK)                                            //파일이 선택되면
                {
                    listView1.Items.Clear();                                          //리스트뷰 초기화
                    FileStream      f  = new FileStream(OFD.FileName, FileMode.Open); // open형식으로 파일 열기
                    BinaryFormatter bf = new BinaryFormatter();
                    numberArray = (NumberArray)bf.Deserialize(f);                     //deserialize
                    for (int i = 0; i < numberArray.Count; i++)                       //numberArray에 들어가있는 배열 크기만큼 반복
                    {
                        ListViewItem item = new ListViewItem(numberArray[i].Name);    //파일에 저장되어있는 정보를 numberArray 각각의 자리에 대입
                        item.SubItems.Add(numberArray[i].PhoneNumber);
                        item.SubItems.Add(numberArray[i].Birthday);
                        item.SubItems.Add(numberArray[i].Relation);
                        item.SubItems.Add(numberArray[i].Email);
                        item.SubItems.Add(numberArray[i].Address);
                        count++;
                        listView1.Items.Add(item); //리스트 뷰에 표시
                    }
                    f.Close();                     // 파일닫기
                }
            }
            catch (SerializationException se) //연락처 저장이 안되어 있을 경우
            {
                MessageBox.Show("연락처 저장을 먼저 하세요", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            toolStripStatusLabel.Text = "총 연락처의 개수 : " + count;
        }
예제 #2
0
        private void button1_Click(object sender, EventArgs e) //찾는 방법을 이름 전화번호 둘중에 골라 정보를 텍스트 박스에 입력하고 전화번호부 파일을 열어 원하는 정보를 메세지 박스로 출력받음
        {
            string temp  = textBox1.Text;
            int    runOK = 0;

            MessageBox.Show("찾으시려는 연락처 정보가 있는 파일을 열어주세요", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            if (radioButton1.Checked)                      //이름으로 찾을경우
            {
                OpenFileDialog OFD = new OpenFileDialog(); //파일 열기 form1의 파일열기와 기능은 같음
                OFD.Filter           = "텍스트 파일(*.txt)|*.txt|모든 파일(*.*)|*.*";
                OFD.FilterIndex      = 1;
                OFD.RestoreDirectory = true;
                OFD.Multiselect      = true;

                DialogResult dr = OFD.ShowDialog();
                try
                {
                    if (dr == DialogResult.OK)
                    {
                        FileStream      f  = new FileStream(OFD.FileName, FileMode.Open); // open형식으로 파일 열기
                        BinaryFormatter bf = new BinaryFormatter();
                        numberArray = (NumberArray)bf.Deserialize(f);                     //deserialize
                        for (int i = 0; i < numberArray.Count; i++)
                        {
                            if (numberArray[i].Name == temp) //텍스트 박스 내용과 비교하여 맞으면 그 인덱스의 정보 모두 출력
                            {
                                MessageBox.Show("이름 : " + numberArray[i].Name + "\n핸드폰 번호 : " + numberArray[i].PhoneNumber +
                                                "\n주소 : " + numberArray[i].Address + "\n생일 : " + numberArray[i].Birthday + "\n관계 : " + numberArray[i].Relation
                                                + "\nE-mail : " + numberArray[i].Email, "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                                runOK = 999;
                                break;
                            }
                        }

                        if (runOK != 999) //위의 if문이 실행 되지 않았을 경우 실행
                        {
                            MessageBox.Show("연락처를 찾지 못 하였습니다.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        f.Close();     // 파일닫기
                    }
                }
                catch (SerializationException se)
                {
                    MessageBox.Show("연락처 저장을 먼저 하세요");
                }
            }
            else //전화번호로 찾을경우
            {
                OpenFileDialog OFD = new OpenFileDialog();
                OFD.Filter           = "텍스트 파일(*.txt)|*.txt|모든 파일(*.*)|*.*";
                OFD.FilterIndex      = 1;
                OFD.RestoreDirectory = true;
                OFD.Multiselect      = true;

                DialogResult dr = OFD.ShowDialog();
                try
                {
                    if (dr == DialogResult.OK)
                    {
                        FileStream      f  = new FileStream(OFD.FileName, FileMode.Open); // open형식으로 파일 열기
                        BinaryFormatter bf = new BinaryFormatter();
                        numberArray = (NumberArray)bf.Deserialize(f);                     //deserialize
                        for (int i = 0; i < numberArray.Count; i++)
                        {
                            if (numberArray[i].PhoneNumber == temp)
                            {
                                MessageBox.Show("이름 : " + numberArray[i].Name + " 핸드폰 번호 : " + numberArray[i].PhoneNumber +
                                                " 주소 : " + numberArray[i].Address + " 생일 : " + numberArray[i].Birthday + " 관계 : " + numberArray[i].Relation
                                                + " E-mail : " + numberArray[i].Email, "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                                runOK = 999;
                                break;
                            }
                        }

                        if (runOK != 999) //위의 if문이 실행 되지 않았을 경우 실행
                        {
                            MessageBox.Show("연락처를 찾지 못 하였습니다.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        f.Close();     // 파일닫기
                    }
                }
                catch (SerializationException se)
                {
                    MessageBox.Show("연락처 저장을 먼저 하세요", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }