C#〃파일(텍스트 문서) 읽기 + 문자 추가 후 저장

반응형






C# 입문기 5일차(공부를 못했던 주말을 제외하고..)


처음 만들어 보려는 프로그램은 텍스트 문서나 파일에 특정 문자어를 넣어 자동 저장하는 프로그램입니다. 


디자인이나 코딩 자체가 미흡하지만 첫 프로그램으로는 나름 만족합니다. 프로젝트 생성은 Windows Form이고 생성방법과 컴파일 하는법은 제 이전글에 설명이 되있으니 생략합니다.





대충 완성된 레이아웃은

이렇습니다.


자세한 설명은 아래로~~!!





 1. 텍스트 파일 열기




빨간색 네모칸에 해당하는 부분이죠.

아래는 왼쪽부터 차례대로 디자인과 속성들입니다. 

 

1. 파일경로를 텍스트로 보여주는 

TextBox 

NAME = txtPath 

ReadOnly = True


2. 읽을파일선택 버튼

Button

NAME = btnPath


3. 텍스트 읽기

Button

NAME = btnRead



4. 그리고 텍스트읽기를 눌렀을때 보여주는 박스

TextBox

NAME = txtView

ReadOnly = False

Multiline = True

ScrollBars = Both


5. 마지막 파일시스템

OpenFileDialog

NAME = ofdFile

Filter = 텍스트 파일 (*.txt) |*.txt|모든 파일(*.*)|*.*




다음은 소스~!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FileConvert
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnPath_Click(object sender, EventArgs e)
        {
            if (this.ofdFile.ShowDialog() == DialogResult.OK)
            {
                this.txtPath.Text = this.ofdFile.FileName; // ofdFile 경로를 Text속성에 저장
            }
        }

        private void btnRead_Click(object sender, EventArgs e)
        {
            if (txtCheck() == false)
            return;
            if (File.Exists(this.txtPath.Text)) // 지정된 경로에 파일이 존재하는지 검사
            {
                using(StreamReader sr = new StreamReader(this.txtPath.Text,Encoding.Default))
                {
                    txtView.Text = sr.ReadToEnd();
                }
            }else{
                MessageBox.Show("읽을 파일이 없습니다.", "에러", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        
        private bool txtCheck()
        {
            if (this.txtPath.Text == "")
                return false;
            else
                return true;
        }
     }
}


소스는 참 간단하죠??

실행해볼게요~!!



읽을파일선택 버튼을 눌러

파일을 선택하면 

경로가 TEXTBOX에 뜹니다.



그리고 텍스트 읽기 버튼을 누르면??




위 사진과 같이 아주 출력이 잘되는

모습을 볼 수 있습니다^^






 2. 문자 추가 후 파일 저장



텍스트 저장은

여기 빨간색 네모에 해당하는 부분입니다.


디자인은 아래와 같습니다.

1. 저장파일경로

TextBox

NAME = txtSavePath 

ReadOnly = True


2. 저장경로지정 버튼

Button

NAME = btnSavePath


3. 저장버튼 or 변환버튼

Button

NAME = btnConvert


소스는 기존 소스에 추가하면 되는데 

양이 많지 않으니

걱정하실 필요 없어요 ^^

private bool txtSaveCheck() { if (this.txtSavePath.Text == "") return false; else return true; } private void btnSavePath_Click(object sender, EventArgs e) { if (this.sfdFile.ShowDialog() == DialogResult.OK) { this.txtSavePath.Text = this.sfdFile.FileName; // 저장경로지정 } } private void btnConvert_Click(object sender, EventArgs e) { String txtSave = "JIHUN"; try { File.AppendAllText(txtSavePath.Text, txtSave.Text, Encoding.Default); } catch { MessageBox.Show("저장경로를 지정해주세요", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MessageBox.Show("파일이 정상적으로 변환되었습니다.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); ResetText(); }


실행결과 한번 볼게요.



먼저 변환할 파일을 선택 후 

저장경로 지정을 합니다.


그리고 변환 클릭!




성공적으로 변환되고

텍스트를 확인해보면?




이렇게 파일 앞에 JIHUN이라는 단어가

추가되었습니다.




아직은 미흡한 프로그램이지만 

좀더 노력하는 개발자가 될게요ㅎㅎ

반응형