Blog Content

    티스토리 뷰

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

    반응형

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

    예제에서 사용된 컨트롤은 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
    다운로드

    반응형

    'C#' 카테고리의 다른 글

    14.C#_WinForm - Notifyicon  (0) 2009.08.27
    89.C# - 콘솔 파일처리  (1) 2009.08.24
    12.C#_WinForm - FolderBrowserDialog  (0) 2009.08.24
    11.C#_WinForm - Font Dialog(폰트)  (2) 2009.08.24
    10.C#_WinForm - DialogResult (다른폼 값 넘기기)  (2) 2009.08.24

    Comments