C#

13.C#_WinForm - 간단한 메모장 기능 구현

Godffs 2009. 8. 24. 19:48
반응형

텍스트에 입력한 내용을 파일로 저장하고 다시 파일을 불러오도록 하는 예제입니다.

예제에서 사용된 컨트롤은 OpenFileDialog SaveFileDialog 컨트롤 사용

추가
파일에 관련된 모든 기능은 using System.IO; 네임스페이스에 있습니다.
네임스페이스를 추가하시면 Stream클래스 사용가능 (사용된 기능 : 파일 읽기와 쓰기)

읽기 : 스트림에서 데이터 구조체(바이트 배열)로 데이터를 전송

쓰기 : 데이터 구조체에서 스트림으로 데이터를 전송하는 과정

Stream이란

더보기
Stream은 모든 스트림의 추상 기본 클래스 입니다.
파일, 입/출력 장치, TCP/IP등 소켓과 같은 바이트 시퀸스를 추상적으로 나타냅니다.
출처 : [MSDN]

FrmSampleNotepad.Designer.cs

[그림13-1]

        도구상자 - OpenFileDialog, SaveFileDialog 컨트롤 추가
         
        private System.Windows.Forms.Button btnOpen;

        private System.Windows.Forms.Button btnSave;
        private System.Windows.Forms.TextBox txtNote;
        private System.Windows.Forms.OpenFileDialog openFileDialog;
        private System.Windows.Forms.SaveFileDialog saveFileDialog;

FrmSampleNotepad.cs
using System.IO; 네임스페이스를 추가해 줍니다.

private void btnOpen_Click(object sender, EventArgs e)
{
        openFileDialog.Filter = "텍스트파일|*.txt"; //코드레벨에서 직접 설정
        if (openFileDialog.ShowDialog() == DialogResult.OK)
        {
                //텍스트 파일열기
                StreamReader sr = new StreamReader(
                        openFileDialog.FileName, Encoding.Default);

                //데이터 읽어오기
                txtNote.Text = sr.ReadToEnd(); //텍스트 모두 열기
                //파일 닫기
                sr.Close();
        }
}

private void btnSave_Click(object sender, EventArgs e)
{
        saveFileDialog.Filter = "텍스트파일|*.txt";
        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {

                StreamWriter sw = new StreamWriter(
                        saveFileDialog.FileName, false, Encoding.Default);
                sw.Write(txtNote.Text);
                sw.Close();
        }
}

Encoding : 글씨가 깨지는 경우가 있습니다.
글씨가 깨지는 이유는 한글은 쥐약이다! 라고 보시면 좋을것 같습니다.
한글이 완벽하지 않는다는 이유로 보시면 됩니다.
한글깨짐 방지를 위해 파일저장과 파일열기 할 때 스트림에서 Encoding을 사용

결과확인

[그림13-2]

        1. 텍스트 안에 내용을 입력 한 후 파일저장 클릭
        2. 경로 지정후 확인 하시면 결과를 확인 할 수 있습니다.
        3. 열기버튼 클릭시 모든 txt파일을 읽을 수 있습니다.

13WinFrmMain.zip
다운로드

반응형